Logo

2025年6月 GESP C++ 3级

GESP · 3级 · 2025-06

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

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

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

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

1

$8$ 位二进制原码能表示的最小整数是:( )

2

反码表示中,零的表示形式有:

3

补码 1011 1011 对应的真值是( )

4

若 $X$ 的 $8$ 位补码为 0000 1010,则 $X/2$ 的补码是( )。

5

二进制数 $1101.101$ 对应的十进制数是( )

6

补码加法中,若符号位无进位而次高位有进位,则说明()

7

八进制数 $35.6$ 对应的十进制数是( )

8

二进制数 1010 | 1100 的结果是( )

9

以下哪个位运算可以交换两个变量的值(无需临时变量)( )

10

如何正确定义一个长度为 $5$ 的整型数组( )

11

以下程序使用枚举法(穷举法)求解满足条件的三位数,横线处应该填入的是()

#include <iostream>
using namespace std;
int main() {
    int count = 0;
    for (int i = 100; i <= 999; i++) {
        int a = i / 100;
        ————————————————————
        int c = i % 10;
        if (a * a + b * b == c * c) {
            count++;
        }
    }
    cout << count << endl;
    return 0;
}
12

以下程序模拟了一个简单的小球反弹过程,横线处应该填入的是()

#include <iostream>
using namespace std;
int main() {
    int height = 10;
    int distance = 0;
    for (int i = 1; i <= 5; i++) { // 模拟5次落地
        ——————————————————————
        height /= 2;
        distance += height;
    }
    cout << distance << endl;
    return 0;
}
13

C++ 代码 string s = "GESP考试";,$s$ 占据的字节数是( )

14

C++ 语句 string s = "Gesp Test"; 执行 s.rfind("e") 以后,输出的是( )

15

字符串 "Gesp考试",字符数是( )。

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

16

C++ 中 string== 运算符比较的是字符串的内存地址,而非内容

17

stringsubstr(1, 3) 返回从下标 $1$ 开始的 $3$ 个字符的子串。

18

$x$ 是浮点数,(x >> 1) 等价于 x / 2

19

string("hello") == "hello" 的比较结果为 true

20

sort 可以直接用于排序 set 中的元素。

21

(x & 1) == 0 可以判断整数 $x$ 是否为偶数。

22

stringsubstr(2, 10) 在字符串长度不足时会抛出异常。

23

在数学纸面计算中,pow(2, 3) 的计算结果一定是 $8$,但是在 C++ 中,如果遇到数据类型是浮点数,那就不一定正确。

24

在 C++ 中,枚举的底层类型可以是非整型(如 floatdouble)。

25

函数声明 double f(); 返回 int 时,会自动转换为 double

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

26
编程操作题 25分

试题名称:奇偶校验

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

题目描述

数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。

给定 $n$ 个非负整数 $c_1, c_2, \ldots, c_n$ 代表所传输的数据,它们的校验码取决于这些整数在二进制下 1 的数量之和的奇偶性。如果这些整数在二进制下共有奇数个 1,那么校验码为 1;否则校验码为 0。你能求出这些整数的校验码吗?

输入格式

第一行,一个正整数 $n$,表示所传输的数据量。

第二行,$n$ 个非负整数 $c_1, c_2, \ldots, c_n$,表示所传输的数据。

输出格式

输出一行,两个整数,以一个空格分隔:

第一个整数表示 $c_1, c_2, \ldots, c_n$ 在二进制下 1 的总数量;

第二个整数表示校验码(0 或 1)。

样例输入 #1

4
71 69 83 80

样例输出 #1

13 1

样例输入 #2

6
1 2 4 8 16 32

样例输出 #2

6 0

说明/提示

对于所有测试点,保证 $1 \leq n \leq 100$,$0 \leq c_i \leq 255$。

27
编程操作题 25分

试题名称:分糖果

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

题目描述

有 $n$ 位小朋友排成一队等待老师分糖果。第 $i$ 位小朋友想要至少 $a_i$ 颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。

老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?

输入格式

第一行,一个正整数 $n$,表示小朋友的人数。

第二行,$n$ 个正整数 $a_1, a_2, \ldots, a_n$,依次表示每位小朋友至少需要的糖果数量。

输出格式

输出一行,一个整数,表示最少需要准备的糖果数量。

样例输入 #1

4
1 4 3 3

样例输出 #1

16

样例输入 #2

15
314 15926 53589793 238462643 383279502 8 8 4 1 9 7 1 6 9 3

样例输出 #2

4508143253

说明/提示

对于所有测试点,保证 $1 \leq n \leq 1000$,$1 \leq a_i \leq 10^9$。

已答 0/27