

🧱 判断题第 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、📌 小口诀
循环内容要有大括号来包裹,
没有就可能跑到循环外面去。
内循环,外循环,变量要分开,
不要使用全局变量互相来影响。
网硕互联帮助中心





评论前必须登录!
注册