Logo

2025年6月 GESP C++ 2级

GESP · 2级 · 2025-06

60:00
满分 100
时长 60 分钟
27

2025年6月 GESP C++ 2级认证考试真题(含编程操作题部分)

答题卡 已答 0/27
已答 正确 错误 编程题

单选题(共 15 题,每题 2 分)

1

2025年4月19⽇在北京举行了一场颇为瞩目的⼈形机器⼈半程马拉松赛。比赛期间,跑动着的机器⼈会利用
身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的( )。

2

小明购置的计算机使用一年后觉得内存不够用了,想购置一个容量更大的内存条,这时他需要的内存条是(
)。

3

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

int a=3;
float b = 3.5;
cout << (a *= b);
4

下面C++代码用于获得正整数的第3位数,如1234则输出2。如果是一位数或两位数,则输出0。横线处应填
入的代码是( )。

int N, remainder;
cout << "请输入正整数:";
cin >> N;
cout << _________________;
5

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

int a, b = (6, 28);
b == a;
a = b;
cout << a << ' ' << b;
6

今天星期六,其后第N天星期几?如果是星期一到星期六输出形如:星期1、星期2等,星期天则输出星期
天。下面的C++代码用于完成上述要求,横线处应填上的代码是( )。

int N, remainder;
cin >> N;
remainder = _____________;
if(remainder == 0)
printf("星期六后第%d天是星期天\n", N);
else
printf("星期六后第%d天是星期%d\n", N, remainder);
7

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

int i, Sum = 0;
for (i = 1; i < 10; i++){
    Sum += i;
    if(i % 2) continue;
    if(i % 7) break;
}
cout << Sum;
8

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

int i, j;
for(i = 1; i < 12; i++)
for(j = 1; j < i; j++)
if(i * j % 2 == 1)
break;
cout << i * j;
9

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

int i, cnt = 0;
for(i = -99; i < 100; i += 2)
cnt = 1 + cnt;
cout << cnt;
10

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

int i;
for(i = 1; i < 10; i++){
    if(i % 3 != 0){
        printf("A#");
        continue;
    }
    else
    break;
    printf("0#");
}
if(i == 10) cout << "1";
11

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

int i,j;
for(i = 0; i < 3; i++)
for(j = 0; j < i; j++)
printf("%d#%d-", i, j);
printf("END");
12

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

int i,j;
for(i = 0; i < 100; i++)
if(______________________)
cout << i << endl;
13

下面C++代码用于判断一个大于0的正整数是几位数,横线处应填入代码先后是( )。

int N, cnt;
cout << "请输入大于0的正整数:";
cin >> N;
cnt = 0;
while (_________){
    cnt += 1;
    ______________;
}
cout << cnt;
14

判断一个数是否为自守数。自守数的定义是如果一个数的平方其尾数与该数相同,则为自守数,如25的平
方是625,其尾数是25,所以25是自守数。相关说法错误的是( )。

int N, N1, M1;
cout << "输入一个正整数:";
cin >> N;
N1 = N, M1 = N * N;
bool Flag = true;
while (N1 > 0){
    if (N1 % 10 != M1 % 10){
        Flag = false;
        break;
    }
    else{
        N1 = N1 / 10, M1 = M1 / 10;
    }
}
if (Flag == true)
printf("%d的平方是%d,是自守数", N, N * N);
else
printf("%d的平方是%d,不是自守数", N, N * N);
15

下面C++代码实现输出如下图形,相关说法错误的是( )。

请输入层数: 10
0
12
345
6789
01234
567890
1234567
89012345
678901234
5678901234
int line_number, now_number;
int i,row;
cout << "请输入行数: ";
cin >> line_number;
now_number = 0;
for (row = 1; row < line_number + 1; row++){ // L1
    for (i = 0; i < row; i++){ // L2
        cout << now_number;
        now_number += 1;
        if (now_number == 10) now_number = 0; // L3
    }
    cout << endl;
}

判断题(共 10 题,每题 2 分)

16

⼈们现在参加很多闭卷考试时通常都不允许带智能手机、平板电脑等,此外很多种智能手表同样因为具有嵌
入操作系统及通信等功能,所以也不允许随身携带。( )

17

在C++代码中,假设N为正整数,则N / 10舍弃个位数。如果 N 小于10,则其值为0,大于10则是舍弃个位
数的数。( )

18

下列C++代码执行后,其输出为10 20,即 a == b 和 b == a 对 a 和 b 的值没有任何影响。( )

int a = 10, b = 20;
a == b;
b == a;
cout << (a, b);
19

a 和 b 分别是C++的整型变量,如果表达式max(a, b) == min(a, b)的值为真,则说明 a 和 b 相等。
( )

20

下面C++代码编译时将报错,因为字符变量 a 被赋值了浮点值。 ( )

char a = '1';
a = 45.6;
cout << a;
21

下面C++代码执行时如输入59.99,将输出及格两个汉字。( )

int score;
cout << "请输入学生成绩: ";
cin >> score;
if (score < 60)
cout << "不及格";
else
cout << "及格";
22

在下面的C++代码中,因为continue将被执行,因此不会有输出。( )

int i;
for (i = 1; i < 10; i++)
if (i % 2 == 0)
continue;
if(i == 10)
cout << "END";
23

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

int Sum = 0;
for (int i = 0; i < 5; i++)
Sum += i;
cout << Sum;
24

将下面C++代码中的(int i = 5; i > 1; i--)调整为(int i = 1; i < 5; i++)输出结果相同,因为5到1
与1到5的求和相同。( )

int tnt;
tnt = 0;
for (int i = 5; i > 1; i--)
tnt += i;
cout << tnt;
cout << endl;
25

为实现如下效果,即N行N列字符。当输入是奇数时,中间列为*,其他是-;当输入是偶数时,则中间两
列是*,其他是-。字符阵列后的代码能实现其效果。( )

/*
5
--*--
--*--
--*--
--*--
--*--
*/
int N;
cin >> N;
int i,j;
for (i = 0; i < N; i++){
    for (j = 0; j < N; j++)
    if ((j == N / 2) || (j == (N-1) / 2))
    cout << "*";
    else
    cout << "-";
    cout << endl;
}

编程操作题(共 2 题,共 50 分)

26
编程操作题 25分

试题名称:数三角形

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

直角三角形有两条直角边与⼀条斜边,设两条直角边的长度分别为 ,则直角三角形的⾯积为 。
请你计算当直角边长 均取不超过 的正整数时,有多少个不同的⾯积为整数的直角三角形。直角边长分别为
和 的两个直角三角形相同,当且仅当 或者 。

输入格式

⼀⾏,⼀个整数 ,表⽰直角边长的最⼤值。

输出格式

输出⼀⾏,⼀个整数,表⽰不同的直角三角形数量。

数据范围

对于所有测试点,保证 。

27
编程操作题 25分

试题名称:幂和数

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

对于正整数 ,如果 可以表为两个 的次幂之和,即 ( 均为⾮负整数),那么称 为幂和数。
给定正整数 ,请你求出满⾜ 的整数 中有多少个幂和数。

输入格式

⼀⾏,两个正整数 ,含义如上。

输出格式

输出⼀⾏,⼀个整数,表⽰ 之间幂和数的数量。

数据范围

对于所有测试点,保证 。

已答 0/27