GESP第13次认证真题解析|C++二级真题回顾

四季读书网 3 0
GESP第13次认证真题解析|C++二级真题回顾

点击上方蓝字·关注我们

GESP第13次认证真题解析|C++二级真题回顾 第1张
GESP第13次认证真题解析|C++二级真题回顾 第2张
GESP第13次认证真题解析|C++二级真题回顾 第3张

CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。

GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。

本次为大家带来的是20263月C++二级认证真题解析。

C++ 二级

20263

一、单选题(共15题,每题2分,共30分)

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

B

D

D

C

B

A

A

C

C

A

B

C

B

A

A

12026年春节联欢晚会上一个武术表演节目《武BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备(   )。 

A. 检测重心的重力传感器

B. 预装的AI算法程序

C. 接收动作指令的遥控器

D. 拍摄其他机器人的摄像头

【答案B

【考纲知识点】计算机输入设备的概念

【解析】输入设备是用于向计算机系统输入数据和指令的硬件设备。A选项重力传感器用于检测重心,是输入设备;C选项遥控器用于接收外部指令,是输入设备;D选项摄像头用于获取图像信息,是输入设备。B选项预装的AI算法程序是软件,不是硬件设备,因此不能作为输入设备。

【第2题】下面代码用来找出输入的N个正整数中最大的一个。如果将代码段用流程图来表示,则L1标记的代码行应该使用的图形是(  )。

GESP第13次认证真题解析|C++二级真题回顾 第4张

A. 圆形框

B. 椭圆形框

C. 平行四边形框

D. 菱形框

【答案】D

【考纲知识点】流程图基本符号

【解析】流程图中,L1标记的代码行是条件判断语句if(val > max)。条件判断在流程图中使用菱形框表示。圆形框和椭圆形框通常用于表示开始和结束,平行四边形框用于表示输入输出操作。

3下面C++ 代码可以执行,有关说法正确的是(   )

GESP第13次认证真题解析|C++二级真题回顾 第5张

A. 为了方便初学者,cout << (PI)cout << (pi)效果相同,即变量的大小写不敏感

B. cout << (PI)修改为cout << (Pi)能正常执行

C. 不能用PI做变量名,因为要保存圆周率这个常量

D. 将程序中全部PI都改写为Pai,将能正常执行,不会报错

【答案D

【考纲知识点】C++变量命名规则与大小写敏感性

【解析】C++是区分大小写的编程语言。

A错误,PIpi是不同的标识符;

B错误,PiPI不同,会导致编译错误(未声明的标识符);

C错误,PI可以作为变量名,只是习惯上常量用大写;

D正确,只要将所有的PI统一改为Pai,程序就能正常执行。

4下面选择项中,与C++表达式!(x > 5 && y <= 10)等价的是(   )。 

A. x <= 5 && y > 10 

B. x > 5 || y <= 10 

C. x <= 5 || y > 10 

D. ! x > 5 && ! y <= 10

【答案】C

【考纲知识点】逻辑运算

【解析】根据德摩根定律:①!(A && B) = !A || !B ②!(A || B) = !A && !B

因此!(x > 5 && y <= 10)等价于!(x > 5) || !(y <= 10),即x <= 5 || y > 10

5某同学执行C++代码cout << ((0.1 + 0.2) == 0.3)时输出0,下面最可能的原因是(   )。 

A. C+++运算符在处理小数时存在bug

B. 0.10.20.3在计算机中无法用二进制浮点数精确表示,导致0.1 + 0.2的结果与0.3存在微小误差

C. ==运算符不能用于比较浮点数,只能用于整数

D. 因为0.1 + 0.2的数学结果不等于0.3

【答案】B

【考纲知识点】浮点数精度问题

【解析】计算机使用二进制表示浮点数时,0.10.20.3等十进制小数在二进制被表示为无限循环小数,无法精确表示。因此0.1+0.2的结果与0.3存在微小的精度误差,导致相等比较返回false(输出0)。

6下面的C++ 代码段执行后其输出是(   )

GESP第13次认证真题解析|C++二级真题回顾 第6张

A. 0#1#3#6#10#10 

