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

2024年03月02日

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

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

A:FiveStar
B:fiveStar
C:5Star
D:Star5

答案:C

第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:以上均不对

答案:A

第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++

答案:D

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

A:代码没有语法错误,如果N为对称数,第8行将能正确输出。
B:代码没有语法错误,但如果N为负数,将导致死循环。
C:代码存在语法错误,程序不能被执行。
D:代码没有语法错误,但不能达到预期目标,因为循环结束N总为0。

答案:D

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

A:代码能正确判断N是否为质数。
B:代码总是不能判断N是否质数。
C:删除第5行 break ,将能正确判断N是否质数。
D:代码存在漏洞,边界存在问题,应将第2行和第7行的 N / 2 改为 N / 2 + 1 。

答案:D

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

A:2#3#0
B:1#2#0
C:1#0#
D:2#3#

答案:A

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

A:0
B:8#8
C:4
D:4#4

答案:D

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

A:100
B:95
C:55
D:0

答案:C

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

A:1
B:1,3
C:15,17
D:1,10,12

答案:D

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

A:5
B:10
C:20
D:30

答案:B

第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)

答案:C

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

A:与第8行下面填入一行: cout << nowNum;
B:与第2行下面填入一行: cout << endl;
C:与第7行下面填入一行: cout << nowNum;
D:与第9行下面填入一行: cout << endl;

答案:D

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

A:麦克风
B:扬声器
C:油量表
D:传感器

答案:C

第14题 现代计算机是指电子计算机,它所基于的是( )体系结构。

A:艾伦·图灵
B:冯·诺依曼
C:阿塔纳索夫
D:埃克特-莫克利

答案:B

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

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);

答案:B

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

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

答案:正确

第17题 C++表达式 2int(‘9’)2 的值为36。( )

答案:错误

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

答案:错误

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

答案:错误

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

答案:错误

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

答案:错误

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

答案:错误

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

答案:正确

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

答案:错误

第25题 任何一个 while 循环都可以转化为等价的 for 循环( )。

答案:正确

三、编程题(共2题,共50分)

第26题小杨做题

第27题小杨的 H 字矩阵