#P1066. 位运算专题训练

位运算专题训练

  1. 执行语句 int a = 5 & 3; 后,变量 a 的值是({{ select(1) }})。
  • 1
  • 2
  • 3
  • 7
  1. 执行语句 int a = 12 | 9; 后,变量 a 的值是({{ select(2) }})。
  • 12
  • 9
  • 13
  • 15
  1. 执行语句 int a = 10 ^ 6; 后,变量 a 的值是({{ select(3) }})。
  • 12
  • 4
  • 16
  • 10
  1. 对于任意整数 x,表达式 x ^ x 的值总是({{ select(4) }})。
  • x
  • 0
  • -1
  • 1
  1. 在标准 C++ 中(假设整型变量占用4字节,采用补码存储),~1 的计算结果是({{ select(5) }})。
  • -1
  • -2
  • 0
  • 2
  1. 表达式 8 >> 2 的值是({{ select(6) }})。
  • 2
  • 4
  • 16
  • 32
  1. 表达式 3 << 3 的值是({{ select(7) }})。
  • 9
  • 12
  • 24
  • 18
  1. 若有 int x = -4;,执行 x >> 1 后(假设编译器采用算术右移,高位补符号位),其结果为({{ select(8) }})。
  • -2
  • -1
  • 2
  • -8
  1. 下列哪个位运算表达式可以用来准确判断一个整数 n 是否为奇数?({{ select(9) }})
  • (n & 1) == 1
  • (n | 1) == 1
  • (n ^ 1) == 1
  • (n >> 1) == 1
  1. 想要将一个 8 位整数 x 的低 4 位清零,高 4 位保持不变,应该使用哪种操作?({{ select(10) }})
  • x = x & 0xF0
  • x = x | 0xF0
  • x = x ^ 0xF0
  • x = x >> 4
  1. 想要将一个整数 x 的第 3 位(从低位到高位,最右侧记为第 0 位)设为 1,其他位保持不变,正确的表达式是({{ select(11) }})。
  • x = x | (1 << 3)
  • x = x & (1 << 3)
  • x = x ^ (1 << 3)
  • x = x | 3
  1. 表达式 (5 | 3) & 4 的执行结果是({{ select(12) }})。
  • 4
  • 5
  • 7
  • 0
  1. 交换两个整型变量 ab 的值,下列哪组位运算操作序列可以正确实现?({{ select(13) }})
  • a = a ^ b; b = a ^ b; a = a ^ b;
  • a = a & b; b = a | b; a = a ^ b;
  • b = a ^ b; a = a ^ b; b = a ^ b;
  • A 和 C 都可以
  1. 表达式 ~(-1) 的执行结果是({{ select(14) }})。
  • 0
  • 1
  • -2
  • -1
  1. 表达式 (unsigned int)1 >> 1 的执行结果是({{ select(15) }})。
  • 0
  • 1
  • 2
  • 2147483648
  1. 在 C++ 语言中,&& 是按位与运算符,而 & 是逻辑与运算符。({{ select(16) }})
  • 正确
  • 错误
  1. 表达式 5 | 5 的按位或计算结果依然是 5。({{ select(17) }})
  • 正确
  • 错误
  1. 表达式 3 ^ 0 的按位异或结果是 3。({{ select(18) }})
  • 正确
  • 错误
  1. 对一个任意的 32 位整型变量 x 执行按位取反操作 ~x,其结果在数值上等价于 -x - 1。({{ select(19) }})
  • 正确
  • 错误
  1. 执行表达式 5 << 1 相当于将十进制数 5 乘以 2 的 1 次幂。({{ select(20) }})
  • 正确
  • 错误
  1. 执行表达式 7 >> 1 在 C++ 整型运算中的结果是浮点数 3.5。({{ select(21) }})
  • 正确
  • 错误
  1. 表达式 (x & 1) == 0 可以作为判断一个整数 x 是否为偶数的准确条件。({{ select(22) }})
  • 正确
  • 错误
  1. C++ 语言中,位运算符(如 &|^)的运算优先级通常高于算术运算符(如 +-)。({{ select(23) }})
  • 正确
  • 错误
  1. 表达式 1 << 3 的计算结果是 8。({{ select(24) }})
  • 正确
  • 错误
  1. 按位异或运算符 ^ 满足交换律,即对于任意整型变量,a ^ b 严格等于 b ^ a。({{ select(25) }})
  • 正确
  • 错误
  1. 如果 x 是一个普通的 int 类型变量,执行表达式 x ^ ~x 的结果一定是 -1(各二进制位全为 1)。({{ select(26) }})
  • 正确
  • 错误
  1. int a 为正整数,且表达式 ((a | 3) == 3) 的值为 true,则说明 a 的数值必然在 0 到 3 之间。({{ select(27) }})
  • 正确
  • 错误
  1. 左移运算符 << 在右侧空出的位上补齐时,不论该数原先是正数还是负数,一律补 0。({{ select(28) }})
  • 正确
  • 错误
  1. 右移运算符 >> 对有符号负数进行右移时,高位补 0 还是补 1 取决于它是逻辑右移还是算术右移,在标准 C++ 绝大多数编译器中通常执行算术右移(即补 1)。({{ select(29) }})
  • 正确
  • 错误
  1. 表达式 10 & 5 的计算结果为 0。({{ select(30) }})
  • 正确
  • 错误