云计算百科
云计算领域专业知识百科平台

GESP2025年3月认证C++二级( 第二部分判断题(1-10))


🧱 判断题第 1 题

「程序语言的幕后世界」

1、📖 故事

C++ 和 Python 是两个“魔法师”,
他们写的代码,看起来很高级、很聪明 ✨
但真正干活的,是谁呢?

👉 是 计算机底层的机器指令小兵 ⚙️


2、🧠 题目判断

C++、Python 都是高级语言,但最终都要靠机器指令完成。( )


3、✅ 判断

✔ 正确


4、📌 小口诀

🧙 高级语言只是“翻译官”,
🤖 真正干活的是机器指令



🧱 第 2 题 「个位数的秘密」

1、📖 故事

数字 N 想知道自己的 个位数,
它有两条路可以走:

  • 路一:N % 10

  • 路二:N – N / 10 * 10


2、🧠 举个例子

N = 123

  • 123 % 10 = 3

  • 123 / 10 = 12

  • 123 – 12 * 10 = 3

👉 一模一样!


3、✅ 判断

✔ 正确


4、📌 小口诀

💡 %10 和 “减去整十”
👉 都能取个位



🧱 第 3 题 「连等号的幻觉」

1、📖 看题目

代码写成这样:

(10 <= N <= 12)

看起来像数学,对吧?😄
但 C++ 会按照自己的想法理解它:


2、🧠 真正的执行顺序

1️⃣ 先算:10 <= N
👉 得到 true(就是 1)

2️⃣ 再算:1 <= 12
👉 当然是 true!


3、❌ 所以问题来了

N>12,
这个表达式 结果也是 true

如果你想表达的是数学中的 (10 <= N <= 12),可能不是你想要结果。


4、🧠 题目判断

当 N = 12 时,执行 10 <= N 后其值为 true true 12 相比仍然是 true。( )


5、✅ 判断

✔ 正确

⚠️ 虽然结论对,但写法非常危险


6、📌 小口诀

❌ C++ 里连续判断,不能写 a <= b <= c
✅ 要写:a <= b && b <= c



🧱 第 4 题 「平方 ≠ 原数?」

1、📖 看题目

有人说:

sqrt(N) * sqrt(N) == N

一定成立,对吗?


2、🧠 真相揭秘

sqrt() 是 浮点数计算
浮点数 ≠ 精确数 ❗

比如:
sqrt(9) 可能是 2.9999999


3、❌ 所以

再平方,不一定刚好等于 N


4、❌ 判断

✘ 错误


5、📌 小口诀

⚠️ 小数比较是否相等,一定要用 abs(a-b)<= 极小值,

❌ 不能直接使用“==”来判断。



🧱 第 5 题  「交换魔法」

1、📖 看题目

代码:

int a=2, b=3;
a=a-b;
b=a+b;
a=b-a;
printf("%d*%d=%d\\n", a, b, a*b);

a 与 b的值实现了交换。


2、🧠 计算一下

  • 最终:a = 3,b = 2

  • 输出:3*2=6


3、✅ 判断

✔ 正确


4、📌 小口诀

✨ 这是“不用临时变量交换”的一种方式。



🧱 第 6 题  「continue 的陷阱」

1、📖 看题目

循环里全是 continue:

for (i = 0; i < 10; i++)
continue;
cout << i;


2、真相

  • continue 不会停循环

  • 循环正常跑完

  • 最后 i == 10


3、✅ 判断

✔ 正确


4、📌 小口诀

continue 跳过一轮
不影响 i 的增长



🧱 第 7 题「break 的突然停止」

1、📖 看题目

for (i = 1; i < 10; i++) {
break;
continue;
}
cout << i;


2、🧠 执行过程

  • i = 1

  • 立刻 break

  • 循环结束

  • 输出 i = 1


3、✅ 判断

✔ 正确


4、📌 小口诀

🛑 break 一出现
循环立刻停



🧱 第 8 题 「OK 的堆叠」

1、📖 看题目

for (int i = 0; i < 5; i++)
for(int j = 0; j < i; j++)
printf("OK\\n");


2、🧠 数一数

  • i=0 → 0 次

  • i=1 → 1 次

  • i=2 → 2 次

  • i=3 → 3 次

  • i=4 → 4 次

👉 总共:10 行 OK


3、✅ 判断

✔ 正确


4、📌 小口诀

🔁 本题是双重循环,外循环+内循环
总次数 = 1+2+3+4



🧱 第 9 题  「for 从 1 还是 0 开始?」

1、📖 看题目

for (i = 1; i < 5; i++)
tnt += i;

如果改成:

for (i = 0; i < 5; i++)


2、🧠 区别来了

  • 从 0 开始 👉 多加一个 0

  • 结果 是一样


3、✅ 判断

✔ 正确


4、📌 小口诀

起点不同,
结果可能完全不同,

但是本题多加一个0,碰巧没改变结果。



🧱 第 10 题  奇怪的代码

1、📖 看题目

for (i = 0; i < 5; i++)
for (i = 0; i < i; i++)
continue;
printf("%d\\n", i);

这段代码结构很奇怪,循环内容没有大括号{ },而且内循环,外循环都是全局变量i。


2、输出是什么?

for (i = 0; i < 5; i++) //外循环是用全局变量i计数
for (i = 0; i < i; i++) //内循环也用全局变量i计数,当外循环i++后,进入内循环又赋值为0
continue; //本题为死循环
printf("%d\\n", i);

死循环的结果,是没有输出。


3、❌ 判断

✘ 错误


4、📌 小口诀

循环内容要有大括号来包裹,

没有就可能跑到循环外面去。

内循环,外循环,变量要分开,

不要使用全局变量互相来影响。


赞(0)
未经允许不得转载:网硕互联帮助中心 » GESP2025年3月认证C++二级( 第二部分判断题(1-10))
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!