Logo

2025年12月 GESP C++ 3级

GESP · 3级 · 2025-12

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

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

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

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

1

请将二进制数 ,转换为等值的10进制数( )

2

以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )

3

下列代码段执行后,变量 sum 的值是( )

{
    int sum = 0;
    for (int i = 1; i <= 10; i++) {
        if (i % 3 == 8>>2)
        continue;
        sum += i;
    }
}
4

执行以下程序段,输出值是( )

int x = 5;
if (x == 3 >> 2) x = 8 >> 3;
cout << x << endl;
5

已知字符串 s = "C++ Programming",下列程序运行的结果是( )

cout << (int)(s.length() | 3) << endl;
6

以下代码是一个程序的部分代码,能够正确执行,输出的结果是( )

int arr[5] = {1, 2, 3, 4, 5};
int p = arr[1];
cout << (p + 2) << endl;
7

以下关于 C++ 求最小值函数 min() 的描述,不正确的是( )

8

在一个特定的计算机系统中,假如 unsigned int 类型需要占用2个字节的存储空间(每个字节有8位),
则 unsigned int 可以表⽰的数据范围是( )

9

以下代码执行后,数组 arr 的内容是( )

int arr[6] = {1, 2, 3, 4, 5, 6};
for (int i = 0; i < 6; i += 2) {
    arr[i] = arr[i] + arr[i+1];
    arr[i+1] = arr[i] - arr[i+1];
    arr[i] = arr[i] - arr[i+1];
}
10

a & b | (c ^ d),其中 a = 3, b = 7, c = 15, d = 4,计算结果是( )

11

整型变量 x 的初始值为 10,以下代码的输出结果是( )

int t = x--;
t -= x;
cout << t << endl;
12

根据下面的流程图,如果成绩 score 输入 60,输出的结果是( )

13

以下代码运行后,sum 的结果是( )

int arr[5] = {2, 4, 6, 8, 10};
int sum = 0;
for (int i = 0; i < 5; i++) {
    switch (arr[i] % (1|2)) {
        case 0: sum += 1; break;
        case 1: sum += 2; break;
        case 2: sum += 3; break;
    }
}
14

以下关于 C++ 中 abs() 函数的描述,正确的是( )

15

如果字符串 s 的值是 GESP,以下代码 s 的最后结果是( )

for (int i = 0; i < s.length(); i++) {
    s[i] = toupper(s[i] + i);
}

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

16

在 C++ 中,数组名不能改变,数组名不能被赋值。

17

整型变量 a 的值为 3,浮点数变量 b 的值为 3.5,在 C++ 编译环境下,经过 a *= b 计算后,a 的
值变为 10.5,此时如果输出 a,将输出 10.5。

18

strcmp(str1, str2) 返回 0 表⽰ str1 大于 str2,返回正数表⽰两者相等。

19

以下代码输出结果为 8。

int a = 5, b = 3;
int c = a++ + ++b;
cout << c << endl;
20

位运算符 &、|、^、~ 的优先级高于算术运算符 +、-、*、/。

21

在 C++ 中,int a[] = {1, 2, 3, 4, 5}; 可以定义一个包含 5 个元素的整型数组。

22

C++ 表达式 z = a > b ? x : y 等同于:

if (a > b) {
    z = x;
} else {
    z = y;
}

以下代码执行后,输出将会是 2。

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    cout << arr[3 > 2 ? 1 : 2] << endl;
    return 0;
}
23

在 C++ 中,++ 和 -- 运算符只能用于整型变量,不能用于浮点数变量。

24

给定一个正整数 a,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫
描,遇到第一个 1 之后,将找到的第一个 1 左边的所有位都取反,能得到 -a 的补码。

25

以下代码中,Hello 将被输出5次。

for (int i = 0; i < 5; i++);
{
    cout << "Hello" << endl;
}

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

26
编程操作题 25分

试题名称:密码强度

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

题目描述

⼩杨是学校⽹络安全⼩组的成员,今天他的任务是设计⼀个“密码强度检测器”,帮助同学们检查⾃⼰的密码是否⾜
够安全。⼀个安全的密码需要满⾜以下条件:
密码⾄少包含8个字符(太短的密码容易被猜出来哦!)。
密码⾄少包含⼀个⼤写字母(A、B、C、...、Z 都可以)。
密码⾄少包含⼀个数字(0、1、2、3、...、9 都可以)。
例如:
密码 PAs1s2an 是安全密码(有8位、包含⼤写字母 P、A 和数字 1、2)。
密码 ab1da3cd 不是安全密码(没有⼤写字母)。
密码 Paabdbcd 不是安全密码(没有数字)。
密码 Pa2 不是安全密码(只有3位,太短了)。

输入格式

第⼀⾏⼀个正整数 ,代表需要安全检测的密码组数。
对于每组密码,⼀⾏包含⼀个字符串,代表需要安全检测的密码。

输出格式

对于每组密码,输出⼀⾏,如果满⾜强度要求输出 Y,否则输出 N。

数据范围

对于所有测试点,保证 ,并且每组密码长度不超过 且⾄少为 ,每组密码仅由⼤⼩写字母和数字组
成。

27
编程操作题 25分

试题名称:⼩杨的智慧购物

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

题目描述

⼩杨的班级要举办⼀个环保⼿⼯作品展览,⽼师请⼩杨去⽂具店购买 种不同的⽂具(例如:铅笔、橡⽪、尺⼦
等)。
商店⾥共有 件⽂具,每件⽂具都有⼀个种类编号(从 到 )和价格。
⼩杨的预算有限,他想了⼀个聪明的办法:对于每种⽂具,他只买最便宜的那⼀件(如果同种⽂具有多件价格相同
且都是最便宜的,他只会购买其中的⼀件)。请你帮⼩杨计算出,买齐这 种⽂具⼀共需要花费多少钱。

输入格式

第⼀⾏两个正整数 ,代表⽂具的种类数和总数。
之后 ⾏,每⾏两个正整数 和 ,分别代表第 件⽂具的种类编号和它的价格。数据保证每个种类⾄少有⼀件
⽂具可供购买。

输出格式

输出⼀⾏,代表购买⽂具的总价。

数据范围

对于所有测试点,保证 。

已答 0/27