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

相关推荐
王维同学5 小时前
IFEO Debugger、VerifierDlls 与 SilentProcessExit 配置
c++·windows·安全·注册表
小保CPP5 小时前
OpenCV C++计算多边形的最大内切圆
c++·人工智能·opencv·计算机视觉
lueluelue476 小时前
八股临时总结
c++
xvhao20138 小时前
T750414 【游戏】计算24点 题解
数据结构·c++·算法·游戏
草莓熊Lotso8 小时前
【LangChain】核心组件详解:文档加载器(Document Loaders)
开发语言·c++·python·langchain·软件工程
ysa0510309 小时前
优先队列贪心dp
c++·笔记·算法·板子
草莓熊Lotso9 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++
Andy10 小时前
Cpp进阶语法详解
c++
此生决int10 小时前
深入理解C++系列(04)——类和对象(下)
开发语言·c++
2601_9545267520 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法