2025年6月 GESP C++ 3级
2025年6月 GESP C++ 3级认证考试真题(含编程操作题部分)
// questions
题目预览
888 位二进制原码能表示的最小整数是:( )
−127-127−127
−128-128−128
−255-255−255
−256-256−256
反码表示中,零的表示形式有:
111 种
222 种
888 种
161616 种
补码 1011 1011 对应的真值是( )
−69-69−69
−59-59−59
−68-68−68
−58-58−58
若 XXX 的 888 位补码为 0000 1010,则 X/2X/2X/2 的补码是( )。
0000 0101
1000 0101
0000 0101 或 1000 0101
算术右移后结果取决于符号位
二进制数 1101.1011101.1011101.101 对应的十进制数是( )
13.62513.62513.625
12.7512.7512.75
11.87511.87511.875
14.514.514.5
补码加法中,若符号位无进位而次高位有进位,则说明()
结果正确
发生上溢
发生下溢
结果符号位错误
八进制数 35.635.635.6 对应的十进制数是( )
29.7529.7529.75
28.528.528.5
27.62527.62527.625
30.2530.2530.25
二进制数 1010 | 1100 的结果是( )
1000
1110
1010
1100
以下哪个位运算可以交换两个变量的值(无需临时变量)( )
a = a ^ b; b = a ^ b; a = a ^ b;
a = a & b; b = a | b; a = a & b;
a = a | b; b = a ^ b; a = a ^ b;
a = ~a; b = ~b; a = ~a;
如何正确定义一个长度为 555 的整型数组( )
int array = new int[5];
array int[5];
int[] array = {1,2,3,4,5};
int array[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;
}
int b = (i / 10) / 10;
int b = (i / 10) % 10;
int b = (i % 10) / 10;
int b = (i % 10) % 10;
以下程序模拟了一个简单的小球反弹过程,横线处应该填入的是()
#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;
}
distance += height/2;
distance += height;
distance += height*2;
distance += height+1;
C++ 代码 string s = "GESP考试";,sss 占据的字节数是( )
101010
888
888 或 101010
取决于计算机采用什么编码
C++ 语句 string s = "Gesp Test"; 执行 s.rfind("e") 以后,输出的是( )
111
222
666
333
字符串 "Gesp考试",字符数是( )。
101010
888
666
字符数多少取决于编码
C++ 中 string 的 == 运算符比较的是字符串的内存地址,而非内容
string 的 substr(1, 3) 返回从下标 111 开始的 333 个字符的子串。
xxx 是浮点数,(x >> 1) 等价于 x / 2
string("hello") == "hello" 的比较结果为 true。
sort 可以直接用于排序 set 中的元素。
(x & 1) == 0 可以判断整数 xxx 是否为偶数。
string 的 substr(2, 10) 在字符串长度不足时会抛出异常。
在数学纸面计算中,pow(2, 3) 的计算结果一定是 888,但是在 C++ 中,如果遇到数据类型是浮点数,那就不一定正确。
在 C++ 中,枚举的底层类型可以是非整型(如 float 或 double)。
函数声明 double f(); 返回 int 时,会自动转换为 double
试题名称:奇偶校验
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。
给定 nnn 个非负整数 c1,c2,…,cnc_1, c_2, \ldots, c_nc1,c2,…,cn 代表所传输的数据,它们的校验码取决于这些整数在二进制下 1 的数量之和的奇偶性。如果这些整数在二进制下共有奇数个 1,那么校验码为 1;否则校验码为 0。你能求出这些整数的校验码吗?
输入格式
第一行,一个正整数 nnn,表示所传输的数据量。
第二行,nnn 个非负整数 c1,c2,…,cnc_1, c_2, \ldots, c_nc1,c2,…,cn,表示所传输的数据。
输出格式
输出一行,两个整数,以一个空格分隔:
第一个整数表示 c1,c2,…,cnc_1, c_2, \ldots, c_nc1,c2,…,cn 在二进制下 1 的总数量;
第二个整数表示校验码(0 或 1)。
样例输入 #1
4
71 69 83 80
样例输出 #1
13 1
样例输入 #2
6
1 2 4 8 16 32
样例输出 #2
6 0
说明/提示
对于所有测试点,保证 1≤n≤1001 \leq n \leq 1001≤n≤100,0≤ci≤2550 \leq c_i \leq 2550≤ci≤255。
试题名称:分糖果
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
有 nnn 位小朋友排成一队等待老师分糖果。第 iii 位小朋友想要至少 aia_iai 颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。
老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?
输入格式
第一行,一个正整数 nnn,表示小朋友的人数。
第二行,nnn 个正整数 a1,a2,…,ana_1, a_2, \ldots, a_na1,a2,…,an,依次表示每位小朋友至少需要的糖果数量。
输出格式
输出一行,一个整数,表示最少需要准备的糖果数量。
样例输入 #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≤n≤10001 \leq n \leq 10001≤n≤1000,1≤ai≤1091 \leq a_i \leq 10^91≤ai≤109。