#CSPJ26D08. 2026 年 8 月 CSP-J 初赛 22 日打卡 Day08|位运算
2026 年 8 月 CSP-J 初赛 22 日打卡 Day08|位运算
Day 08 位运算:把一个数当成一排开关来用
建议用时:15~25 分钟。请先阅读知识点讲解,再完成下方客观题;直接勾选答案后提交,系统会自动判分。
知识点讲解
答案解析
客观题(共 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