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
题目描述
数据在传输过程中可能出错,因此接收⽅收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验⽅式
之⼀。
给定 个⾮负整数 代表所传输的数据,它们的校验码取决于这些整数在⼆进制下 的数量之和的奇偶
性。如果这些整数在⼆进制下共有奇数个 ,那么校验码为 ;否则校验码为 。你能求出这些整数的校验码吗?
输入格式
第⼀⾏,⼀个正整数 ,表⽰所传输的数据量。
第⼆⾏, 个⾮负整数 ,表⽰所传输的数据。
输出格式
输出⼀⾏,两个整数,以⼀个空格分隔:
第⼀个整数表⽰ 在⼆进制下 的总数量;
第⼆个整数表⽰校验码(0或1)。
数据范围
对于所有测试点,保证 , 。
试题名称:分糖果
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
有 位⼩朋友排成⼀队等待⽼师分糖果。第 位⼩朋友想要⾄少 颗糖果,并且分给他的糖果数量必须⽐分给前⼀
位⼩朋友的糖果数量更多,不然他就会不开⼼。
⽼师想知道⾄少需要准备多少颗糖果才能让所有⼩朋友都开⼼。你能帮帮⽼师吗?
输入格式
第⼀⾏,⼀个正整数 ,表⽰⼩朋友的⼈数。
第⼆⾏, 个正整数 ,依次表⽰每位⼩朋友⾄少需要的糖果数量。
输出格式
输出⼀⾏,⼀个整数,表⽰最少需要准备的糖果数量。
数据范围
对于所有测试点,保证 , 。