第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在前面
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、看代码:
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、看代码:
int i,tot; i=0; tot=0; while(0<=i&&i<10) { tot+=1; i+=1; }2、循环次数:
0 1 2 3 ... 9一共
10次所以
tot=103、看选项
(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 个位 63、求十位的方法:
先
/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)需要
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,避免检查到自身 |