


第8题 += 与 =+ 的区别(★★★★★)
答案:C
1、看代码:
int cnt = 0;
for (int i = 0; i < 5; i++)
cnt += 1;
cout << cnt;
2、计数器
第一次:
0+1=1
第二次:
1+1=2
第三次:
2+1=3
......
最后得到
5
这就是
cnt += 1;
意思就是
cnt = cnt + 1;
3、四个选项分析
(1)A选项
cnt = cnt + 1;
完全一样。
正确。
(2)B选项
cnt = 1 + cnt;
交换律。
还是一样。
正确。
(3)C选项
cnt =+ 1;
很多同学第一次都会被骗。
它不是
+=
而是
= +
也就是
cnt = (+1);
每次循环都把cnt重新赋值成1。
过程:
第一次 1
第二次 1
第三次 1
......
最后还是1
因此与原程序不同。
答案C。
(4)D选项
cnt = +1 + cnt;
其实就是
cnt = cnt + 1;
一样。
4、记忆点
一定分清:
+=
和
=+
完全不是一个东西!
第9题 三个运算符填空
答案:A
1、程序输出:
1 2 3 4
5 6 7 8 9 10 11
......
是在模拟一个数字不断变化。
2、观察输出:
1
2
3
......
11
然后
5
6
......
(1)说明:
当数字
>10
以后
需要重新变成
num/=2
否则
一直
num+=1
(2)因此三个运算符分别是
>
/=
+=
答案是A。
3、本题考查
找规律,填写程序,这需要有较好的理解推理能力。
第10题 continue 的作用(★★★★★)
答案:
A
1、看代码:
int i;
for(i=1;i<5;i++)
if(i%2==0)
{
continue;
cout<<i<<"#";
}
cout<<i<<"END#";
2、continue在前面
cpp
if(i%2==0)
{
continue;
cout<<i<<"#";
}
这题对于一级小朋友是个脑筋急转弯的题目。
3、continue后面的代码,被跳过。
例如
i=2
进入
continue;
那么
cout<<i<<"#";
不会执行。
4、循环结束
此时
i=5
输出
5END#
答案A。
5、记忆口诀
continue 后面的代码,被跳过了。
第11题 break 的执行过程(★★★★★)
答案:
B
1、看代码:
cpp
int N,i;
cin >> N;
for(i=2;i<N;i++)
if(N % i == 0)
{
cout<<"1#";
break;
}
else
cout<<"0#";
我们逐个模拟。
2、看选项
(1)A选项
输入2
循环:
i=2
2<2?
假的。
循环一次都没执行。
什么都不会输出。
A错误。
(2)B选项
输入15
i=2
15%2!=0
输出
0#
i=3
15%3==0
输出
1#
break退出。
得到
0#1#
正确。
(3)C选项
输入1
循环根本不会执行。
没有输出。
错误。
(4)D选项
输入3
2<3
成立。
3%2!=0
输出
0#
结束。
不是
1#
错误。
3、考试技巧
一定要一轮一轮模拟。
第12题 while循环
答案:
A(错误)
1、看代码:
cpp
int i,tot;
i=0;
tot=0;
while(0<=i&&i<10)
{
tot+=1;
i+=1;
}
2、循环次数:
0
1
2
3
...
9
一共
10次
所以
tot=10
3、看选项
(1)A为什么错?
如果改成
1<=i&&i<10
开始:
i=0
第一轮就失败。
循环一次都不会执行。
tot变成
0
不是一样。
所以错误。
(2)B选项
i=tot=0;
这是合法写法。
等价。
正确。
(3)C选项
交换:
tot+=1
i+=1
顺序。
互不影响。
正确。
(4)D选项
两个赋值交换。
也一样。
正确。
4、一级考试特点
循环条件
尤其注意
<=
<
>=
>
一个符号都不能看错。
第13题 取百位、十位、个位
答案:
B
1、题目:
求
c
也就是
十位数字。
2、例如
5836
四位:
千位 5
百位 8
十位 3
个位 6
3、求十位的方法:
先
/10
变成
583
再
%10
得到
3
所以
(n/10)%10
答案B。
4、常见公式
个位
n%10
十位
(n/10)%10
百位
(n/100)%10
千位
n/1000
这几个公式一级考试经常出现。
第14题 秒针位置
答案:
B
1、钟表只有
0~59
秒。
所以:
经过很多秒以后
必须循环。
怎么办?
就是
%
2、例如:
(1)现在
58
再过
5秒
58+5=63
但是钟没有63。
(2)需要
cpp
63 % 60 = 3
所以:
第一空:
(start+n)%60
(3)什么时候回到12点?
就是
0秒
所以:
pos==0
答案B。
3、考试口诀
涉及
时钟
星期
圆圈
循环编号
第一想到
%
第15题 判断质数
答案:
B
1、看代码:
for(i=2;____;i++)
横线填什么。
2、判断质数:
最经典的方法:
2
3
4
...
√N
因此
i*i<=N
效率最高。
3、其它几个:
i<N
可以。
只是慢。
i<=N
最后会检查到自己。
这样无论是不是质数,都会输出" no",所以错误了。
i<=N/2
也可以。
因为除了自己以外
最大的因子不会超过一半。
答案B。
一级考试知识总结(8~15题)
| 题号 | 考点 | 必须掌握 |
|---|---|---|
| 第8题 | += 与 =+ |
+= 是累加,=+ 是重新赋值 |
| 第9题 | 运算符 | >、/=、+= 的含义 |
| 第10题 | continue |
跳过本次循环剩余代码 |
| 第11题 | break |
立即结束整个循环 |
| 第12题 | while 循环 |
循环条件决定循环次数 |
| 第13题 | 拆分数字 | n%10、(n/10)%10、(n/100)%10 |
| 第14题 | % 取模 |
解决循环、时钟、星期等问题 |
| 第15题 | 质数判断 | 推荐使用 i*i<=N,避免检查到自身 |









