


🌟 第 9 题 ------ 双重 for 循环计数
1、先看题目:
cpp
int loopCount = 0;
for (int i=0; i < 10; i++)
for (int j=1; j < i; j++)
loopCount += 1;
2、正确答案:C(36)
3、🧠 题目讲解
(1)我们来画个表:
当 i=0 → j 不执行
当 i=1 → j 不执行
当 i=2 → j=1 → 1次
当 i=3 → j=1,2 → 2次
当 i=4 → 3次
...
当 i=9 → 8次
(2)所以总数:
cpp
1+2+3+4+5+6+7+8 = 36
(3)🎯 这是一个三角形计数,等差数列求和问题!

🌟 第 10 题 ------ 计数器的位置
1、先看题目:
cpp
int loopCount = 0;
for (int i=0; i < 10; i++){
for (int j=0; j < i; j++)
if (i * j % 2)
break;
loopCount += 1;
}
2、关键代码
cpp
for (int j=0; j < i; j++)
if (i * j % 2)
break;
loopCount += 1;
计数器在内循环的外面,只负责记录外循环的次数
3、外循环次数为0~9
4、正确答案: C、 10

🌟 第11题 ------ while 循环求和
1、先看题目:
cpp
while (N){
Sum += N;
cin >> N;
}
2、正确答案:D 是错误说法
3、题目讲解
(1)while(N) 的意思是:
只要 N 不等于 0,就继续。
(2)如果输入:
5
3
-2
0
Sum = 5 + 3 - 2 = 6
输入 0 时停止。
3、选项 D 说:
把 while(N) 改成 while(N==0)
那会怎样?
一开始 N 不是 0,就根本不进循环 ❌所以 D 是错的。


🌟 第12题 ------ 判断质数
1、正确答案:D
2、🧠 代码逻辑解释
cpp
for (int i = 2; i < N; i++){
if (i * i > N)
break;
if (N % i == 0){
Flag = false;
break;
}
}
3、目前代码存在的问题:
目前代码默认输入数字是大于2的正整数。
4、看下各个选项:
**A.**如果输入正整数,上面代码能正确判断N是否为质数
答案是错误❌️
输入1,是正整数,不是质数,但是输出判断是质数。
**B.**如果输入整数,上面代码能正确判断N是否为质数
答案是错误❌️
输入负数,也误判是质数。
**C.**如果输入大于等于0的整数,上面代码能正确判断N是否质数
答案是错误❌️
输入1,是大于等于0的整数,不是质数,但是输出判断是质数。
**D.**如将 Flag = true 修改为 Flag = N>=2? true:false 则能判断所有整数包括负整数、0、正整数是否为质数
答案是正确、✅️

🌟 第13题 ------ 打印乘法图
(1)代码:
cpp
for (int i = 1; i < 6; i++){
for (int j = 1; j < i+1; j++)
cout << i*j << " ";
cout << endl;
}
(2) 正确答案:A
(3)🧠会打印什么?
cpp
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
(4)每一行结束后换行。
代码本来就正确,不用改。

🌟 第14题 ------ continue 的魔法
cpp
for (int i = 0; i < 10; i++){
if (i % 2 == 0)
continue;
if (i % 2)
cnt1 += 1;
else if (i % 3 == 0)
cnt2 += 1;
}
1、正确答案:A(5 2)
2、🧠 解释
(1)i 从 0 到 9
如果 i 是偶数:
直接 continue(跳过)
(2)所以只剩下:
1 3 5 7 9
都是奇数。
(3)接着:
if(i % 2)
奇数 %2 = 1 → true
(4)所以:
cnt1 += 1
共 5 次。
(5)那 cnt2 呢?
永远进不到。
(6)所以:
cpp
cnt1 = 5
cnt2 = 0
答案是 B、5 0

🌟 第15题 ------ 幸运数大挑战
1、规则:
如果 M 能被 N 整除 → 幸运数
如果 M 里含有 N 且能被 N 整除 → 超级幸运数
2、正确答案:D
3、🧠 举例
N=3
M=63
63 % 3 == 0 ✅63 里面有数字 3 ✅
所以:63 是 3 的超级幸运数
4、看选项 A:
A.如果N=3,M=36输出:36是3的超级幸运数!
36%3==0→Lucky =true
检查36中是否含3:
36%10=6≠3
3%10=3==3→满足超级幸运数条件
输出应该是"36是3的超级幸运数!"
正确吗?
代码中循环时修改了M, 所以第一次printf输出时M已被除以10变为3了,而不是36
实际打印的是**"3是3的超级幸运数!"**而不是36
因此,选项A的输出和代码实际不符,不正确
B/C选项同样不正确
5、如果M的值不想改变怎么办?
cpp
int oldM = M;
可以提前存下来,最后输出就没问题了。