B. 1#2#3#4#5#6#7#8#9#10#10 

C. 10#10 

D. 10

【答案A

【考纲知识点】嵌套循环的执行过程

【解析】外层循环i04,内层循环j0i-1。 每次循环tnt在上次的基础上递增

- i=0时,内层循环0次,tnt=0,输出0#

- i=1时,内层循环1次,tnt=0+1=1,输出1#

- i=2时,内层循环2次,tnt=1+2=3,输出3#

- i=3时,内层循环3次,tnt=3+3=6,输出6#

- i=4时,内层循环4次,tnt=6+4=10,输出10#

最后输出tnt=10。所以结果是0#1#3#6#10#10

7下面的C++ 代码执行之后的输出是(   )

GESP第13次认证真题解析|C++二级真题回顾 第7张

A. 0# 

B. -2#-1#1

C. -1#0

D. -2#0#1#

【答案A

【考纲知识点】取模运算与逻辑非运算的优先级

【解析】注意运算符优先级:%的优先级高于not!)。所以not i % 3等价于!(i % 3),即判断i能否被3整除。

- i=-2-2%3=-2,非0!(-2)=false,不输出

- i=-1-1%3=-1,非0!(-1)=false,不输出

- i=00%3=0!(0)=true,输出0#

- i=11%3=1,非0!(1)=false,不输出

所以只有0#

8下面的C++ 代码执行后其输出是(   )

GESP第13次认证真题解析|C++二级真题回顾 第8张

A. 0#0#1#0#1#2#0#1#2#3#12 

B. 0#0#1#0#1#2#0#1#2#3

C. 0# 

D. 1#

【答案C

【考纲知识点】break语句的作用

【解析】外层循环i1开始,进入循环后,内层循环j00(因为i=1),输出0#,然后执行break语句,跳出外层循环。此时i=1,不满足i>=5的条件,所以if语句不执行。最终输出为0#

9下面C++ 代码执行后其输出是(   )。 

GESP第13次认证真题解析|C++二级真题回顾 第9张

A. 2 

B. 4 

C. 6 

D. 8

【答案C

【考纲知识点】continuebreak在嵌套循环中的使用

【解析】外层循环i13,内层循环j14

- i=1时,j=1,2,4count++j=3continue跳过),count=3

- i=2时,遇到break直接跳出内层循环,count不变

- i=3时,j=1,2,4count++count=6最终count=6

10下面4个选项中,与下面C++ 代码段具有相同效果的是(   )

GESP第13次认证真题解析|C++二级真题回顾 第10张

A. for (i = 0; i < 5; i++) cout << i; 

B. for (i = 1; i < 5; i++) cout << i; 

C. for (i = 0; i < 6; i++) cout << i; 

D. for (i = 1; i < 6; i++) cout << i;

【答案A

【考纲知识点】while循环与for循环的等价转换

【解析】原代码输出0,1,2,3,4

A选项for循环从04,输出0,1,2,3,4,与原代码相同;

B选项输出1,2,3,4

C选项输出0,1,2,3,4,5

D选项输出1,2,3,4,5

11下面C++ 代码执行后输出是(     )。 

GESP第13次认证真题解析|C++二级真题回顾 第11张

A. 0 

B. 5 

C. 6 

D. 7

【答案B

【考纲知识点】continuebreak在循环中的综合使用

【解析】循环执行过程:

- n=10,减199%3==0continue

- n=9,减188%3!=08!=5

- n=8,减177%3!=07!=5

- n=7,减166%3==0continue

- n=6155%3!=05==5break

最终输出n=5

12下面C++ 代码段执行后,其输出是(   )。 

GESP第13次认证真题解析|C++二级真题回顾 第12张

A. 5 

B. 15 

C. 20 

D. 30

【答案】C

【考纲知识点】多层循环结构

【解析】i=-i出现了2次,第1次使得内层循环从负数开始遍历,第2次是把i还原,不破坏外层的循环次数。

每次外层循环:

- i=0时,i=-i=0,内层循环j00,不执行,i=-i=0

- i=1时,i=-i=-1,内层循环j-11,执行2次(-1,0),cnt=2i=-i=1

