GESP第九次认证真题解析|C++一级真题回顾

四季读书网 1 0
GESP第九次认证真题解析|C++一级真题回顾

点击上方蓝字·关注我们

GESP第九次认证真题解析|C++一级真题回顾-第1张图片-四季读书网
GESP第九次认证真题解析|C++一级真题回顾-第2张图片-四季读书网
GESP第九次认证真题解析|C++一级真题回顾-第3张图片-四季读书网

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

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

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

C++一级

一、单选题

1题 2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )

A.《哪吒2》是一款新型操作系统

B. DeepSeek是深海钻探软件

C.《哪吒2》可以生成新的软件

D. DeepSeek可以根据《哪吒2》的场景生成剧情脚本

答案D

解析:哪吒2是电影作品,deepseek是人工智能语言模型,A、B、C三个选项描述均错误,只有D选项描述正确,deepseek具有强大的自然语言处理能力,可以根据场景生成剧情脚本。

2题 在某集成开发环境中编辑一个源代码文件时不可以执行下面( )操作。

A.修改变量定义

B.保存代码修改

C.撤销代码修改

D.插入执行截图

案:D

解析:在编辑代码过程中,可以修改变量定义,可以保存程序,书写错误可以撤销修改,这些操作都是常见的代码编辑情况,只有D选项错误,不可以在代码中插入截图。

3题 在C++中,下列可以做变量的是( )

A. Var-1

B. $1

C. %%1

D. _Var_1

答案D

解析:在C++中变量定义规则是:仅由数字、字母、下划线组成,数字不可以开头,不能和关键字冲突。选项ABC中均有不符合要求的字符,只有D选项正确。

4题 以下哪个是C++语言的关键字?( )

A. abs

B. cin

C. do

D. endl

答案C

解析:C++语言的关键字是被语言本身定义的具有特定含义的标识符。“do”C++中的关键字,用于构成“do - while”循环语句。而A选项“abs”C++标准库中的函数名,用于计算绝对值;B选项“cin”D选项“endl”都不是关键字,“cin”C++标准输入流对象,“endl”C++标准库中的操纵符,用于插入换行符并刷新输出缓冲区。

5题 下面的框架在L1L2标记的两行处分别填写选项中的代码,哪组不能通过编译( )。

GESP第九次认证真题解析|C++一级真题回顾-第4张图片-四季读书网

A.

GESP第九次认证真题解析|C++一级真题回顾-第5张图片-四季读书网

B.

GESP第九次认证真题解析|C++一级真题回顾-第6张图片-四季读书网

C.

GESP第九次认证真题解析|C++一级真题回顾-第7张图片-四季读书网

D.

GESP第九次认证真题解析|C++一级真题回顾-第8张图片-四季读书网

答案C

解析:本题考查基础语法,分支语句if是不可以直接使用break的,需要配合循环或switch使用,故只有C选项会编译失败。

6题 下面C++语句( )执行后的输出是 __ 0322$$ 

A. printf("__ %2d%02d$$", 3, 22)

B. printf("__ %02d%2d$$", 3, 22)

C. printf("__ %02d%02d$$$$", 3, 22)

D. printf(" %02d%02d$$$$", 3, 22)

案:B

解析:%02d补前导零,数字3前补0,凑两位,%2d右对齐,22本身就是两位,组合输出0322$是普通字符输出,故选择B选项。

7题 有关下列C++代码的说法,错误的是( )

GESP第九次认证真题解析|C++一级真题回顾-第9张图片-四季读书网

A.配对双引号内的汉字改为英文Hello ,C++代码能正确执行

B.配对双引号内的汉字改为Hello代码!,C++代码能正确执行

C.代码中的每个双引号,都可以改为两个单引号

D.代码中的每个双引号,都可以改为三个双引号

答案C

解析:首先D选项改为三引号,是符合语法的,不会报错,其次单引号用于字符,双引号用于字符串,不能相互替代,C选项错误。

8题 C++表达式16 / 4 % 2 的值是( )

A. 8

B. 4

