第二部分:判断题详细解析(共 10 题)

1、判断题 第 1 题
鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。( )
❌ 结论:错误
🧠 解析
这里考的是一个非常基础但非常容易混淆的概念:
| 名称 | 作用 |
|---|---|
| 操作系统 | 管理硬件、运行程序 |
| 编译器 | 把源程序翻译成机器能执行的程序 |
👉 鸿蒙是操作系统,不是编译器
-
它可以 运行程序
-
但 不能"翻译源程序"
2、判断题 第 2 题
C++ 表达式
10 * 4 % 6和10 * 2 % 3的结果相同。( )
✅ 结论:错误
🧠 解析
先记住规则👇
*和%同一优先级,从左往右算
第一个表达式
cpp
10 * 4 % 6
→ 40 % 6
→ 4
第二个表达式
cpp
10 * 2 % 3
→ 20 % 3
→ 2
3、判断题 第 3 题
下面 C++ 代码执行后将输出 0。( )
cpp
int i;
for (i = 0; i < 10; i++)
if (i % 3 == 0)
continue;
else
break;
cout << i;
✅ 结论:错误
🧠 解析(逐步模拟)
-
i = 0 -
0 % 3 == 0→continue -
进入下一轮
-
i = 1 -
1 % 3 != 0→break -
循环立刻结束
此时 i 是多少?
👉 1

4、判断题 第 4 题
把
i > -10; i--改为i < 10; i++,执行结果相同。( )
❌ 结论:错误
🧠 解析
看起来,这两种循环:
cpp
for (i = 0; i > -10; i--)
cpp
for (i = 0; i < 10; i++)
都是求0+1+2+3+.......+9的和。
问题出在
cpp
if (i < 0)
i=-i;
- i 的值始终不会小与-10,为死循环。

5、判断题 第 5 题
下面代码输出 99,因为
i < 100不包括 100。( )
cpp
for (int i = 0; i < 100; i++)
;
cout << i;
❌ 结论:错误
🧠 解析
关键点:
循环结束后,输出为 cout << cnt ;
执行过程:0~99,共计循环100次
👉 输出的是 100
📌 这是 1 级考试中最经典的"循环结束值"陷阱

6、判断题 第 6 题
下面代码能判断正整数是否为对称数。( )
cpp
while (n != 0){
new_number = new_number * 10 + n % 10;
n /= 10;
}
if (n == new_number)
❌ 结论:错误
🧠 解析
致命问题👇
n在 while 循环结束后已经变成 0
你拿什么跟 new_number 比?
✅ 正确做法:
cpp
int old = n;
...
if (old == new_number)
📌 1 级非常爱考:是否保存原值

7、判断题 第 7 题
下面代码执行后将输出 0。( )
cpp
int tnt = 0;
for (int i = -100; i < 100; i++)
tnt += i;
cout << tnt;
✅ 结论:错误
🧠 解析
-
-100到 99 的和 = -100 -
不完全对称,不能互相抵消
-
最后会有-100不能消掉
👉 总和 = -100

8、判断题 第 8 题
printf("%g", 3 + 3.1415926535) 输出 6.14159,说明电脑有问题。( )
❌ 结论:错误
🧠 解析
%g 的规则是:
默认输出 6 位有效数字
不是 bug!
不是电脑坏了!
是你 格式符没用对
📌 若想全输出:
cpp
printf("%.10f", x);
9、判断题 第 9 题
三目运算符中 int 和 double 会导致编译错误。( )
❌ 结论:错误
🧠 解析
C++ 会自动进行:
👉 类型提升(int → double)
最终结果是 double
📌 三目运算符:
两个结果会被"统一成同一类型"
10、判断题 第 10 题
不能把变量命名为 keyword,因为它是 C++ 关键字。( )
❌ 结论:错误
🧠 解析
C++ 的关键字是:
cpp
int, for, while, if, return ...
keyword 只是一个普通英文单词
✔ 可以作为变量名
11、判断题核心知识点总结
| 易错点 | 一句话记忆 |
|---|---|
| 操作系统 vs 编译器 | 翻译程序的是编译器 |
| 循环结束值 | 退出时变量已经更新 |
| continue / break | 会改变执行路径 |
| 对称数 | 一定要保存原值 |
| printf 格式 | 输出不对 ≠ 电脑坏 |
| 三目运算符 | 会自动类型转换 |