Logo

GESP C++ 三级 模拟卷2

GESP · 3级 · 2026-06

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

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

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

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

1

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

2

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

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

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

4

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

5

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

6

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

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

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

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;
8

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

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;
9

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

10

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

11

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

12

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

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;
13

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

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;
14

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

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

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

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

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

16

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

17

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

18

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

19

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

20

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

21

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

22

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

23

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

24

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

25

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

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

26
编程操作题 25分

试题名称:回文数判断

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

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

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

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

样例输入 #1

12321

样例输出 #1

Yes

样例输入 #2

12345

样例输出 #2

No
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
已答 0/27