GESP2026年6月认证C++一级( 第一部分选择题(8-15))精讲



第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,避免检查到自身

相关推荐
码匠许师傅41 分钟前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
小小龙学IT2 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
知无不研4 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
C++ 老炮儿的技术栈5 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qz_Serene7 小时前
C++:类和对象(上)
开发语言·c++
郝学胜-神的一滴8 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
hetao17338379 小时前
2026-08-09~08-14 hetao1733837 的刷题记录
c++·算法
间歇性努力持续性发呆的野生快乐选手11 小时前
栈的性质(进栈,出栈,访问)
数据结构·c++
旖旎夜光12 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
hansang_IR12 小时前
【题解】P14468 [COCI 2025/2026 #1] 和谐 / Harmonija(线段树 DDP 版本)
c++·算法·动态dp