- i=2,然后i=-i=-2,内层循环j-22,执行4次 ,cnt=4, i=-i=2

实际上每次循环内层执行2*i次,i取值0,1,2,3,4(虽然会被修改,但后面进行了还原),总次数为0+2+4+6+8=20

13某学校图书馆的借阅卡号由6位整数组成。前5位是顺序编号,第6位是校验码,用于防止输错。校验码规则如下:将前5位数字相加,然后除以10的余数,就是第6位数字。如卡号123455的前5位之和为15,除以10的余数是5,故第6位为5。下面的C++代码段用于判断卡号是否正确,横线处应填入的代码是(   )。 

GESP第13次认证真题解析|C++二级真题回顾 第13张

A. tnt += order_num / 10 tnt / 10 == check_num 

B. tnt += order_num % 10 tnt % 10 == check_num 

C. tnt = order_num / 10 + tnt tnt % 10 == check_num 

D. tnt = order_num % 10 tnt / 10 == check_num

【答案B

【考纲知识点】整数拆分

【解析】需要提取前5位数字的每一位并求和。使用order_num % 10可以取出最后一位数字,加到tnt中,然后order_num /= 10去掉最后一位。校验时,前5位之和tnt除以10的余数应该等于check_num,即tnt % 10 == check_num

14下面的C++ 代码段正常执行后其输出的数字图形是(    )。 

GESP第13次认证真题解析|C++二级真题回顾 第14张

A.  

GESP第13次认证真题解析|C++二级真题回顾 第15张

B.  

GESP第13次认证真题解析|C++二级真题回顾 第16张

C.  

GESP第13次认证真题解析|C++二级真题回顾 第17张D.

GESP第13次认证真题解析|C++二级真题回顾 第18张

【答案】A

【考纲知识点】嵌套循环输出图形

【解析】外层循环i14,内层循环j1i,输出j的值。

- i=1时,输出1

- i=2时,输出12

- i=3时,输出123

- i=4时,输出1234所以选A

15某学校举办"校园演讲比赛",每位选手由8位评委打分(分数为0~10的整数),且每位评委必须打分。计分规则:若至少有5位评委给出大于等于6分,则成绩有效,最终得分为所有8位评委的总分;如给出低于6分的评委数量超过5位,则记为0分。以下核心程序段依次输入8个分数,并计算最终得分。横线处应填入()。 

GESP第13次认证真题解析|C++二级真题回顾 第19张

A. total_score += score high_count += 1 

B. total_score += score high_count += score 

C. high_count += 1 total_score += score 

D. total_score *= score high_count *= 1

【答案A

【考纲知识点】累加求和与条件计数

【解析】第一处横线需要累加所有分数,所以是total_score += score;第二处横线在score>=6时执行,需要统计高分评委数量,所以是high_count += 1

二、判断题(共10题,每题2分,共20分)

题号

1

2

3

4

5

6

7

8

9

10

答案

×

×

×

×

1小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。(  )

【答案】√

【考纲知识点】计算机系统的组成

【解析】电话手表能够实现打电话、收发信息等功能,必须有操作系统来管理硬件资源和提供软件运行环境。现代智能手表通常运行在如Wear OSwatchOS等操作系统上。

2C++语句cout << ('4' % '2' == '2' * '2' % 2);执行后的输出是1(   )

【答案】×

【考纲知识点】字符的ASCII码运算

【解析】字符在运算时自动转换为其ASCII码值。'4'=52, '2'=50'4' % '2' = 52 % 50 = 2'2' * '2' % 2 = 50 * 50 % 2 = 2500 % 2 = 02 == 0false,输出0

3下面的C++代码段执行时将报错,因为10是整数类型,a是布尔类型。由于类型不同,不能进行加法运算。(  )  

GESP第13次认证真题解析|C++二级真题回顾 第20张

【答案】×

【考纲知识点】C++类型自动转换

【解析】C++中,布尔类型可以自动转换为整数类型,true转换为1false转换为0。因此10 + a等于11,不会报错,输出11

4下面C++代码段执行后将输出0-3-6-9-(   )  

