信奥刷题站
GESP 认证 3级2025-12

2025年12月 GESP C++ 3级

题量
27 题
客观题
25 题
建议时长
60 分钟
卷面总分
100 分

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

开始整卷模拟计时作答 · 交卷即时判分 · 错题自动进错题本(需登录)2 道编程大题:在线只判客观题,编程题请自行前往洛谷等 OJ 提交验证

// questions

题目预览

1
单选题2

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

A

14.2514.2514.25

B

13.62513.62513.625

C

13.513.513.5

D

14.514.514.5

2
单选题2

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

A

数组的下标从 000 开始

B

数组在内存中是连续存放的

C

数组的长度只能在运行时才能确定

D

可以在程序中修改数组某个元素的值

3
单选题2

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

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

121212

B

171717

C

333333

D

404040

4
单选题2

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

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

000

B

555

C

120120120

D

111

5
单选题2

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

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

141414

B

151515

C

161616

D

171717

6
单选题2

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

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

111

B

222

C

333

D

444

7
单选题2

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

A

函数必须返回一个值

B

该函数可以嵌套调用

C

调用 min(5) 是错误的,不能通过编译

D

调用 min()(不传任何参数)可以通过编译,结果为 000

8
单选题2

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

A

0∼655350 \sim 65535065535

B

0∼655360 \sim 65536065536

C

−65536∼65535-65536 \sim 655356553665535

D

0∼327670 \sim 32767032767

9
单选题2

以下代码执行后,数组 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];
}
A

{2,1,4,3,6,5}

B

{1,2,3,4,5,6}

C

{3,1,4,2,5,3}

D

{1,3,2,5,4,6}

10
单选题2

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

A

十进制 111111

B

二进制 111111

C

八进制 111111

D

十六进制 111111

11
单选题2

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

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

000

B

−1-11

C

111

D

死循环

12
单选题2

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

A

优秀

B

及格

C

不及格

D

没有输出

13
单选题2

以下代码运行后,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;
    }
}
A

101010

B

111111

C

141414

D

151515

14
单选题2

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

A

abs() 函数可用于计算 int 类型整数的绝对值,头文件为 <cmath><cstdlib>

B

调用 abs(3.14) 可以四舍五入得到 333

C

abs(-1, -2) 的返回值是 111

D

若传入负数浮点数,abs() 会自动截断小数部分后返回整数绝对值

15
单选题2

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

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

GESP

B

HFTR

C

hesp

D

GFUS

16
判断题2

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

17
判断题2

整型变量 aaa 的值为 333,浮点数变量 bbb 的值为 3.53.53.5,在 C++ 编译环境下,经过 a *= b 计算后,aaa 的值变为 10.510.510.5,此时如果输出 aaa,将输出 10.510.510.5

18
判断题2

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

19
判断题2

以下代码输出结果为 888

int a = 5, b = 3;
int c = a++ + ++b;
cout << c << endl;
20
判断题2

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

21
判断题2

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

22
判断题2

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

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

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

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

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

24
判断题2

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

25
判断题2

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

for (int i = 0; i < 5; i++);
{
    cout << "Hello" << endl;
}
GESP 编程操作题
26
编程题25

试题名称:密码强度

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

题目描述

小杨是学校网络安全小组的成员,今天他的任务是设计一个“密码强度检测器”,帮助同学们检查自己的密码是否足够安全。一个安全的密码需要满足以下条件:

  • 密码至少包含 888 个字符(太短的密码容易被猜出来哦!)。
  • 密码至少包含一个大写字母(A、B、C、...、Z 都可以)。
  • 密码至少包含一个数字(0、1、2、3、...、9 都可以)。

例如:

  • 密码 PAs1s2an 是安全密码(有 888 位、包含大写字母 PA 和数字 12)。
  • 密码 ab1da3cd 不是安全密码(没有大写字母)。
  • 密码 Paabdbcd 不是安全密码(没有数字)。
  • 密码 Pa2 不是安全密码(只有 333 位,太短了)。

输入格式

第一行一个正整数 TTT,代表需要安全检测的密码组数。

对于每组密码,一行包含一个字符串,代表需要安全检测的密码。

输出格式

对于每组密码,输出一行,如果满足强度要求输出 Y,否则输出 N。

样例输入 #1

6
PAs1s2an
1a2bCql3
Pa12bsna
ab1da3cd
Paabdbcd
Pa2

样例输出 #1

Y
Y
Y
N
N
N

说明/提示

样例解释

  • 密码 PAs1s2an 是安全密码(有 888 位、包含大写字母 PA 和数字 12)。
  • 密码 1a2bCq13 是安全密码(有 888 位、包含大写字母 C 和数字 123)。
  • 密码 Pa12bsna 是安全密码(有 888 位、包含大写字母 P 和数字 12)。
  • 密码 ab1da5cd 不是安全密码(没有大写字母)。
  • 密码 Paabdbcd 不是安全密码(没有数字)。
  • 密码 Pa2 不是安全密码(只有 333 位,太短了)。

数据范围

对于所有测试点,保证 1≤T≤1001 \leq T \leq 1001T100,并且每组密码长度不超过 100100100 且至少为 111,每组密码仅由大小写字母和数字组成。

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)
27
编程题25

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

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

题目描述

小杨的班级要举办一个环保手工作品展览,老师请小杨去文具店购买 MMM 种不同的文具(例如:铅笔、橡皮、尺子等)。

商店里共有 NNN 件文具,每件文具都有一个种类编号(从 111MMM)和价格。

小杨的预算有限,他想了一个聪明的办法:对于每种文具,他只买最便宜的那一件(如果同种文具有多件价格相同且都是最便宜的,他只会购买其中的一件)。请你帮小杨计算出,买齐这 MMM 种文具一共需要花费多少钱。

输入格式

第一行两个正整数 M,NM, NM,N,代表文具的种类数和总数。

之后 NNN 行,每行两个正整数 KiK_iKiPiP_iPi,分别代表第 iii 件文具的种类编号和它的价格。数据保证每个种类至少有一件文具可供购买。

输出格式

输出一行,代表购买文具的总价。

样例输入 #1

2 5
1 1
1 2
1 1
2 3
2 10

样例输出 #1

4

说明/提示

样例解释

文具清单如下:

  • 文具 1:种类 1,价格 111
  • 文具 2:种类 1,价格 222
  • 文具 3:种类 1,价格 111
  • 文具 4:种类 2,价格 333
  • 文具 5:种类 2,价格 101010

小杨的选择过程:对于种类 1:有三件商品,价格分别为 1,2,11, 2, 11,2,1。其中最便宜的价格是 111。对于种类 2:有两件商品,价格分别为 3,103, 103,10。其中最便宜的价格是 333

计算总价:小杨购买这两类文具的总花费为 1+3=41 + 3 = 41+3=4

数据范围

对于所有测试点,保证 1≤M≤N≤1051 \leq M \leq N \leq 10^51MN1051≤Ki≤M1 \leq K_i \leq M1KiM1≤Pi≤1031 \leq P_i \leq 10^31Pi103

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)