信奥刷题站
GESP 认证 3级2026-06

GESP C++ 三级 模拟卷2

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

GESP C++ 三级模拟卷2(数据编码、进制转换、位运算、字符串处理、数组模拟、枚举法与模拟法)

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

// questions

题目预览

1
单选题2

表达式 (5 | 3) 的值是( )

A

7

B

8

C

1

D

5

2
单选题2

执行以下代码后,输出的结果是( )

string s = "hello";
cout << s.find("e");
A

0

B

1

C

2

D

-1

3
单选题2

释放 int *p = new int[10]; 所分配内存的正确方式是( )

A

delete p;

B

free(p);

C

delete[] p;

D

p = NULL;

4
单选题2

二进制数 101101 转换为十进制数是( )

A

47

B

46

C

45

D

44

5
单选题2

十进制数 -3 的 8 位二进制补码表示为( )

A

10000011

B

11111100

C

11111101

D

00000011

6
单选题2

执行以下枚举算法代码,输出的结果是( )

int cnt = 0;
for (int a = 1; a <= 9; a++) {
    for (int b = 0; b <= 9; b++) {
        if (a * b == 24) cnt++;
    }
}
cout << cnt;
A

2

B

4

C

6

D

8

7
单选题2

执行以下代码后,输出的结果是( )

string s = "Hello World";
int cnt = 0;
for (int i = 0; i < s.length(); i++) {
    if (s[i] >= 'a' && s[i] <= 'z') cnt++;
}
cout << cnt;
A

8

B

7

C

9

D

10

8
单选题2

执行以下代码后,输出的结果是( )

int a[5] = {2, 4, 6, 8, 10};
int s = 0;
for (int i = 0; i < 5; i++) {
    if (i % 2 == 0) s += a[i];
}
cout << s;
A

12

B

18

C

20

D

30

9
单选题2

8 位二进制补码 11111001 表示的十进制数是( )

A

-6

B

-8

C

-9

D

-7

10
单选题2

表达式 (12 ^ 5) 的值是( )

A

7

B

8

C

9

D

17

11
单选题2

将十进制数 255 转换为十六进制数是( )

A

AF

B

EF

C

FF

D

FE

12
单选题2

执行以下代码后,输出的结果是( )

int a[6] = {0};
for (int i = 1; i <= 5; i++) {
    for (int j = i; j <= 5; j++) {
        a[j]++;
    }
}
int s = 0;
for (int i = 1; i <= 5; i++) {
    s += a[i];
}
cout << s;
A

10

B

15

C

20

D

25

13
单选题2

执行以下代码后,输出的结果是( )

int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
int s = 0;
for (int i = 0; i < 8; i++) {
    if (a[i] % 2 == 1) s++;
}
cout << s;
A

3

B

5

C

8

D

4

14
单选题2

执行以下代码后,输出的结果是( )

int cnt = 0;
for (int i = 1; i <= 50; i++) {
    if (i % 3 == 0 && i % 5 == 0) cnt++;
}
cout << cnt;
A

2

B

3

C

4

D

5

15
单选题2

执行以下代码后,变量 a 的值是( )

int a = 0, b = 1, c;
for (int i = 1; i <= 4; i++) {
    c = a + b;
    a = b;
    b = c;
}
cout << a;
A

1

B

2

C

3

D

5

16
判断题2

二进制数 1010 转换为十进制数是 10。( )

17
判断题2

C++ 中 string 类型的 find() 函数在找不到子串时返回 0。( )

18
判断题2

C++ 中 deletedelete[] 不能互换使用。( )

19
判断题2

一维数组在内存中占用连续的存储空间。( )

20
判断题2

使用 new 分配的动态数组,大小在分配后不能再改变。( )

21
判断题2

在 C++ 中,表达式 (7 & 3) 的值为 3。( )

22
判断题2

枚举法在问题规模较大时,可能会因为需要验证的情况过多而效率较低。( )

23
判断题2

十六进制数 2F 转换为十进制数的结果是 47。( )

24
判断题2

在 C++ 中,定义数组 int a[10]; 后,可以使用 a[10] = 5; 对数组元素赋值。( )

25
判断题2

使用 new 关键字分配的内存位于堆(heap)上。( )

GESP 编程操作题
26
编程题25

试题名称:回文数判断

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

给定一个正整数 N,请判断它是否是回文数。回文数是指正读和反读都一样的数。

输入格式 一行,一个正整数 N(1 ≤ N ≤ 10⁹)。

输出格式 如果是回文数,输出 Yes;否则输出 No

样例输入 #1

12321

样例输出 #1

Yes

样例输入 #2

12345

样例输出 #2

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

试题名称:数组循环右移

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

给定 N 个整数和一个非负整数 K,将数组中的每个元素向右循环移动 K 个位置。右边的元素移出后从左边重新进入。

例如:数组 [1, 2, 3, 4, 5],K=2,结果为 [4, 5, 1, 2, 3]

输入格式 第一行,两个整数 N 和 K(1 ≤ N ≤ 1000,0 ≤ K ≤ 10⁹)。 第二行,N 个整数,每个整数的绝对值不超过 10000,数之间用空格分隔。

输出格式 一行,N 个整数,表示循环右移 K 位后的数组,数之间用一个空格分隔。

样例输入 #1

5 2
1 2 3 4 5

样例输出 #1

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