2025年6月 GESP C++ 3级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
$8$ 位二进制原码能表示的最小整数是:( )
反码表示中,零的表示形式有:
补码 1011 1011 对应的真值是( )
若 $X$ 的 $8$ 位补码为 0000 1010,则 $X/2$ 的补码是( )。
二进制数 $1101.101$ 对应的十进制数是( )
补码加法中,若符号位无进位而次高位有进位,则说明()
八进制数 $35.6$ 对应的十进制数是( )
二进制数 1010 | 1100 的结果是( )
以下哪个位运算可以交换两个变量的值(无需临时变量)( )
如何正确定义一个长度为 $5$ 的整型数组( )
以下程序使用枚举法(穷举法)求解满足条件的三位数,横线处应该填入的是()
#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;
}
以下程序模拟了一个简单的小球反弹过程,横线处应该填入的是()
#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;
}
C++ 代码 string s = "GESP考试";,$s$ 占据的字节数是( )
C++ 语句 string s = "Gesp Test"; 执行 s.rfind("e") 以后,输出的是( )
字符串 "Gesp考试",字符数是( )。
判 判断题(共 10 题,每题 2 分)
C++ 中 string 的 == 运算符比较的是字符串的内存地址,而非内容
string 的 substr(1, 3) 返回从下标 $1$ 开始的 $3$ 个字符的子串。
$x$ 是浮点数,(x >> 1) 等价于 x / 2
string("hello") == "hello" 的比较结果为 true。
sort 可以直接用于排序 set 中的元素。
(x & 1) == 0 可以判断整数 $x$ 是否为偶数。
string 的 substr(2, 10) 在字符串长度不足时会抛出异常。
在数学纸面计算中,pow(2, 3) 的计算结果一定是 $8$,但是在 C++ 中,如果遇到数据类型是浮点数,那就不一定正确。
在 C++ 中,枚举的底层类型可以是非整型(如 float 或 double)。
函数声明 double f(); 返回 int 时,会自动转换为 double
编 编程操作题(共 2 题,共 50 分)
试题名称:奇偶校验
时间限制: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$。
试题名称:分糖果
时间限制: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$。