GESP 2025年9月_C++三级试卷

从PDF导入:GESP 2025年9月_C++三级试卷

C++ 120分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
执行以下C++代码后,c的数值是( )

A. 3.33333
B. 3.333
C. 3.0
D. 3.3
第2题 中级 2.0分 单选
下列C++表达式的结果为true的是( )
A. (5 <= 5) && (7 < 5)
B. !(10 > 5)
C. (10 != 10) || (5 >= 3)
D. (5 == 3) && (4 > 2)
第3题 中级 2.0分 单选
以下关于C++数组的说法,错误的是( )
A. 数组的下标通常从0开始。
B. int arr[5]; 声明了一个包含5个整数的数组。
C. 数组的大小必须在编译时确定,不能使用变量定义大小。
D. 可以通过arr[5]来访问int arr[5];数组的最后一个元素。
第4题 中级 2.0分 单选
执行以下C++代码后,变量sum的值是( )

A. 6
B. 9
C. 15
D. 死循环
第5题 中级 2.0分 单选
要正确定义一个返回两个整数中较大值的函数max,应该使用( )
A. void max(int a, int b) { return a > b ? a : b; }
B. int max(int a, int b) { if (a > b) return a; else return b; }
C. int max(a, b) { if (a > b) return a; else return b; }
D. void max(a, b) { cout << (a > b ? a : b); }
第6题 中级 2.0分 单选
执行以下C++代码后,数组arr的内容是( )

A. {1, 2, 3, 3}
B. {1, 2, 3, 4}
C. {1, 2, 3, 5}
D. {1, 2, 3, 6}
第7题 中级 2.0分 单选
以下关于C++函数的描述,正确的是( )
A. 函数必须要有参数。
B. 函数通过return语句只能返回一个值。但是可以通过很多间接的方式返回多个值。
C. main函数可以被其他函数调用。
D. 函数的定义可以直接嵌套,即一个函数内部可以真正定义另一个函数。
第8题 中级 2.0分 单选
以下C++代码count++执行的次数是( )

A. 2
B. 3
C. 4
D. 0
第9题 中级 2.0分 单选
以下C++代码段的输出是( )

A. 0#01#012#0123#
B. 1#12#123#1234#
C. 0#1#2#3#
D. 0#01#012#01243#
第10题 中级 2.0分 单选
以下关于C++变量作用域的说法,错误的是( )
A. 在for循环语句中声明的变量,其作用域仅限于该循环体内。
B. 在函数内部声明的变量(局部变量),仅在函数内部有效。
C. 在所有函数外部声明的变量,在整个程序中都有效。
D. 不同函数中的局部变量可以同名,它们代表不同的内存单元
第11题 中级 2.0分 单选
关于以下代码的说法正确的是( )

A. 能够反转任何位数的整数
B. 能够反转的最大位数正整数是2147483647
C. 能够反转的最大位数正整数是2147483648
D. 能够反转的最大位数正整数是1463847412
第12题 中级 2.0分 单选
以下C++代码试图查找数组中的最大值,划线处应填入( )

A. 0
B. arr[-1]
C. arr[0]
D. size
第13题 中级 2.0分 单选
以下关于C++函数的说法,正确的是( )
A. 函数参数传递只有值传递一种方式。
B. 函数的形参在函数调用结束后依然占用内存空间
C. 没有返回值的函数必须声明为void类型,且不能包含return语句
D. C++11及之后标准要求函数必须显式声明返回类型,不允许默认返回int
第14题 中级 2.0分 单选
以下C++代码中存在几处错误( )

A. 0处
B. 1处
C. 2处
D. 3处
第15题 中级 2.0分 单选
以下关于C++中string类和字符数组(char[])的说法,错误的是( )
A. string对象可以使用=进行赋值,而字符数组需要使用strcpy。
B. string对象的长度可以使用length()成员函数获取,而字符数组需要使用strlen()函数。
C. string对象在内存中是动态分配空间的,因此可以自动处理字符串长度的变化。
D. string对象和字符数组都可以使用==运算符来直接比较两个字符串的内容是否相同。
第16题 中级 2.0分 判断
表达式sizeof('a')的结果总是1,因为'a'是一个字符。( )
T. 正确
F. 错误
第17题 中级 2.0分 判断
在C++中,所有全局变量如果没有显式初始化,都会被自动初始化为0。( )
T. 正确
F. 错误
第18题 中级 2.0分 判断
do { ... } while (false); 循环体内的语句至少会被执行一次。( )
T. 正确
F. 错误
第19题 中级 2.0分 判断
在C++中,++i是一个左值表达式,而i++是一个右值表达式。( )
T. 正确
F. 错误
第20题 中级 2.0分 判断
对于enum Color { RED, GREEN, BLUE };,RED的类型是int( )
T. 正确
F. 错误
第21题 中级 2.0分 判断
#define SQUARE(x) x * x 是一个安全的宏定义,SQUARE(2+3)会正确计算出25。( )
T. 正确
F. 错误
第22题 中级 2.0分 判断
在C++中,char类型的取值范围总是-128到127。( )
T. 正确
F. 错误
第23题 中级 2.0分 判断
表达式a > b ? a : b = 10; 一定是合法的C++代码。( )
T. 正确
F. 错误
第24题 中级 2.0分 判断
#include "file.h"和#include <file.h>在编译器查找头文件时的搜索策略是完全相同的。( )
T. 正确
F. 错误
第25题 中级 2.0分 判断
在同一个作用域内,extern声明的变量可以多次定义。( )
T. 正确
F. 错误
第26题 中级 25.0分 编程
数组清零

时间限制:1.0 s 内存限制:512.0 MB 小A有一个由n个非负整数构成的数组A。他会对数组A重复进行以下操作,直到数组A只包含0。在一次操作中,小A会依次完成以下三个步骤: 1). 在数组A中找到最大的整数,记其下标为idx。如果有多个最大值,那么选择其中下标最大的。 2). 从数组A所有不为零的整数中找到最小的整数mn。 3). 将第一步找出的A[idx]减去mn。 小A想知道,对于给定的数组A,需要多少次操作才能使得A中的整数全部变成0。可以证明,A中整数必然可以在有限次操作后全部变成0。你能帮他计算出答案吗?

【输入格式】
第一行,一个正整数n,表示数组A的长度。
第二行,n个非负整数,表示数组A中的整数。
【输出格式】
一行,一个正整数,表示A中整数全部变成0所需要的操作次数。
【样例输入1】

3
2 3 4
【样例输出1】

7
【样例输入2】

5
1 3 2 2 5
【样例输出2】

13
第27题 中级 25.0分 编程
日历制作

时间限制:1.0 s 内存限制:512.0 MB 小A想制作2025年每个月的日历。他希望你能编写一个程序,按照格式输出给定月份的日历。 具体来说,第一行需要输出MON TUE WED THU FRI SAT SUN,分别表示星期一到星期日。接下来若干行中依次输出这个月所包含的日期,日期的个位需要和对应星期几的缩写最后一个字母对齐。例如,2025年9月1日是星期一,在输出九月的日历时,1号的个位1就需要与星期一MON的最后一个字母N对齐。九月的日历输出效果如下:

【输入格式】
<img src="/static/uploads/images/49d7e69cfa.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
一行,一个正整数m,表示需要按照格式输出2025年m月的日历。
【输出格式】
输出包含若干行,表示2025年m月的日历。
【样例输入1】

9
【样例输出1】

<img src="/static/uploads/images/6249a2f17e.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
【样例输入2】

6
【样例输出2】

<img src="/static/uploads/images/f66d6c7a2c.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
💬