林老师 · 客观题题库 · CSP-J 卷
CSP-J 卷
高频 · 位与/或/异或/取反/移位 · 共 36 题 · 由简到难 · 建议 54 分钟
真题 复刻
试卷编号OBJ-700736
题目总数36 题 · 72 分
试卷类型客观题
考生须知:
① 本卷为客观题单卷,合计 36 题 · 72 分 ,全部为客观题;
② 试卷右上角设有 「提交答卷」 与 「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。
壹
客 观 题
36 QUESTIONS · 2 POINTS EACH
第 1 题
单选
☆
⧉
未作答
(2 分)
A int
B float
C struct
D char
CSP-J 2024 · 单选 第6题 | 知识点 位异或、整型
第 2 题
单选
☆
⧉
未作答
(2 分)
GESP 三级 2023-06 · 单选 第4题 | 知识点 算术运算、位与、逻辑运算
第 3 题
单选
☆
⧉
未作答
如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断"a 等于 b"的是( )。
(2 分)
A ((a / b) == 1)
B ((a & b) == a)
C ((a ^ b) == 0)
D ((a | b) == b)
GESP 三级 2023-06 · 单选 第11题 | 知识点 位异或、关系运算、程序阅读与输出推断
第 4 题
单选
☆
⧉
未作答
如果 a 为 int 类型的变量,下列哪个表达式可以正确求出满足"小于等于 a 且是 4 4 4 的倍数"的整数中最大的?( )
(2 分)
A (a & (~3))
B ((a << 2) >> 2)
C (a ^ 3)
D ((a - 1) | 3) + 1
GESP 三级 2023-06 · 单选 第12题 | 知识点 位与、位取反、程序阅读与输出推断
第 5 题
单选
☆
⧉
未作答
在下列代码的横线处填写( ),可以使得输出是"24 12"。
01 #include <iostream>
02 using namespace std;
03 int main() {
04 int a = 12, b = 24;
05 ____________; // 在此处填入代码
06 a = a ^ b;
07 b = a ^ b;
08 cout << a << " " << b << endl;
09 return 0;
10 }
(2 分)
A a = a ^ b
B b = a ^ b
C a = a + b
D b = a + b
GESP 三级 2023-06 · 单选 第13题 | 知识点 位异或、程序补全
第 6 题
单选
☆
⧉
未作答
在下列代码的横线处填写( ),可以使得输出不是"31 31 31 "。
01 #include <iostream>
02 using namespace std;
03 int main() {
04 int array[5] = {1, 2, 4, 8, 16};
05 int res = 0;
06 for (int i = 0; i < 5; i++)
07 ____________; // 在此处填写代码
08 cout << res << endl;
09 return 0;
10 }
(2 分)
A res = res + array[i]
B res = res & array[i]
C res = res | array[i]
D res = res ^ array[i]
GESP 三级 2023-06 · 单选 第15题 | 知识点 位与、程序补全
第 7 题
判断
☆
⧉
未作答
如果 a 为 int 类型的变量,且表达式 ((a | 3) == 3) 的值为 true,则说明 a 在从 0 0 0 到 3 3 3 之间(可能为 0 0 0 、可能为 3 3 3 )。
(2 分)
GESP 三级 2023-06 · 判断 第10题 | 知识点 位或、关系运算、程序阅读与输出推断
第 8 题
单选
☆
⧉
未作答
如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“a 等于 b”的是( )。
(2 分)
A ((a >= b) && (a <= b))
B ((a >> 1) == (b >> 1))
C ((a + b) == (a + a))
D ((a ^ b) == 0)
GESP 三级 2023-09 · 单选 第11题 | 知识点 移位运算、关系运算、程序阅读与输出推断
第 9 题
单选
☆
⧉
未作答
在下列代码的横线处填写( ),可以使得输出是 20 10。
01 #include <iostream>
02 using namespace std;
03
04 int main() {
05 int a = 10, b = 20;
06 a = (a << 8) | b;
07 ____________ // 在此处填入代码
08 cout << a << " " << b << endl;
09 return 0;
10 }
(2 分)
A a = a >> 8; b = a & 0xff
B b = a >> 8; a = a & 0xff;
C a = b; b = a & 0xff;
D b = a; a = b;
GESP 三级 2023-09 · 单选 第13题 | 知识点 移位运算、位与、程序补全
第 10 题
判断
☆
⧉
未作答
在 C++语言中,位运算符也有类似“先乘除、后加减”的优先级规则。因此,使用时应注意合理使用括号。
(2 分)
GESP 三级 2023-09 · 判断 第2题 | 知识点 运算符优先级、位与
第 11 题
判断
☆
⧉
未作答
在 C++语言中,所有 int 类型的值,经过若干次左移操作(<<)后,它们的值总会变为 0 0 0 。
(2 分)
GESP 三级 2023-09 · 判断 第5题 | 知识点 移位运算、数据范围与溢出
第 12 题
判断
☆
⧉
未作答
如果 a 为 int 类型的变量,且表达式 ((a & 1) == 0) 的值为 true,则说明 a 是偶数。
(2 分)
GESP 三级 2023-09 · 判断 第10题 | 知识点 位与、关系运算、程序阅读与输出推断
第 13 题
单选
☆
⧉
未作答
下面 C++ 代码执行后的输出是( )。
01 int main()
02 {
03 cout << (3|16) << endl;
04 cout << endl;
05 return 0;
06 }
(2 分)
A 3 3 3
B 16 16 16
C 19 19 19
D 48 48 48
GESP 三级 2024-03 · 单选 第3题 | 知识点 位或、程序阅读与输出推断
第 14 题
单选
☆
⧉
未作答
定义整数 int x=-5,则执行 C++ 代码 cout << (x == (x<<1>>1)) 输出是( )。
(2 分)
GESP 三级 2024-03 · 单选 第4题 | 知识点 移位运算、补码、程序阅读与输出推断
第 15 题
单选
☆
⧉
未作答
定义整型变量 int a=3, b=16,则 a|b 的值和 a+b 的关系是( )。
(2 分)
GESP 三级 2024-03 · 单选 第13题 | 知识点 位或、算术运算、程序阅读与输出推断
第 16 题
判断
☆
⧉
未作答
对整型变量 int a = 3,执行 C++ 代码 a<<2 将把 2 2 2 输出到 a 中。
(2 分)
GESP 三级 2024-03 · 判断 第2题 | 知识点 移位运算、cin与cout、程序阅读与输出推断
第 17 题
判断
☆
⧉
未作答
一个 int 类型变量 a,执行操作 (a<<2>>2) 后的值一定是 a。
(2 分)
GESP 三级 2024-03 · 判断 第4题 | 知识点 移位运算、数据范围与溢出、程序阅读与输出推断
第 18 题
单选
☆
⧉
未作答
下列代码的输出结果是( )。
01 #include <iostream>
02 using namespace std;
03 int main() {
04 int a = 12;
05 int result = a >> 2;
06 cout << result << endl;
07 return 0;
08 }
(2 分)
GESP 三级 2024-06 · 单选 第7题 | 知识点 移位运算、程序阅读与输出推断
第 19 题
单选
☆
⧉
未作答
下列代码的输出结果是( )。
01 #include <iostream>
02 using namespace std;
03
04 int main() {
05 int a = 5;
06 int b = 10;
07 a = a ^ b;
08 b = a ^ b;
09 a = a ^ b;
10
11 cout << "a = " << a << ", b = " << b << endl;
12 return 0;
13 }
(2 分)
A a = 5, b = 10
B a = 5, b = 5
C a = 10, b = 5
D a = 10, b = 10
GESP 三级 2024-06 · 单选 第8题 | 知识点 位异或、程序阅读与输出推断
第 20 题
判断
☆
⧉
未作答
执行下面 C++ 代码后,输出的结果是 8 8 8 。
01 int a = 0b1010;
02 int b = 01100;
03 int c = a & b;
04 cout << c <<endl;
(2 分)
GESP 三级 2024-06 · 判断 第8题 | 知识点 位与、二进制、八进制、程序阅读与输出推断
第 21 题
单选
☆
⧉
未作答
(2 分)
A (22&01)==(22&&01) 成立
B (23|11)==30
C (23|10)==31
D (23|01)==31
GESP 三级 2024-09 · 单选 第5题 | 知识点 位或、位与、程序阅读与输出推断
第 22 题
单选
☆
⧉
未作答
(2 分)
A 2>>1 和 1>>1 的值是一样的
B (2>>2) 和 (1>>1) 的值是一样的
C (11^00) 和 (1^0) 的值是一样的
D (~0) 的输出值是 1 1 1
GESP 三级 2024-09 · 单选 第6题 | 知识点 移位运算、位取反、程序阅读与输出推断
第 23 题
单选
☆
⧉
未作答
下列代码实现的是( )。
01 void Swap(int &a, int &b) {
02 if (a != b) {
03 a ^= b;
04 b ^= a;
05 a ^= b;
06 }
07 }
(2 分)
A a 和 b 的异或
B a 和 b 的同或
C a 和 b 的值交换
D a 和 b 的高低位互换
GESP 三级 2024-09 · 单选 第7题 | 知识点 位异或、引用、程序阅读与输出推断
第 24 题
单选
☆
⧉
未作答
(2 分)
A 使 a 的最低位为 1 1 1
B 使 a 的最高位为 1 1 1
C 使 a 的最低位为 0 0 0
D 使 a 的最高位为 0 0 0
GESP 三级 2024-09 · 单选 第8题 | 知识点 位与、位取反、程序阅读与输出推断
第 25 题
单选
☆
⧉
未作答
a=1010 1110,a<<2,下面关于这个说法正确的是( )。
(2 分)
A a 的值变为 1011 1000
B a 的值变为 1011 1010
C a 的值变为 0101 1101
D a 的值变为 0101 1100
GESP 三级 2024-09 · 单选 第9题 | 知识点 移位运算、二进制、程序阅读与输出推断
第 26 题
单选
☆
⧉
未作答
下列程序中,result 和 result2 输出分别是( )。
01 long a = 123;
02 int b = 1;
03 long result = a & b;
04 cout<<result<<endl;
05
06 long a2 = -123;
07 unsigned int b2 = -1;
08 long result2 = a2 & b2;
09 cout<<result2<<endl;
(2 分)
A 123 -1
B 123 -123
C 1 -1
D 1 -123
GESP 三级 2024-09 · 单选 第10题 | 知识点 隐式类型转换、位与、程序阅读与输出推断
第 27 题
判断
☆
⧉
未作答
(2 分)
GESP 三级 2024-09 · 判断 第3题 | 知识点 位取反、二进制、程序阅读与输出推断
第 28 题
判断
☆
⧉
未作答
取 X 的低四位,可以用 Y = 0000 1111,用 X&Y 获取 X 的低四位。
(2 分)
GESP 三级 2024-09 · 判断 第4题 | 知识点 位与、二进制、程序阅读与输出推断
第 29 题
单选
☆
⧉
未作答
(2 分)
A 5&&3==0
B 5|3==8
C 5||3==11
D 5&3==0001
GESP 三级 2024-12 · 单选 第5题 | 知识点 位与、逻辑运算、程序阅读与输出推断
第 30 题
单选
☆
⧉
未作答
a|10(a 与 10 10 10 都是 10 10 10 进制,且二进制表示最高位为 1 1 1 )运算的结果是( )。
(2 分)
A 使 a 的二进制表示从右往左的第二位为 1 1 1
B 使 a 的二进制表示从右往左的第一位为 0 0 0
C 使 a 的二进制表示从右往左第二位为 0 0 0
D 使 a 的二进制表示最高位为 0 0 0
GESP 三级 2024-12 · 单选 第8题 | 知识点 位或、二进制、程序阅读与输出推断
第 31 题
判断
☆
⧉
未作答
下列程序输出的是 A。
01 char x=65;
02 x=x&00001111;
03 cout<<x<<endl;
(2 分)
GESP 三级 2024-12 · 判断 第5题 | 知识点 位与、ASCII码、程序阅读与输出推断
第 32 题
判断
☆
⧉
未作答
这段程序进行的是判断一个从键盘输入的字符的 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO。
01 int main()
02 {
03 char x;
04 scanf("%c" , &x);
05 int ASCII = (int )x;
06 cout << (x & 1 ? "YES" : "NO" ) << '\n' ;
07 return 0;
08 }
(2 分)
GESP 三级 2025-03 · 判断 第2题 | 知识点 位与、ASCII码、程序阅读与输出推断
第 33 题
单选
☆
⧉
未作答
若 X 的 8 8 8 位补码为 0000 1010,则 X/2 的补码是( )。
(2 分)
A 0000 0101
B 1000 0101
C 0000 0101 或 1000 0101
D 算术右移后结果取决于符号位
GESP 三级 2025-06 · 单选 第4题 | 知识点 补码、移位运算
第 34 题
单选
☆
⧉
未作答
二进制数 1010 | 1100 的结果是( )。
(2 分)
GESP 三级 2025-06 · 单选 第8题 | 知识点 位或、二进制、程序阅读与输出推断
第 35 题
单选
☆
⧉
未作答
以下哪个位运算可以交换两个变量的值(无需临时变量)( )。
(2 分)
A
a = a ^ b; b = a ^ b; a = a ^ b;
B
a = a & b; b = a | b; a = a & b;
C
a = a | b; b = a ^ b; a = a ^ b;
D
a = ~a; b = ~b; a = ~a;
GESP 三级 2025-06 · 单选 第9题 | 知识点 位异或、程序阅读与输出推断
第 36 题
判断
☆
⧉
未作答
x 是浮点数,(x >> 1) 等价于 x / 2。
(2 分)
GESP 三级 2025-06 · 判断 第3题 | 知识点 移位运算、浮点型