GESP第13次认证真题解析|C++二级真题回顾 第21张

【答案】√

【考纲知识点】continue语句与取模运算

【解析】i%3等于0时(即i能被3整除),不执行continue,输出i-i09,能被3整除的有0,3,6,9,所以输出0-3-6-9-,判断正确。

5执行下面的C++ 代码段,如果N是基本数据类型,则语句cout << (N);将被执行次或无数次(即死循环)。(  )  

GESP第13次认证真题解析|C++二级真题回顾 第22张

【答案】√

【考纲知识点】while循环的条件判断

【解析】如果N输入为0while条件为假,循环体执行0次;如果N输入非0while条件永远为真(N的值不会改变),形成死循环,执行无数次。

6下面的C++代码段可正常执行,删除continue不影响执行效果。(  )  

GESP第13次认证真题解析|C++二级真题回顾 第23张

【答案】√

【考纲知识点】continue语句的作用

【解析】continue语句用于跳过循环体剩余部分,进入下一次循环。在此代码中,continue之后没有其他语句,所以删除continue不影响执行效果。

7下面的C++代码段用于计算1N之间且包含N的所有数字中含有的3的个数,如140含有143,120则只含有23。如果将while (i != 0)改为while (abs(i)),则执行结果相同。(   ) 

GESP第13次认证真题解析|C++二级真题回顾 第24张

【答案】√

【考纲知识点】循环条件的等价形式

【解析】在处理正整数时,i != 0abs(i) != 0是等价的,因为正整数的绝对值等于其本身。当i=0时,两个条件都为假,循环结束。

8下面的C++ 代码段执行将不会有输出,因为内层循环总是开始,i * j % 10 == 0将会被满足,执行break,故而小于10,不会满足if判断条件。(  )  

GESP第13次认证真题解析|C++二级真题回顾 第25张

【答案×

【考纲知识点】break语句的作用范围

【解析】break只能跳出当前所在的内层循环,不能跳出外层循环。当内层循环执行break后,外层循环继续执行i++。最终i会达到10,满足if条件,会输出结果为0

9下列C++ 代码执行后将输出1#4#9#16#16。(  )  

GESP第13次认证真题解析|C++二级真题回顾 第26张

【答案】×

【考纲知识点】嵌套循环中break的作用

【解析】外层循环i依次为1~4,内层循环j依次为1~i

-i=1时,j=1,不会break,内层循环结束时j=i+1=2,此时2>=1+1成立,输出i*j#2#

-i=2时,j=1,2,不会break,内层循环结束时j=i+1=3,此时3>=2+1成立,输出i*j#6#

-i=3时,j=1,2,3,不会break,内层循环结束时j=i+1=4,此时4>=3+1成立,输出i*j#12#

-i=4时,j=1,2,3,4,不会break,内层循环结束时j=i+1=5,此时5>=4+1成立,输出i*j#20#

当外层循环结束时,i=5,第9if成立,最后输出i*j=5*5=25

因此正确输出为2#6#12#20#25,说法错误

10下面C++ 代码执行后输出如左图所示,将" %d"修改为"%3d"即可实现右图输出。(  )  

GESP第13次认证真题解析|C++二级真题回顾 第27张

【答案】√

【考纲知识点】格式化输出控制

【解析】%3d表示以3位宽度输出整数,不足3位时左补空格。这样可以使每个数字占3个字符宽度,实现右对齐的整齐输出效果。

三、编程题(每题25分,共50分)

GESP第13次认证真题解析|C++二级真题回顾 第28张
GESP第13次认证真题解析|C++二级真题回顾 第29张

【考纲知识点】循环结构、整数分解、条件判断

【解题思路】

1. 读取LR的值

2. LR遍历每个整数i

3.对每个i,统计其数位中数字2出现的次数

