


🎯 第9题 ------ 两个判断
1、代码:
cpp
int a,b;
cin >> a >> b; // a = 1 b = 0
if(a&&b)
cout << ("1"); //&& 要左右两边为真,有0就是假
else if(!(a||b))
cout << ("2"); // (a||b)为真,!(a||b)为假
else if(a || b)
cout << ("3"); // a||b 为真,输出 3
else
cout << ("4");
2、✅ 正确答案:C、 3
3、逻辑运算符:
| 运算符 | 名称 | 功能描述 | 返回值规则 |
|---|---|---|---|
&& |
逻辑与 | 两侧表达式同时为真 时返回true,否则返回false |
左侧为false时直接返回false(短路求值);否则计算右侧表达式 |
| || | 逻辑或 | 两侧表达式一侧为真 时返回true,否则返回false |
左侧为true时直接返回true(短路求值);否则计算右侧表达式 |
! |
逻辑非 | 对表达式结果取反 (true变false,false变true) |
操作数为true时返回false,为false时返回true |

🎯 第10题 ------ 数数循环次数
1、代码
cpp
int loopCount = 0;
for (int i = 1; i < 5; i += 2)
loopCount += 1;
cout << (loopCount);
2、🎬 一步步跑程序
(1)循环规则:
cpp
i = 1
i < 5
每次 i += 2
(2)运行过程:
i = 1 ✅
loopCount = 1
i = 3 ✅
loopCount = 2
i = 5 ❌(不小于5)
停止!
(3)最终:
cpp
loopCount = 2
(4)✅ 正确答案:B、 2
(5)🎯 关键注意点
i += 2 是跳着走!不要习惯看成 i++


🎯 第11题 ------ 打印数字三角形
1、题目给出的输出是:
cpp
1
2 3
3 4 5
4 5 6 7
...
2、代码结构:
cpp
for (int i=1; i< lineNum+1; i++){
for(int ________)
cout << j << " ";
}
3、🎬 观察规律
第一行:从 1 开始到1结束,打印1个数
第二行:从 2 开始到3结束,打印2个数
第三行:从 3 开始到5结束,打印3个数
4、每一行都是:
👉 从 i 开始
👉 打印 i 个数
5、所以内层循环应该是:
cpp
j = i; j < i*2; j++
6、✅ 正确答案:C、 j = i; j < i*2; j++

🎯 第12题 ------ 数字倒过来
1、题目要求:
输入 123
输出 321
输入 120输出 21
2、🎬 讲解
(1)我们用一个变量 rst 存结果。
每次:
cpp
rst = rst * 10 + N % 10
N = N / 10
(2)效果举例:
N = 123
第一次:
rst = 3
N = 12
第二次:rst = 32
N = 1
第三次:rst = 321
N = 0
结束!
✅ 正确答案:A、rst = rst * 10 + N % 10 N = N / 10
3、拆数题模版:
cpp
while (N > 0){
n%10; //求余数,取个位数,在前
n/10; //整数,去除个位数,在后
}

🎯 第13题 ------ 平均分程序
1、代码里:
cpp
while (1)
很多小朋友会害怕 😆
其实它表示:
"无限循环,直到 break"
2、判断选项:
A 说 while(1) 错误 ❌
后面有退出循环的条件,输入成绩的老师,随时输入-1都可以停止。
**B.**如果输入负数,将结束输入,并正确输出 ✅
cpp
if (score < 0)
break;
**C.**如果输入的学生成绩含有小数,程序将无法正常执行❌
输入小数不会出问题 ✅
因为:
cpp
int score;
虽然定义的是整数!
但是输入小数不会程序无法执行。
但是计算结果有误差,这个出题写法,有欠缺。
**D.**变量 int score 初始值不确定,但不影响程序执行✅
cpp
int score;
cin >> score;
通过键盘输入赋值,是正确的方法。
3、✅ 正确答案:A / C


🎯 第14题 ------ 判断质数
1、代码
cpp
for(i = 2; i < num; i++)
if ( ______ ){
cout << "NO";
break;
}
2、🎬 讲解
(1)什么是质数?
👉 只能被1和自己整除
(2)判断方法:
从 2 开始试除:
如果:
cpp
num % i == 0
(3)说明找到了因数
不是质数!
(4)所以横线填:
cpp
num % i == 0
(5)✅ 正确答案:B

🎯 第15题 ------ 与7有关的数
1、规则:
-
能被7整除
-
或者含有数字7
2、代码中:
cpp
while (!Flag && M){
if (M % 10 == 7){
Flag = true;
break;
}
M /= 10;
}
3、看下题目选项
**A.**删除break语句不会导致死循环,但有时会导致结果错误
cpp
if (M % 10 == 7){
Flag = true;
break; //快速跳出
}
删除break语句不会导致死循环,✅️
但有时会导致结果错误 ❌️
**B.**删除 M /= 10 将可能导致死循环
cpp
M /= 10
循环永远不会变
就会:
💥 死循环!✅️
**C.**删除 M = N 并将其后代码中的M变量改为N,并调整输出同样能完成相关功能
cpp
if (M % 7 == 0)
Flag = true; // 判断整除在前
while (!Flag && M){
if (M % 10 == 7){
Flag = true; // 判断有数字7在后
break;
}
M /= 10;
}
删除 M = N 并将其后代码中的M变量改为N,不影响结果✅
**D.**删除 break 语句不会导致死循环,但有时会影响效率
break 语句,在这个程序中是快速跳出,删除影响效率 ✅