CCF GESP 2026年9月认证 C++ 2级

所有 GESP 真题,手机上也能刷 · 自动判分 · 错题自动进错题本 扫码去刷
一 单选题
共 15 道 每题 2 分 共计 30 分
第 1 题

第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境(IDE)编写并调试方阵的控制程序。下列关于 IDE 功能的描述,错误的是( )。

A

可以提供代码自动补全,提高编程效率

B

可以提供辅助信息,帮助排查程序逻辑错误

C

可以直接控制机器人电机转动

D

支持语法高亮,使代码更易阅读

第 2 题

计算机 CPU 中的高速缓冲存储器(Cache)主要为提升系统性能而设计。下列关于 Cache 的说法中正确的是( )。

A

Cache 的容量比主存大,速度比主存快

B

Cache 通常用于暂存 CPU 频繁访问的数据

C

Cache 中的数据断电后不会丢失,属于非易失性存储器

D

Cache 的访问速度比 CPU 寄存器还要快

第 3 题

执行如下 C++ 代码,其输出是( )。

cout << (3 == 3.0);
A

1

B

1.0

C

0

D

-1

第 4 题

执行如下 C++ 代码,其输出是( )。

cout << (bool(5) + bool(-5) + bool(5.0));
A

0

B

1

C

2

D

3

第 5 题

判断年份 N 是否为闰年的规则是:能被 4 整除但不能被 100 整除,或者能被 400 整除。以下 C++ 表达式中,能正确判断 N 是否为闰年的是( )。

A

(N % 4 == 0 && N % 100 != 0) || (N % 400 == 0)

B

N % 4 == 0 && N % 100 == 0 || N % 400 == 0

C

(N / 4 == 0 && N / 100 != 0) || (N / 400 == 0)

D

(N % 4 == 0 && N % 100 != 0) && (N % 400 == 0)

第 6 题

执行如下 C++ 代码,其输出是( )。

int tot, i;
tot = 0;
for (i = 0; i < 10; i++)
    if (i)
        tot += 1;
cout << tot;
A

0

B

8

C

9

D

10

第 7 题

执行如下 C++ 代码,当输入 4 时,其输出是( )。

int n, tot, i, j;
cin >> n;
tot = 0;
for (i = 1; i < n; i++)
    for (j = 1; j < i; j++)
        tot += 1;
cout << tot;
A

1

B

3

C

6

D

10

第 8 题

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

int tnt, i;
tnt = 0;
for (i = 0; i < 10; i++)
    if (i % 3)
        tnt += i;
cout << tnt;
A

12

B

18

C

22

D

27

第 9 题

下面的 C++ 代码之后的输出是( )。

int tot = 0, i;
for (i = -5; i < 5; i++)
    if (not(i % 3 != 0))
        tot += 1;
cout << tot;
A

2

B

3

C

7

D

9

第 10 题

有关如下 C++ 代码描述,变量都是整型,错误的是( )。

int n, limit, i;
cout << "请输入一个正整数: ";
cin >> n;
if (n <= 1)
	printf("%d非素数", n);
else if (n == 2)
	printf("2是素数");
else {
	limit = sqrt(n) + 1;
	for (i = 2; i < limit; i++)
		if (n % i == 0) {
			printf("%d非素数", n);
			break;
		}
	if (i >= limit)
		printf("%d是素数", n);
}
A

n <= 1 条件用于判断输入 0 、 1 以及负数时的情况,不能省略。

B

n == 2 条件及其相关代码省略,程序的输出结果没有区别。

C

break 语句不可以省略,否则非素数还将执行最后一行的语句。

D

limit = sqrt(n) + 1 语句中的 1 可以修改为其他大于等于 1 的正整数,执行结果不会有错误,但循环 次数增多,效率有所影响。

第 11 题

执行以下 C++ 代码后,最终的输出结果是( )。

int total, i, j;
total = 0;
i = 1;
while (i <= 3) {
	for (j = 1; j < i + 1; j++)
		total += i * j;
	i += 1;
}
cout << total;
A

9

B

11

C

23

D

25

第 12 题

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

int count, i, j;
count = 0;
for (i = 1; i < 4; i++)
	for (j = 0; j < i; j++) {
		if (j % 3 == 0)
			continue;
		count += 1;
		if (i * j >= 2)
			break;
	}
printf("%d %d %d", i, j, count);
A

2 3 2

B

3 0 2

C

4 1 2

D

4 2 3

第 13 题

如下的 C++ 代码执行时输入 12 将输出如下数字图形。注意:最后一行之前没有空格。横线处应填入的代码是( )。

           0
          12
         345
        6789
       01234
      567890
     1234567
    89012345
   678901234
  5678901234
 56789012345
678901234567
int line, i, j, k;

i = 0;
cout << "请输入行数:";
cin >> line;
for (j = 0; j < line; j++) {
	for (k = 0; k < ___________; k++) // L1
		cout << " ";
	for (k = 0; k < j + 1; k++) {
		cout << i;
		i += 1;
		if (i >= 10)
			i = 0;
	}
	cout << endl;
}
A

line - j - 1

B

line - j

C

line

D

line + 1

第 14 题

小北的身高是 1.65 米。班上有 n 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是( )。

int n, i;
float target, h, best_height, min_diff, diff;

cout << "请输入小朋友的人数: ";
cin >> n;
target = 1.65;
best_height = 0.0;
min_diff = 100.0;

for (i = 0; i < n; i++) {
	cout << "请输入第 " << i << " 个小朋友的身高: ";
	cin >> h;
	diff = abs(h - target);
	
	if (____________________) { // L1
		min_diff = diff;
		best_height = h;
	}
}
cout << "小北的朋友身高为: " << best_height;
A

diff < min_diff || (diff == min_diff && h < best_height)

B

diff <= min_diff && h < best_height

C

diff < min_diff && h < best_height

D

diff < min_diff || h < best_height

第 15 题

小北的身高是 1.65 米。班上有 n 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是 ( )。

int n, i;
float target, h, best_height, min_diff, diff;

cout << "请输入小朋友的人数: ";
cin >> n;
target = 1.65;
best_height = 0.0;
min_diff = 100.0;

for (i = 0; i < n; i++) {
	cout << "请输入第 " << (i + 1) << " 个小朋友的身高: ";
	cin >> h;
	
	if (h > target)
		diff = h - target;
	else
		diff = target - h;
		
	if (diff < min_diff) {
		min_diff = diff;
		best_height = h;
	} else if (diff == min_diff) {
		__________________
		__________________
	}
}

cout << "小北的朋友身高为:" << best_height;
A
if (h < best_height)
    best_height = h;
B
if (h > best_height)
    best_height = h;
C
if (h > target)
    best_height = h;
D
if (h >= best_height)
    best_height = h;
单选题部分已到底了。

小程序开心码未来

微信扫码,随时随地练 GESP 真题

  • 手机刷题 · 自动判分,错题自动归档到错题本
  • 绑定网站账号后,查看答案解析等权限自动同步
开心码未来小程序二维码(微信扫一扫) 微信扫一扫