
🧩 第1题:变量名谁不合格?
1、题目问:
下面哪个 不能当变量名?
A. FiveStar
B. fiveStar
C. 5Star
D. Star5
2、🎈变量王国的法律
(1)在"变量王国"里,有一条法律:
👮 变量名字不能以数字开头!
(2)为什么呢?
因为编译器看到 5Star, 首先看到的5,这是个字面常量,不是变量:
它会直接搞蒙了。
3、🔎 判断一下
| 选项 | 合法吗? | 原因 |
|---|---|---|
| FiveStar | ✅ | 字母开头 |
| fiveStar | ✅ | 字母开头 |
| 5Star | ❌ | 数字开头 |
| Star5 | ✅ | 字母开头 |
4、🎯 正确答案:C

🧩 第2题:for循环谁输出一样?
1、题目给:
cpp
for(int i=10;i<20;i+=2)
cout<<i;
2、🧠 我们模拟一下
从 10 开始
每次 +2
直到 i<20
输出:
cpp
10 12 14 16 18
3、我们看选项:
A. i<19
👉 19 之前也会输出 10 12 14 16 18
✔ 一样!
B. 从 11 开始
👉 输出 11 13 15 17
❌ 不一样
C. i<21
👉 输出 10 12 14 16 18 20
❌ 多了 20
D. 都不对
❌
4、🎯 正确答案:A

🧩 第3题:找因子循环从哪开始?
1、题目想输出 N 的因子:
例如 N=18
要输出:
cpp
1 2 3 6 9 18
2、🧠 因子从几开始?
因子一定从 1 开始
不能从 0 开始 ❗
因为:
cpp
N % 0 ❌ 会炸
3、否要包括 N?
必须包括 N 本身
所以循环应该:
cpp
int i = 1; i < N+1; i++
也就是:
cpp
i <= N
4、🎯 正确答案:D


🧩 第4题:对称数代码问题
1、题目是判断:
1221 是对称数
123 不是
2、🚨 问题关键
循环结束时:
cpp
N 会变成 0
因为在拆数字的时候:
cpp
N = N / 10;
最后 N 被除没了。
3、问题是?
如果你最后拿 N 去比较
那 N 已经是 0
就无法判断原来的数了!
4、🎯 正确答案:D
循环结束后 N 已经变成0,达不到预期效果,这是C++初学者经常遇到的坑。

🧩 第5题:判断质数的陷阱
1、质数:只能被 1 和自己整除
2、错误写法:
cpp
for(int i=2;i< N/2;i++)
{
if(N%i==0)
{
cout<< N <<"不是质数";
break;
}
}
问题来了!
如果N=4, N/2=2,
循环结束后没输出"不是质数"
3、正确写法应该:
修改循环条件
cpp
将第2行和第7行的 N / 2 改为 N / 2 + 1 。
cpp
for(int i=2;i<N/2+1;i++)
{
if(N%i==0)
{
cout<< N <<"不是质数";
break;
}
}
if(i>=N/2+1)
cout<< N <<"是质数";
4、🎯 正确答案:D

🧩 第6题:循环输出的魔法
1、输出选项:
A. 2#3#0
B. 1#2#0
C. 1#0#
D. 2#3#
2、这题目考:
-
循环次数
-
输出控制
3、根据代码:
cpp
if(i * j % 2 == 0)
cout << i << '#';
continue;
4、当i ==2 ,3时,符合条件
循环中输出
cpp
2#3#
5、循环结束
cpp
cout << " 0 ";
6、🎯 正确答案:A **.**2#3#0
(考察循环执行顺序)


🧩 第7题:break到底跳出那一层?
1、看break的位置
cpp
cnt =0;
for(i =1;i<10;i++)
for(j =1;j<i;j +=2)
if(i*j % 2 ==0){
cnt++;
break;
}
if(i>=10)
cout <<cnt <<"#";
cout <<cnt ;
break是跳出内循环,继续外循环。
2、内循环的数字都是奇数
cpp
for(j =1;j<i;j +=2)
3、计数器的次数
cpp
for(i =1;i<10;i++)
for(j =1;j<i;j +=2)
if(i*j % 2 ==0){
cnt++;
break;
}
只有外循环,i = 2, 4, 6, 8 计数器计数
4、外循环结束时,i = 10
cpp
if(i>=10)
cout <<cnt <<"#";
cout <<cnt ;
5、🎯 正确答案:D
输出:4#4

🧩 第8题:循环 + 多分支结构
1、三重判断:
cpp
N=100;
while(N >0)
if(N % 2) //第一判断 N是奇数
break;
else if(N % 3 ==0) //第二判断 N是3的倍数
N -=5;
else N -=20; //第三判断 其他
2、N 的循环历程
100 --> 80--> 60--> 55--> break
3、🎯 正确答案:C
输出:55