GESP2023年6月认证C++三级( 第一部分选择题(9-15))
2026/4/24 10:23:26 网站建设 项目流程



🏰 第九题:数组村庄的秘密

1、👨‍🏫老师带你来到“数组村”:

他说:这里的数组都有规则!

来看选项:

A ✔ 先定义再用(必须的)
B ✔ 内存连续(像排队站好)
C ✔ 一般要写大小(对的)
D ✔ 不能整体赋值,但可以一个个改

🤔哪一个是错误的?


2、👉但题目找“错误的”

⚠️关键点在 C:

👉除了字符数组,在定义数组时“[ ]”内必须有常数。


3、字符数组的定义:

char s[] = "hello"; // ✔ 可以不写大小

4、但其实其他类型也可以这样初始化:

int a[] = {1,2,3}; // ✔ 也是可以的!

👉 所以这句话说得是错误的 ❌


5、✅答案:C



🏰 第十题:位运算变形术

1、🎩魔法问题:

哪个操作“做完还能变回原来的数”?

A 左移再右移 ❌(会丢失高位)
B 右移再左移 ❌(低位丢失)
C 或7再与-8 ❌(信息被覆盖)
D 异或7再异或7 ✔


2、✨为什么?

👉 异或的神奇性质:

a ^ b ^ b = a

🎯就像:
👉 “变身 → 再变回来”


3、✅答案:D



🏰 第十一题:相等判断魔法

1、🎯目标:判断 a 是否等于 b

来看:

A ❌ a/b==1(不靠谱)
B ❌ 按位与(不等价)
C ✔ (a ^ b) == 0
D ❌ 按位或不可靠


2、✨重点来了!

👉 如果 a == b:

a ^ b = 0

🎯因为每一位都一样!


3、✅答案:C



🏰 第十二题:找最大4的倍数

1、🧠目标:

👉 找 ≤ a 的最大“4的倍数”

💡关键:
4的倍数 = 最后2位是00(二进制)


2、✨神操作:

a & (~3)

解释:

  • ~3 = 把最后两位变成0

  • & = 保留其他位


3、🎯效果:


👉 直接“抹掉最后两位”!

例如:

a = 13 (1101) → 1100 = 12

4、✅答案:A



🏰 第十三题:交换数字魔法

1、🎩经典魔法:交换 a 和 b

👉 输出是 “24 12”


2、✨异或交换法:

a = a ^ b; b = a ^ b; a = a ^ b;

👉 每一步都很关键!


3、题目问填哪一句?

👉 应该填:

B. b = a ^ b


4、✅答案:B



🏰 第十四题:最小值守护者

1、🛡️你要找数组中最小值

(1)经典代码逻辑:

if (array[i] < min) min = array[i];

(2)👉 条件必须是:

min > array[i]

(3)因为:
👉 当前更小 → 更新!


2、本题的问题:

int min = 0;

数组中没有比0小的,所以,不会被更新。


3、✅答案:D



🏰 第十五题:神秘结果31

1、🧪题目:


填哪句可以让结果“不是31”?


2、分析:

A 、加法 → 1+2+4+8+16 = 31 ✅️

B、 按位与 &运算 → 结果是 0
C、 按位或 | 运算 → 结果是 31
D、 按位异或^ 运算 → 结果是 31


3、👉 B 是关键!

res = res & array[i];

✨按位与的特点:要全部相同才行,最终都不相同,结果是0


4、✅答案:B


🎉 知识点总结:

🧠 数组规则
🧠 位运算技巧(异或/与/或)
🧠 判断相等的高级方法
🧠 位运算找倍数
🧠 交换变量技巧
🧠 最值算法
🧠 位运算对结果的影响


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询