4.统计方法:使用while循环,每次取i的个位数(i%10),判断是否等于2,然后去掉个位数(i/=10

5.如果2的出现次数恰好为3,则计数器ans1

6. 输出最终结果ans

【参考程序】

GESP第13次认证真题解析|C++二级真题回顾 第30张

【程序解析】程序通过外层for循环遍历区间[L,R]内的所有整数。对于每个整数i,使用内层while循环逐位检查,这里需要注意把i的值备份出来进行操作:通过t%10获取个位数,判断是否等于2;通过t/=10去掉已处理的个位数。当t变为0时,所有位数都已检查完毕。如果数字2出现的次数c恰好等于3,则将答案计数器ans1。最后输出ans即为美丽数的数量。

GESP第13次认证真题解析|C++二级真题回顾 第31张
GESP第13次认证真题解析|C++二级真题回顾 第32张

【考纲知识点】嵌套循环、条件判断、图形绘制

【解题思路】

1.使用双重循环,外层控制行i,内层控制列j

2.判断每个位置(i,j)应该输出什么字符:   

如果j是第1列或第n列:     

-如果i是第1行或第n行,输出"+"(顶点)     

否则输出"|"(左右边框)   

否则(中间列):     

-如果i是第1行或第n行,输出"-"(上下边框)     

否则输出"*"(内部)

3. 每行结束后输出换行

【参考程序】

GESP第13次认证真题解析|C++二级真题回顾 第33张

【程序解析】程序使用双重循环遍历n×n的每个位置。通过条件判断确定每个位置的字符:首先判断是否在左右边框(j==0j==n-1),如果是再判断是否在上下边框来确定是顶点"+"还是竖边框"|";如果不在左右边框,则判断是否在上下边框来确定是横边框"-"还是内部"*"。最后一行不输出换行符。

策划:GESP技术委员会副主席 刘晓庆

技术支持:韩丹

【关于GESP第14次认证】

GESP第13次认证真题解析|C++二级真题回顾 第34张

认证语言:

C++/Python/图形化编程

GESP第13次认证真题解析|C++二级真题回顾 第35张

报名及交费时间:

2026年4月15日17:00-6月16日24:00

GESP第13次认证真题解析|C++二级真题回顾 第36张

准考证下载及打印时间:

2026年6月23日9:30-6月27日9:30

GESP第13次认证真题解析|C++二级真题回顾 第37张

认证时间:

1-4级 2026年6月27日  上午09:30-11:30

5-8级 2026年6月27日  下午13:30-16:30

GESP第13次认证真题解析|C++二级真题回顾 第38张

认证方式:

全国各GESP考点内上机考试

GESP第13次认证真题解析|C++二级真题回顾 第39张

报名方式:

登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

GESP第13次认证真题解析|C++二级真题回顾 第40张

认证安排及收费标准:

认证时间

认证级别

认证语言

认证费用

上午9:30-11:30

一级

C++/Python/图形化

300元/人

上午9:30-11:30

二级

C++/Python/图形化

320元/人

上午9:30-11:30

三级

C++/Python/图形化

340元/人

上午9:30-11:30

四级

C++/Python/图形化

360元/人

下午13:30-16:30

五级

C++/Python

380元/人

下午13:30-16:30

六级

C++/Python

400元/人

下午13:30-16:30

七级

C++/Python

420元/人

下午13:30-16:30

八级

C++/Python

440元/人

GESP第13次认证真题解析|C++二级真题回顾 第41张

报名流程

📍第一种方式:GESP网站报名流程

步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。

步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。

步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。

步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。

注:如需修改考生信息,请点击【修改报名】。

步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。

注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。

步骤6:完成支付,认证报名成功。

步骤7:等待审核,已交费考生信息会依次审核。

步骤8:在指定时间内下载、打印准考证。

步骤9:参加认证。

📍第二种方式:GESP公众号报名流程

点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。

GESP第13次认证真题解析|C++二级真题回顾 第42张
GESP第13次认证真题解析|C++二级真题回顾 第43张

【联系我们】

1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。

2. GESP邮箱:gesp@ccf.org.cn

注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。

3. GESP电话:0512-67656856

咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30

扫描下方二维码关注GESP公众号,了解更多资讯

GESP第13次认证真题解析|C++二级真题回顾 第44张
GESP第13次认证真题解析|C++二级真题回顾 第45张

抱歉,评论功能暂时关闭!