image

编辑人: 桃花下浅酌

calendar2025-06-16

message2

visits485

2023年12月CCF-GESP编程能力等级认证C++编程二级真题参考答案

一、单选题

1、以下不可以做为C++变量的是(   )。

A、

FiveStar

B、

fiveStar

C、

5Star

D、

Star5


2、在C++中,与 for(int i = 10; i < 20; i +=2) cout << i; 输出结果相同的是(   )。

A、

for(int i = 10; i < 19; i +=2) cout << i;

B、

for(int i = 11; i < 19; i +=2) cout << i;

C、

for(int i = 10; i < 21; i +=2) cout << i;

D、

以上均不对


3、以下C++代码实现从小到大的顺序输出能整除N的数(N的因子),例如N=18时输出1 2 3 6 9 18,横线处应填入(   )。

A、

int i = 0; i < N; i++

B、

int i = 1; i < N; i++

C、

int i = 0; i < N+1; i++

D、

int i = 1; i < N+1; i++


4、下面C++代码用于判断输入的整数是否为对称数,如1221、12321是对称数,但123、972不是对称数。下面对该题对应代码的说法,正确的是(   )。

A、

代码没有语法错误,如果N为对称数,第8行将能正确输出。

B、

代码没有语法错误,但如果N为负数,将导致死循环。

C、

代码存在语法错误,程序不能被执行。

D、

代码没有语法错误,但不能达到预期目标,因为循环结束N总为0。


5、下面C++代码用于判断N(大于等于2的正整数)是否为质数(素数)。下面对如下代码的说法,正确的是(  )。

A、

代码能正确判断N是否为质数。

B、

代码总是不能判断N是否质数。

C、

删除第5行 break ,将能正确判断N是否质数。

D、

代码存在漏洞,边界存在问题,应将第2行和第7行的 N / 2 改为 N / 2 + 1 。


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

A、

2#3#0

B、

1#2#0

C、

1#0#

D、

2#3#


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

A、

0

B、

8#8

C、

4

D、

4#4


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

A、

100

B、

95

C、

55

D、

0


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

A 1

B 1,3

C 15,17

D 1,10,12


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

A 5

B 10

C 20

D 30


11、以下C++代码用于输出1-100(含)的整数平方数(完全平方数),如16是4的平方,横线处应填写(   )。

A int(sqrt(i)) * int(sqrt(i)) = i

B int(sqrt(i)) == sqrt(i)

C int(sqrt(i)) * int(sqrt(i)) == i

D int(sqrt(i)) = sqrt(i)


12、下面的C++代码用于实现如下左图所示的效果,应在以下右图C++代码中填入(   )。

A 与第8行下面填入一行: cout << nowNum;

B 与第2行下面填入一行: cout << endl;

C 与第7行下面填入一行: cout << nowNum;

D 与第9行下面填入一行: cout << endl;


13、某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。(   )(2023年12月C++二级)

A、

麦克风

B、

扬声器

C、

油量表

D、

传感器


14、现代计算机是指电子计算机,它所基于的是(   )体系结构。(2023年12月C++二级)

A 艾伦·图灵

B 冯·诺依曼

C 阿塔纳索夫

D 埃克特-莫克利


15、输入一个正整数N,想找出它所有相邻的因数对,比如,输入12,因数对有(1,2)、(2,3)、(3,4)。下面哪段代码找不到所有的因数对?(   )(2023年12月C++二级)

A for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

B for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

C for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);

D for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);


二、判断题

16、C++表达式 -7/2 的值为整数-3。(   )

A 正确

B 错误


17、C++表达式 2*int('9')*2 的值为36。(   )

A 正确

B 错误


18、C++表达式 3+2 && 5-5 的值为false。(   )

A 正确

B 错误


19、在C++代码中,执行 srand(0) 后连续两次执行 rand() 的结果相等。 (   )

A 正确

B 错误


20、C++代码中 while(1){...} 的判断条件不是逻辑值,将导致语法错误。(   )

A 正确

B 错误


21、执行以下C++代码后将输出0。(   )