C. 2

D. 0

案:D

解析:/号和%号为同级运算,没有先后顺序,按照从左到右的顺序计算,16/4结果为44%2结果为0

9题 NC++的正整数,值为12,则cout << (N % 3 + N / 5) 的输出是( )

A. 6.4

B. 2.4

C. 6

D. 2

答案D

解析:变量N = 12 依照运算优先级,先计算12%3=012/5=2(整除),输出的是0+2=2

10题 下面C++代码执行后的输出是( )

GESP第九次认证真题解析|C++一级真题回顾-第10张图片-四季读书网

A. 10 * 10 = {10 * 10}

B. 100=10

C. N*N=100

D. {N}*{N} = {10 * 10}

答案D

解析:在printf格式化输出时,%d占位符会原样输出,两个%d显示成10,其余所有符号都正常输出,结果为D选项。

11题 执行下面的C++代码,在键盘上先后输入100200,输出是( )。

GESP第九次认证真题解析|C++一级真题回顾-第11张图片-四季读书网

A. 200

B. 100

C. 1

D. 0

案:D

解析:first=100second=200,依照从左至右顺序,100/200由于整除结果为0,乘以200后结果依然为0,选择D选项。

12题 下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。

GESP第九次认证真题解析|C++一级真题回顾-第12张图片-四季读书网

A. ((i % 2 == 0) && (i % 7 == 2))

B. ((!(i % 2)) && (i % 7 == 2))

C. ((!(i % 2)) && (!(i % 7)))

D. ((i % 2 != 1) && (i % 7 == 2))

答案C

解析:选项C&&前半部分!(i%2),可以判断是否被2整除,但是后半部分!(i%7)能判断是否被7整除,不能判断是否余数为2

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

GESP第九次认证真题解析|C++一级真题回顾-第13张图片-四季读书网

A. -1000

B. 0

C. 999

D. 1000

案:A

解析:观察题目给出的程序,属于对称区间求和,从-999 ~ -1 1 ~ 999 会相互抵消,剩下的是-1000

14题 下面C++代码执行后输出的是( )。

GESP第九次认证真题解析|C++一级真题回顾-第14张图片-四季读书网

A. 101

B. 100

C. 99

D. 96

案:A

解析:依照题目给出的程序,循环变量i以步长为5,一直增大,i=96是符合循环条件可以继续循环的,再增大一次i=101,退出循环,最终变量i101

15题 下面C++代码执行后输出的是( )。

GESP第九次认证真题解析|C++一级真题回顾-第15张图片-四季读书网

A. 500

B. 450

C. 10

D. 1

案:C

解析:依照题目给出的程序,遍历过程中i=5,10,15~90,95(i<100),仅当i=5,15,25,35,45,55,65,75,85,95满足奇数条件,tnt变量会自增1,最终tnt=10,整个循环过程中并不会被break打断。

二、判断题

1C++Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。( )

答案:正确

解析:高级语言需要编译为机器码执行,C++Python都是高级编程语言,题目描述正确。

2题 在C++中表达式N * 2 % N 中如果N的值为正整数,则其值为2( )

答案:错

解析:当N为正整数时,表达式是整除的,最终结果为0

3题 执行如下C++代码如果在键盘上输入10,执行后将输出20( )

GESP第九次认证真题解析|C++一级真题回顾-第16张图片-四季读书网

答案:错误

解析:变N不是int类型,char类型范围有限,输入10时,N只接收字符'1',且输出ASCII码而非数值,题目描述错误。

4题 删除下面C++代码中的continue不影响程序的执行效果。( )

GESP第九次认证真题解析|C++一级真题回顾-第17张图片-四季读书网

答案:正确

解析:依照题目给出程序,在执行完if语句,输出偶数两个字之后,会执行下一次循环,是否书写continue并没有影响。

5题 下面C++代码执行时将报错,因为所在位置应该是变量名,而_不可以做变量名。( )

GESP第九次认证真题解析|C++一级真题回顾-第18张图片-四季读书网

答案:错误

