选择题 共15道

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

819 202509GESP C++三级试卷-练习
选择题 共15道
01

执行以下C++代码后, c 的数值是( )。

int a = 10, b = 3;
double c = a / b;
2分
登录后查看选项
02 下列C++表达式的结果为 true 的是( )。 2分
登录后查看选项
03 以下关于C++数组的说法,错误的是( )。 2分
登录后查看选项
04

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

int sum = 0;
for (int i = 1; i <= 5; i += 2) {
	sum += i;
	int sum=0;
}
2分
登录后查看选项
05 要正确定义一个返回两个整数中较大值的函数 max ,应该使用( )。 2分
登录后查看选项
06

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

int arr[4] = {1, 2, 3};
arr[3] = arr[0] + arr[2];
2分
登录后查看选项
07 以下关于C++函数的描述,正确的是( )。 2分
登录后查看选项
08

以下C++代码 count++ 执行的次数是( )。

int i = 10;
int count=0;
while (i > 0) {
	i -= 3;
	continue;
	count++;
}
2分
登录后查看选项
09

以下C++代码段的输出是( )。

for (int i = 0; i < 4; i++) {
	for (int j = 0; j <= i; j++) {
		cout << j;
	}
	cout << "#";
}
2分
登录后查看选项
10

以下关于C++变量作用域的说法,错误的是( )。

2分
登录后查看选项
11

关于以下代码的说法正确的是( )。

int reversed = 0;
while (x != 0) {
	int digit = x % 10;
	x /= 10;
	reversed = reversed * 10 + digit;
}
2分
登录后查看选项
12

以下C++代码试图查找数组中的最大值,划线处应填入( )。

#include <iostream>
using namespace std;
int findMax(int arr[], int size) {
	int maxVal = ________; // 划线处
	for (int i = 1; i < size; i++) {
		if (arr[i] > maxVal) {
			maxVal = arr[i];
		}
	}
	return maxVal;
}
2分
登录后查看选项
13

以下关于C++函数的说法,正确的是( )。

2分
登录后查看选项
14

以下C++代码中存在几处错误( )。

#include <iostream>
using namespace std;
int main() {
	const int SIZE = 5;
	int arr[SIZE];
	for (int i = 0; i <= SIZE; i++) {
		arr[i] = i * 2;
	}
	cout << arr[SIZE] << endl;
	return 0;
}
2分
登录后查看选项
15

以下关于C++中 string 类和字符数组( char[] )的说法,错误的是( )。

2分
登录后查看选项
判断题 共10道
16 表达式 sizeof('a') 的结果总是 1 ,因为 'a' 是一个字符。 2分
登录后查看选项
17 在C++中,所有全局变量如果没有显式初始化,都会被自动初始化为0。 2分
登录后查看选项
18

do { ... } while (false); 循环体内的语句至少会被执行一次。

2分
登录后查看选项
19

在C++中, ++i 是一个左值表达式,而 i++ 是一个右值表达式。

2分
登录后查看选项
20

对于 enum Color { RED, GREEN, BLUE }; , RED 的类型是 int

2分
登录后查看选项
21

#define SQUARE(x) x * x 是一个安全的宏定义, SQUARE(2+3) 会正确计算出 25 。

2分
登录后查看选项
22

在C++中, char 类型的取值范围总是 -128 到 127。

2分
登录后查看选项
23

表达式 a > b ? a : b = 10; 一定是合法的C++代码。

2分
登录后查看选项
24

#include "file.h" 和 #include <file.h> 在编译器查找头文件时的搜索策略是完全相同的。

2分
登录后查看选项
25

在同一个作用域内, extern 声明的变量可以多次定义。

2分
登录后查看选项
编程题 共2道
26

数组清零

时间限制:1.0 s

内存限制:512.0 MB

题目描述

小A有一个由n个非负整数构成的数组 a=[a1,a2,…,an]。他会对数组 a 重复进行以下操作,直到数组 a 只包含 0。在一次操作中,小A会依次完成以下三个步骤:

  1. 在数组 a 中找到最大的整数,记其下标为k。如果有多个最大值,那么选择其中下标最大的。
  2. 从数组 a 所有不为零的整数中找到最小的整数 aj。
  3. 将第一步找出的 ak 减去 aj

例如,数组 a=[2,3,4] 需要7次操作变成 [0,0,0]:

[2,3,4]→ [2,3,2]→ [2,1,2]→ [2,1,1]→ [1,1,1]→ [1,1,0]→ [1,0,0] → [0,0,0]

小A想知道,对于给定的数组 a,需要多少次操作才能使得a中的整数全部变成 0。可以证明,a 中整数必然可以在有限次操作后全部变成0。你能帮他计算出答案吗?


输入格式

第一行,一个正整数 n,表示数组 a 的长度。

第二行,几个非负整数 a1,a2,..,an,表示数组 a中的整数。

输出格式

一行,一个正整数,表示 中整数全部变成 所需要的操作次数。


样例

输入样例 1

3

2 3 4

输出样例1

7

输入样例 2

5

1 3 2 2 5

输出样例2

13


数据范围

对于所有测试点,保证 1≤n≤100, 0≤ai≤100。

25分
登录后作答
27

日历制作

时间限制:1.0 s

内存限制:512.0 MB

题目描述

小 A 想制作 2025 年每个月的日历。他希望你能编写一个程序,按照格式输出给定月份的日历。

具体来说,第一行需要输出 MON TUE WED THU FRI SAT SUN ,分别表示星期一到星期日。接下来若干行中依次输出这个月所包含的日期,日期的个位需要和对应星期几的缩写最后一个字母对齐。例如,2025 年 9 月 1 日是星期一,在输出九月的日历时,1 号的个位 1 就需要与星期一 MON 的最后一个字母 N 对齐。九月的日历输出效果如下:

MON TUE WED THU FRI SAT SUN
  1   2   3   4   5   6   7
  8   9  10  11  12  13  14
 15  16  17  18  19  20  21
 22  23  24  25  26  27  28
 29  30

你能帮助小 A 完成日历的制作吗?


输入格式

一行,一个正整数 ,表示需要按照格式输出 2025 年 m 月的日历。

输出格式

输出包含若干行,表示 2025 年 m 月的日历。


样例

输入样例 1

9

输出样例1

MON TUE WED THU FRI SAT SUN
  1   2   3   4   5   6   7
  8   9  10  11  12  13  14
 15  16  17  18  19  20  21
 22  23  24  25  26  27  28
 29  30

输入样例 2

6

输出样例2

MON TUE WED THU FRI SAT SUN
                          1
  2   3   4   5   6   7   8
  9  10  11  12  13  14  15
 16  17  18  19  20  21  22
 23  24  25  26  27  28  29
 30



数据范围

对于所有测试点,保证 1≤m≤12。

25分
登录后作答