Logo

GESP C++ 三级 模拟卷1

GESP · 3级 · 2026-06

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

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

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

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

1

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

2

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

string s = "abc123";
cout << s.length();
3

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

4

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

int s = 0;
for (int i = 1; i <= 5; i++) {
    s += i * i;
}
cout << s;
5

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

6

以下问题最适合使用枚举法解决的是( )

7

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

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

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

int add(int a, int b = 3) {
    return a + b;
}
int main() {
    cout << add(4);
    return 0;
}
9

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

int x = 5, y = 8;
int *p = &x;
*p = y;
cout << x;
10

表达式 (8 >> 1) 的值是( )

11

已知字符 'A' 的 ASCII 码为 65,以下代码的输出结果是( )

char c = 'C';
cout << (int)c;
12

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

int sum = 0;
for (int i = 1; i <= 8; i++) {
    if (i % 3 == 0) continue;
    sum += i;
}
cout << sum;
13

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

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

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

string s = "Hello, World!";
cout << s.find("World");
15

十六进制数 A3 转换为十进制数是( )

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

16

在 C++ 中,int 类型的变量可以存储小数部分。( )

17

C++ 中数组的下标是从 1 开始的。( )

18

break 语句可以在 switch 语句中使用。( )

19

位运算符 | 表示逻辑或运算。( )

20

函数可以定义为 void 类型,即不返回任何值。( )

21

string 类型的 length() 方法返回字符串中字符的个数。( )

22

continue 语句的作用是跳过当前循环的剩余部分,直接进入下一次循环。( )

23

表达式 10 / 3 在 C++ 中的值为 3.333。( )

24

一维数组的数组名可以隐式转换为指向数组首元素的指针。( )

25

表达式 (3 < 5) && (2 > 4) 的值为 true。( )

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

26
编程操作题 25分

试题名称:统计质数

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

给定 N 个正整数,请统计其中质数(素数)的个数。

质数定义:大于 1 的自然数,且只能被 1 和它本身整除。

输入格式
第一行,一个正整数 N(1 ≤ N ≤ 100)。
第二行,N 个正整数,每个数不超过 10000,数之间用空格分隔。

输出格式
一行,一个整数,表示质数的个数。

样例输入 #1

5
7 10 13 4 17

样例输出 #1

3

说明/提示
5个数中:7是质数,10不是,13是质数,4不是,17是质数,共3个。

27
编程操作题 25分

试题名称:开关灯问题

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

有 N 盏灯,编号为 1 到 N,初始时全部关闭(熄灭)。按顺序进行 K 次操作,第 i 次操作(i 从 1 到 K)将所有编号为 i 的倍数的灯进行反向操作(开变成关,关变成开)。求最终亮着的灯的数量。

输入格式
一行,两个正整数 N 和 K(1 ≤ N ≤ 1000,1 ≤ K ≤ N)。

输出格式
一行,一个整数,表示最终亮着的灯的数量。

样例输入 #1

5 3

样例输出 #1

2

说明/提示
初始:全部熄灭。第1次操作(i=1):所有编号为1的倍数的灯(1~5全部)反向 → 全部点亮。第2次操作(i=2):编号2,4反向 → 灯1亮,2灭,3亮,4灭,5亮。第3次操作(i=3):编号3反向 → 灯1亮,2灭,3灭,4灭,5亮。最终亮着的灯:1和5,共2盏。

已答 0/27