#CSPJ26D08. 2026 年 8 月 CSP-J 初赛 22 日打卡 Day08|位运算

2026 年 8 月 CSP-J 初赛 22 日打卡 Day08|位运算

Day 08 位运算:把一个数当成一排开关来用

建议用时:15~25 分钟。请先阅读知识点讲解,再完成下方客观题;直接勾选答案后提交,系统会自动判分。

知识点讲解

Day 08 位运算:把一个数当成一排开关来用

答案解析

Day 08 位运算:把一个数当成一排开关来用

客观题(共 10 题)

请在每题下方直接选择答案。判断题选择“正确”或“错误”,全部完成后统一提交。

第 1 题

十进制数 13 与 5 按位与(13 & 5)的结果是( )。

{{ select(1) }}

  • 1
  • 4
  • 5
  • 8

第 2 题

设 a 是 int 型变量,下列表达式中能 正确 判断 a 是否为偶数的是( )。

{{ select(2) }}

  • a & 1 == 0
  • (a & 1) == 0
  • a & (1 == 0)
  • (a & 1) == 1

第 3 题

【NOIP 2007 普及组 初赛】在 C++ 程序中,表达式 23 | 2 ^ 5 的值是( )。

{{ select(3) }}

  • 23
  • 1
  • 32
  • 18

第 4 题

已知 int 型变量满足 a ^ b ^ c == 0,且 a = 6,b = 10,则 c 的值是( )。

{{ select(4) }}

  • 4
  • 16
  • 12
  • 60

第 5 题

【CSP-J 2025 初赛·第 2 题】在 C++ 中,执行 int x = 255; cout << (x & (x - 1)); 后,输出的结果是( )。

{{ select(5) }}

  • 255
  • 254
  • 128
  • 0

第 6 题

设 int 型变量 x = −13,则表达式 x >> 2 的值是( )。

{{ select(6) }}

  • −4
  • −3
  • 3
  • 4

第 7 题

【GESP 2024 年 3 月 三级】定义整数 int x = -5,则执行 C++ 代码 cout << (x == (x << 1 >> 1)) 的输出是( )。

{{ select(7) }}

  • 0
  • 1
  • −5
  • 5

第 8 题

【CSP-S 2023 初赛·提高组】假设我们有以下的 C++ 代码:int a = 5, b = 3, c = 4; bool res = a & b || c ^ b && a | c;,请问 res 的值是什么( )。(提示:双目位运算的优先级高于双目逻辑运算,位运算内部 & 高于 ^ 高于 |,逻辑运算 && 高于 ||。)

{{ select(8) }}

  • true
  • false
  • 2
  • 编译错误

第 9 题

阅读下面的程序,完成第 9~10 题。

#include <iostream>
using namespace std;

int main() {
    int a[7] = {4, 7, 2, 7, 4, 9, 2};
    int single = 0, cnt = 0;
    for (int i = 0; i < 7; i++) {
        single ^= a[i];
    }
    int x = single;
    while (x) {
        x = x & (x - 1);
        cnt++;
    }
    cout << single << " " << cnt << endl;
    return 0;
}

程序运行后,输出的第一个数(single 的值)是( )。

{{ select(9) }}

  • 2
  • 4
  • 7
  • 9

第 10 题

程序运行后,输出的第二个数(cnt 的值)是( )。

{{ select(10) }}

  • 1
  • 4
  • 2
  • 7