解析:程序不会报错,依照变量名的命名规则,下划线是合法变量名。

6题 下面C++代码被执行后,将先后输出35。( )

GESP第九次认证真题解析|C++一级真题回顾-第19张图片-四季读书网

答案:错误

解析:循环过程中变量i3可以循环,输出数字3,增加2后变量变为5,不符合<5,循环结束,不会输出5

7题 下面的C++代码执行后将先后输出7true。( )

GESP第九次认证真题解析|C++一级真题回顾-第20张图片-四季读书网

答案:错误

解析:当i=0时,0<0为假,i=1时,2<1为假,i=2时,4<4为假,其余i≥3时成立,共7个真,但是会打印3071,不是打印true这个单词。

8题 在C++代码中,user_NameuserNameuser-NameuserName都是合法的变量名。( )

答案:错误

解析:变量名仅能由数字、字母、下划线构成,其中user-Name是不合法变量名。

9题 C++语言中continue语句可以来提前结束循环。( )

答案:错误

析:continue是跳过本次循环,继续执行下一次循环,break语句才是打断,用于结束循环。

10题 C++中定义整型变量N,执行语句scanf("%d", &N); cout << N / 3 * 5; 时输入3.6,则输出是6( )

答案:错误

解析:输入3.6,设置的%d接收的是3,而非3.6,计算:3/3*5=5,故输出6是错误描述。

三、编程题

编程题1

图书馆里的老鼠

题目描述

图书馆里有n本书,不幸的是,还混入了一只老鼠,老鼠每x小时能啃光一本书,假设老鼠在啃光一本书之前,不会啃另一本。请问y小时后图书馆里还剩下多少本完整的书。

输入格式

三行,第一行一个正整数 ,表示图书馆里书的数量;

第二行,一个正整数 ,表示老鼠啃光一本书需要的时间;

第三行,一个正整数 ,表示经过的总时间;

输入数据保证 小时后至少会剩下一本完整的书。

输出格式

一行,一个整数,表示 小时后图书馆里还剩下多少本完整的书。

输入样例1

10

2

3

输出样例1

8

解析:

定义变量 n 表示书的总数,x 表示老鼠啃光一本书所需的小时数,y 表示经过的小时数,ans 表示剩余完整书的数量,assert()断言输入的 n、x 和 y 的值在有效范围内(1 到 1000 之间)。计算剩余完整书的数量,y / x 表示在 y 小时内老鼠啃光的整本书的数量,(y % x == 0) 用于处理 y 能被 x 整除的情况,assert(ans >= 1) 断言计算得到的剩余书的数量至少为 1,最后输出剩余完整书的数量。

参考代码:

GESP第九次认证真题解析|C++一级真题回顾-第21张图片-四季读书网

编程题2

四舍五入

题目描述

四舍五入是一种常见的近似计算方法。现在,给定n个整数,你需要将每个整数四舍五入到最接近的整十数。例如,43四舍五入后为4058四舍五入后为60

输入格式

n+1行,第一行,一个整数n,表示接下来输入的整数个数。接下来n行,每行一个整数a1 a2 ... an,表示需要四舍五入的整数。

输入样例1

5

43

58

25

67

90

输入样例2

40

60

30

70

90

解析:

首先定义变量,然后输入数据,断言输入数据是否符合要求,循环n次接收n个数据,对于每次接收的数字x做加5处理,例如43在加5后会不满50,做整除10,乘以10计算,结果为40,如果是个位达到5,45+5=50,50/10*10结果为50,可以实现题目要求的四舍五入,最后注意输出格式要求,每输出一个答案都配合换行格式。

参考代码:

GESP第九次认证真题解析|C++一级真题回顾-第22张图片-四季读书网

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

技术支持:马长明

GESP第九次认证真题解析|C++一级真题回顾-第23张图片-四季读书网
GESP第九次认证真题解析|C++一级真题回顾-第24张图片-四季读书网
联系方式  

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第九次认证真题解析|C++一级真题回顾-第25张图片-四季读书网

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