#6150. gesp三级真题分类二:位运算

gesp三级真题分类二:位运算

位运算(共20题)

  1. 表达式 (5 & 3) | (2 ^ 1) 的值是( ) {{ select(1) }}
  • 3
  • 5
  • 7
  • 1
  1. 已知 int a = 12,执行 a = a >> 2 后,a 的值是( ) {{ select(2) }}
  • 3
  • 48
  • 0
  • 1
  1. 下列哪种位运算可以实现无临时变量交换两个整数变量的值?( ) {{ select(3) }}
  • a = a + b; b = a - b; a = a - b;
  • a = a ^ b; b = a ^ b; a = a ^ b;
  • a = a | b; b = a & b; a = a | b;
  • a = a & b; b = a | b; a = a & b;
  1. ~5 在 32 位系统下的结果是( ) {{ select(4) }}
  • -6
  • -5
  • 2
  • 0
  1. 判断一个整数 x 是否为偶数的最快位运算方法是( ) {{ select(5) }}
  • x % 2 == 0
  • (x & 1) == 0
  • (x >> 1) << 1 == x
  • x ^ 1 == x + 1
  1. int a = 0b1010,则 a << 1 的值是( ) {{ select(6) }}
  • 20
  • 10
  • 5
  • 40
  1. 对于任意非负整数 nn & (n-1) 的作用是( ) {{ select(7) }}
  • 判断 n 是否为 2 的幂
  • 清除 n 的最低位的 1
  • 获取 n 的最高位
  • 将 n 加 1
  1. 表达式 7 | 9 的值是( ) {{ select(8) }}
  • 15
  • 7
  • 9
  • 1
  1. 表达式 (8 ^ 12) 的值是( ) {{ select(9) }}
  • 4
  • 8
  • 12
  • 6
  1. int a = 0b1100, int b = 0b1010,则 a & b 的值是( ) {{ select(10) }}
  • 0b1000
  • 0b1100
  • 0b1010
  • 0b1110
  1. 下列代码输出结果是( )
    int x = 5;
    cout << (x << 1);
    
    {{ select(11) }}
  • 5
  • 10
  • 2
  • 1
  1. (3 << 2) == 12 成立。( ) {{ select(12) }}
  • 正确
  • 错误
  1. (8 >> 1) + (8 & 1) == 5。( ) {{ select(13) }}
  • 正确
  • 错误
  1. 异或运算满足交换律和结合律。( ) {{ select(14) }}
  • 正确
  • 错误
  1. (~0) == -1 在补码表示下总是成立。( ) {{ select(15) }}
  • 正确
  • 错误
  1. 位运算优先级高于算术运算。( ) {{ select(16) }}
  • 正确
  • 错误
  1. (a ^ b) ^ b == a 对所有整数 a,b 成立。( ) {{ select(17) }}
  • 正确
  • 错误
  1. (a & ~a) == 0 对所有整数 a 成立。( ) {{ select(18) }}
  • 正确
  • 错误
  1. (a | 0) == a 对所有整数 a 成立。( ) {{ select(19) }}
  • 正确
  • 错误
  1. (a >> 1) << 1 == a 对所有整数 a 成立。( ) {{ select(20) }}
  • 正确
  • 错误