2025年6月
选择题
第8题
二进制数 1010 ^ 1100的结果是()
A. 1000B. 0110
C. 1010
D. 1100
第9题
以下哪个位运算可以交换两个变量的值(无需临时变量)()
A. a = a ^ b; b = a ^ b; a = a ^ b;B. a = a & b; b = a & b; a = a & b;
C. a = a | b; b = a ^ b; a = a ^ b;
D. a = ~a; b = ~b; a = ~a;
判断题
第6题
(x&1)==0可以判断整数x是否为偶数。
编程题
第1题
奇偶校验
给定n个非负整数,它们的校验码取决于这些整数在二进制下1的数量之和的奇偶性。如果这些整数在二进制下共有奇数个1,那么校验码为1;否则校验码为0。你能求出这些整数的校验码吗?
核心思路:
遍历n个整数,对每个整数c,使用循环 `while(c)`,在循环内通过 `c & 1` 判断最低位是否为1并累加,然后通过 `c >>= 1` 将c右移一位,直到c变为0。最后根据1的总数的奇偶性输出校验码。
4
71 69 83 80
样例输出 1:
13 1
样例输入 2:
6
1 2 4 8 16 32
样例输出 2:
6 0
2025年3月
选择题
第10题
以下代码的说法正确的是什么()
#include <iostream>
using namespace std;
int main() {
int a = 0b1101;
int b = 0b1011;
cout << (a ^ b);
return 0;
}
A. 进行的是整体异或运算B. 进行的是按位同或运算
C. 进行的是按位与运算
D. 进行的是按位异或运算
判断题
第2题
这段程序进行的是判断一个从键盘输入的字符的ASCII是否是奇数,若是,输出YES,否则,输出 NO
int main()
{
char x;
scanf("%c", &x);
int ASCII = (int)x;
cout << (x & 1 ? "YES": "NO") << '\n';
return 0;
}
编程题
第1题
2025
小x有一个整数x,他想找到最小的正整数y,使得下式成立: (x and y) + (x or y) = 2025。其中 and 表示二进制按位与运算,or表示二进制按位或运算。如果不存在满足条件的y,则输出-1。
核心思路:
利用位运算的重要性质 `(x & y) + (x | y)` 等价于 `x + y`。所以题目简化为求解 `x + y = 2025`,即 `y = 2025 – x`。注意题目要求y是正整数。
1025
样例输出 1:
1000
2024年9月
选择题
第5题
下面说法正确的是()
A. (22&01) == (22&&01)成立B. (23|11) == 30
C. (23|10) == 31
D. (23|01) == 31
第6题
下列说法正确的是()
A. 2>>1和1>>1的值是一样的B. (2>>2)和(1>>1)的值是一样的
C. (11^00)和(1^0)的值是一样的
D. (~0的输出值是1)
第7题
下列代码实现的是()
void Swap(int &a, int &b) {
if (a != b) {
a ^= b;
b ^= a;
a ^= b;
}
}
A. a和b的异或B. a和b的同或
C. a和b的值交换
D. a和b的高低位互换
第8题
a&~1运算实现的是()。
A. 使a的最低位为1B. 使a的最高位为1
C. 使a的最低位为0
D. 使a的最高位为0
第9题
a=1010 1110, a<<2,下面关于这个说法正确的是()。
A. a的值变为1011 1000B. a的值变为1011 1010
C. a的值变为0101 1101
D. a的值变为0101 1100
第10题
下列程序中,result和result2输出分别是()
long a = 123;
int b = 1;
long result = a & b;
cout<<result<<endl;
long a2= -123;
unsigned int b2=-1;
long result2 = a2 & b2;
cout<<result2<<endl;
A. 1 23-1B. 1 23-123
C. 1 -1
D. 1 -123
判断题
第2题
~1的输出值是-2。()
第3题
~1 = 1111 1110。()
第4题
取X的低四位,可以用Y = 0000 1111,用X&Y获取X的低四位。()
2024年6月
选择题
第7题
下列代码的输出结果是()。
#include <iostream>
using namespace std;
int main() {
int a = 12;
int result = a >> 2;
cout << result << endl;
return 0;
}
A. 12B. 6
C. 3
D. 1
第8题
下列代码的输出结果是()。
#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
cout << "a=" << a << ", b = " << b << endl;
return 0;
}
A. a=5, b=10B. a=5, b=5
C. a=10, b=5
D. a=10, b=10
判断题
第7题
如果a为int类型的变量,且表达式 ((a|3)==3) 的值为true,则说明a在从0到3之间(可能为0、可能为3)。
第8题
执行下面C++代码后,输出的结果是8。
int a = 0b1010;
int b = 0b1100;
int c = a & b;
cout << c <<endl;
2024年3月
选择题
第4题
定义整数 int x=-5,则执行C++代码 cout << (x == (x<<1>>1))输出是( )。
A. 0B. 1
C. -5
D. 5
判断题
第2题
对整型变量 int a = 3, 执行C++代码a<<2将把2输出到a中。( )
第4题
一个int类型变量a,执行操作(a<<2>>2)后的值一定是a。()
第5题
在C++语言中,(010<<1)执行结果是100。()
2023年9月
选择题
第10题
如果a是int类型的变量,下列哪个表达式的值一定为true? ()
A. a + 1000 – 1000 == aB. a * 2 / 2 == a
C. (a ^ a | 1) == 1
D. (a | 1) == a + 1
第11题
如果a和b均为int类型的变量,下列表达式不能正确判断“a等于b”的是()。
A. ((a>=b) && (a<=b))B. ((a>>1)==(b>>1))
C. ((a+b)==(a+a))
D. ((a^b)==0)
第13题
在下列代码的横线处填写(),可以使得输出是“20 10”。
int main() {
int a=10, b=20;
a = (a<<8) | b;
// 在此处填入代码
cout << a << " " << b << endl;
return 0;
}
A. b=a>>8; a=a & 0xff;B. a=a>>8; b=a & 0xff;
C. a=b; b=a & 0xff;
D. b=a; a=b;
判断题
第2题
在C++语言中,位运算符也有类似“先乘除、后加减”的优先级规则。因此,使用时应注意合理使用括号。
第10题
如果a为int类型的变量,且表达式((a&1)==0)的值为true,则说明a是偶数。
2023年6月
选择题
第10题
一个int类型的值,做以下哪个操作,一定会变回原来的值? ( )
A. 左移3位,再右移3位。B. 右移3位,再左移3位。
C. 按位或7,再按位与-8。
D. 按位异或7,再按位异或7。
第11题
如果a和b均为int类型的变量,下列表达式能正确判断“a等于b”的是()。
A. ((a/b)==1)B. ((a&b)==a)
C. ((a^b)==0)
D. ((a|b)==b)
第12题
如果a为int类型的变量,下列哪个表达式可以正确求出满足“小于等于a且是4的倍数”的整数中最大的?( )
A. (a & (~3))B. ((a<<2)>>2)
C. (a^3)
D. ((a-1)|3)+1
第13题
在下列代码的横线处填写(),可以使得输出是“24 12”。
int main() {
int a=12, b=24;
//在此处填入代码
a=a^b;
b=a^b;
cout << a << " " << b << endl;
return 0;
}
A. a = a ^ b;B. b = a ^ b;
C. a = a + b;
D. b = a + b;
第15题
在下列代码的横线处填写(),可以使得输出不是“31”。
int array [5] = {1,2,4,8,16};
int res = 0;
for (int i=0; i < 5; i++)
//在此处填写代码
cout << res << endl;
A. res = res + array[i]B. res = res & array[i]
C. res = res | array[i]
D. res = res ^ array[i]
判断题
第10题
如果a为int类型的变量,且表达式((a | 3) == 3)的值为true,则说明a在从0到3之间(可能为0、可能为3)。