Problem A: [CSP-S1][选择] 位运算2
Description
1. 若 x 是一个无符号整数,下列哪个操作等价于 x % 16?( )
A. x & 15
B. x >> 4
C. x | 15
D. x << 4
2. 以下代码的输出是( )。
int a = 0b1100;
int b = 0b1010;
cout << (a & ~b);
A. 0b1000
B. 0b0100
C. 0b0010
D. 0b1100
3. 下列哪个表达式可以将整数 n 的第3位(从右往左,第0位开始)设置为1?( )
A. n |= (1 << 3)
B. n &= ~(1 << 3)
C. n ^= (1 << 3)
D. n >>= 3
4. 若 x = 10,则 x << 2 + x >> 1 的结果是( )。
A. 40
B. 42
C. 20
D. 20480
5. 以下代码的输出是( )。
unsigned int a = 0xFFFF;
cout << (a ^ (a << 8));
A. 0xFF0000
B. 0x00FF00
C. 0xFF00FF
D. 0x00FFFF
6. 表达式 ~0U >> 1(U表示无符号)的结果是( )。
A. 最大无符号整数的一半
B. 0
C. 1
D. 最大无符号整数
7. 下列哪个操作可以判断整数 n 是否是2的幂?( )
A. n & (n - 1) == 0
B. n % 2 == 0
C. n | (n - 1) == n
D. n ^ (n >> 1) == 0
8. 若 a = 5(0101),b = 3(0011),则 a & b | a ^ b 的结果是( )。
A. 7(0111)
B. 5(0101)
C. 3(0011)
D. 1(0001)
9. 以下代码的功能是( )。
int func(int x) {
return x & (x - 1);
}
A. 将 x 的最低位的1置0
B. 计算 x 的二进制长度
C. 判断 x 是否为奇数
D. 交换 x 的相邻位
10. 表达式 (0b1010 >> 1) | (0b1010 << 1) 的结果是( )。
A. 0b10101
B. 0b01111
C. 0b00000
D. 0b01010
Sample Input Copy
Sample Output Copy