image

编辑人: 独留清风醉

calendar2025-06-15

message1

visits1234

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

一、单选题

1、下列流程图的输出结果是?( B )

A 优秀

B 良好

C 不及格

D 没有输出


2、以下选项中不符合 C++变量命名规则的是?(   )

A student

B 2_from

C _to

D Text


3、以下选项中,不能用于表示分支结构的C++保留字是?(   )

A switch

B return

C else

D if


4、下列说法错误的是?(   )

A while 循环满足循环条件时不断地运行,直到指定的条件不满足为止

B if 语句通常用于执行条件判断

C 在C++中可以使用 foreach 循环

D break 和 continue 语句都可以用在 for 循环和 while 循环中


5、下列4个表达式中,答案不是整数8的是?(   )

A abs(-8)

B min(max(8, 9), 10)

C int(8.88)

D sqrt(64)


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

int n,a,m,i;
n=3, a = 5;
m = (a - 1) * 2;
for (i=0; i<n-1; i++)
	m = (m - 1) * 2;
cout << m;

A 8

B 14

C 26

D 50


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

int n,i,result;
n = 81;
i = 1, result = 1;
while (i * i <= n){
	if (n % (i * i) == 0)
		result = i * i;
	i += 1;
}
cout << result;

A 16

B 36

C 49

D 81


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

int s,t,ans;
s = 2, t = 10;
ans = 0;
while (s != t){
	if (t % 2 == 0 && t / 2 >= s)
		t /= 2;
	else
		t -= 1;
	ans += 1;
}
cout << ans;

A 2

B 3

C 4

D 5


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

int n, masks, days,cur;
n = 17, masks = 10, days = 0;
cur = 2;
while (masks != n){
	if (cur == 0 || cur == 1)
		masks += 7;
	masks -= 1;
	days += 1;
	cur = (cur + 1) % 7;
}
cout << days;

A 5

B 6

C 7

D 8


10、以下C++代码判断一个正整数N的各个数位是否都是偶数。如果都是,则输出“是”,否则输出“否”。例如N=2024时输出“是”。则横线处应填入(   )。

int N,Flag;
cin >> N;
Flag = true;
while (N != 0){
	if (N %2 != 0){
		Flag = false;
		_____________
	}
	else
		N /= 10;
}
if(Flag == true)
	cout << "是";
else
	cout << "否";

A break

B continue

C N = N / 10

D N = N % 10


11、有句俗话叫“三天打渔,两天晒网”。如果小杨前三天打渔,后两天晒网,一直重复这个过程,以下程序代码用于判断,第n天小杨是在打鱼还是晒网,横线处应填写?(   )

int n,i;
cin >> n;
i = n % 5;
if (__________________) // 在此处填写代码
	cout << "晒网";
else
	cout << "打鱼";

A i == 0

B i == 4

C i == 0 && i == 4

D i == 0 || i == 4


12、一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 101 与 6886 都是回文数,而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?(   )

int n,a,k;
cin >> n;
a = 0;
k = n;
while (n > 0){
	a = __________; // 在此处填写代码
	n /= 10;
}
if (a == k)
	cout << "是回文数";
else
	cout << "不是回文数";

A 10 * a + n % 10

B a + n % 10

C 10 * a + n / 10

D a + n / 10


13、给定两个整数n与k,打印出一个栅栏图形,这个栅栏应该分成n段,段与段之间的间隔为 + , 段内的填充为k个 - 。形如n=5,k=6, 时,图形如下:

+-----+-----+-----+-----+-----+

以下程序代码用于绘制该图形,横线处应填写?(   )

int n, k, i, j;
n = 5, k = 6;
for (i = 0; i < n; i++){
	__________ // 在此处填写代码
	for (j = 1; j < k; j++)
		cout << '-' ;
}
cout << '+';

A cout << '+' << endl;

B cout << '+' << ' ' << endl;

C cout << '+';

D cout << '+' << ' ';


14、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是。(   )

A 小程序

B 计时器

C 操作系统

D 神话人物


15、中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是(  )。

A 制造自动驾驶汽车

B 创立培训学校

C 发明汉字激光照排系统

D 成立方正公司


二、判断题

16、如果有以下C++代码:

double s;
int t;
s = 18.5;
t = int(s) + 10;

那么 cout << t 的结果为 28.5 。(   )

A 正确

B 错误


17、Xyz , xYz , xyZ 是三个不同的变量。(   )

A 正确

B 错误


18、cout << (8< 9< 10) 的输出结果为 true 。(   )

A 正确

B 错误


19、for (i = 0; i < 100; i+=2) ; 语句中变量i的取值范围是0到99。(   )

A 正确

B 错误


20、C++中 cout << float(2022) 与 cout << float('2022') 运行后的输出结果均为2022。(   )

A 正确

B 错误


21、已知 A 的ASCII码值为65,表达式 int('C')+abs(-5.8) 的值为72.8。(   )

A 正确

B 错误


22、bool() 函数用于将给定参数或表达式转换为布尔类型。语句 bool(-1) 返回的是 false 值。(   )

A 正确

B 错误


23、如果变量 a 的值使得C++表达式 sqrt(a)==abs(a) ,则 a 的值为0。(   )

A 正确

B 错误


24、小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。(  )

A 正确

B 错误


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

A 正确

B 错误


三、实操题

26、乘法问题

问题描述

小 A 最近刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。

对于大部分题目,小 A 可以精准地算出答案,不过,如果这些数的乘积超过106,小 A 就不会做了。

请你写一个程序,告诉我们小 A 会如何作答。

输入描述

第一行一个整数n,表示正整数的个数。

接下来n行,每行一个整数a。小 A 需要将所有的a乘起来。

保证n≤50,a≤100。

输出描述

输出一行,如果乘积超过106,则输出 >1000000 ;否则输出所有数的乘积。

特别提醒

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


样例输入 1

2
3
5

样例输出 1

15

样例输入 2

3
100
100
100

样例输出 2

1000000

样例输入 3

4
100
100
100
2

样例输出 3

>1000000

参考答案:对于输入的每一个正整数,我们需要将其累乘起来,如果累乘的结果超过了10^6,则输出">1000000",否则输出累乘的结果。


27、小杨的日字矩阵

问题描述

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

|---|
|xxx|
|---|
|xxx|
|---|

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

输入描述

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

输出描述

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

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

特别提醒

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


样例输入 1

5

样例输出 1

|---|
|xxx|
|---|
|xxx|
|---|

样例输入 2

7

样例输出 2

|-----|
|xxxxx|
|xxxxx|
|-----|
|xxxxx|
|xxxxx|
|-----|

参考答案:br />|---5||xxx5||---5||xxx5||---5|


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

创作类型:
原创

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

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