A 正确

B 错误


22、在C++代码中,运算符只能处理相同的数据类型,不同类型之间必须转换为相同的数据类型。(   )

A 正确

B 错误


23、在C++代码中,虽然变量都有数据类型,但同一个变量也可以先后用不同类型的值赋值。(   )

A 正确

B 错误


24、小杨最近在准备考GESP,他用的Dev C++来练习和运行程序,所以Dev C++也是一个小型操作系统。(   )(2023年12月C++二级)

A 正确

B 错误


25、任何一个 while 循环都可以转化为等价的 for 循环(   )。(2023年12月C++二级)

A 正确

B 错误


三、实操题

26、小杨做题

时间限制:1.0 s

内存限制:128.0 MB

问题描述

为了准备考试,小杨每天都要做题。第 1 天,小杨做了a道题;第 2 天,小杨做了b道题;从第 3 天起,小杨每天做的题目数量是前两天的总和。

此外,小杨还规定,当自己某一天做了大于或等于m题时,接下来的所有日子里,他就再也不做题了。

请问,到了第N天,小杨总共做了多少题呢?

输入描述

总共 4 行。第一行一个整数 ,第二行一个整数 ,第三行一个整数 ,第四行一个整数 。

保证0≤a,b≤10;a,b<M≤1000000;3≤N≤364。

输出描述

一行一个整数,表示小杨N天里总共做了多少题目。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。


样例输入 1

1
2
10
5

样例输出 1

19

样例解释 1

小杨第一天做1题,第二天做2题,第三天做1+2=3题,第四天做2+3=5题,第五天做3+5=8题。因此他总共做了1+2+3+5+8=19题。


样例输入 2

1
1
5
8

样例输出 2

12

样例解释 2

小杨前 5 天分别做了1,1,2,3,5题,由于第 5 天小杨做了5题,而m=5,于是小杨从此以后不再做题。因此小杨总共做了1+1+2+3+5=12题。

参考答案:对于小杨做题的问题,首先根据题目描述,小杨从第3天开始,每天做的题目数量是前两天的总和。当某一天做的题目数量大于或等于m时,小杨就不再做题。我们需要计算出小杨在第N天总共做了多少题。为了解决这个问题,我们可以使用循环来模拟小杨做题的过程。首先,我们需要初始化变量total_questions为0,表示小杨总共做了多少题。然后,从第1天开始,每次循环都根据题目描述计算小杨当天做的题目数量,并将其累加到total_questions中。在每次循环中,我们需要判断小杨是否达到了停止做题的条件。如果小杨当天做的题目数量大于或等于m,我们就跳出循环,结束计算。否则,我们继续进行下一次循环,计算小杨下一天做的题目数量。最后,我们将total_questions作为结果输出。


27、小杨的 H 字矩阵

时间限制:1.0 s

内存限制:128.0 MB

问题描述

小杨想要构造一个N×N的 H 字矩阵(N为奇数),具体来说,这个矩阵共有N行,每行N个字符,其中最左列、最右列都是 | ,而中间一行(即第 行)的第2~N-1个字符都是 - ,其余所有字符都是半角小写字母a 。例如,一个N=5的 H 字矩阵如下:

|aaa|
|aaa|
|---|
|aaa|
|aaa|

请你帮小杨根据给定的 打印出对应的“H 字矩阵”。

输入描述

一行一个整数N(5≤N≤49,保证N为奇数)。

输出描述

输出对应的“H 字矩阵”。

请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出N行,每行除了换行符外恰好包含N个字符,这些字符要么是 - ,要么是 | ,要么是 a 。你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。


样例输入 1

5

样例输出 1

|aaa|
|aaa|
|---|
|aaa|
|aaa|

样例输入 2

7

样例输出 2

|aaaaa|
|aaaaa|
|aaaaa|
|-----|
|aaaaa|
|aaaaa|
|aaaaa|

参考答案:|aaaaa||aaaaa||-----||aaaaa||aaaaa||aaaaa|


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023年12月CCF-GESP编程能力等级认证C++编程二级真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share