林老师 · 客观题题库 · GESP 四级 · 2025 真题
GESP 四级 · 2025 真题
四级 · 2025 真题 · 客观题 · 每题 2 分
真题 复刻
试卷编号OBJ-759034
题目总数25 题 · 50 分
试卷类型客观题
考生须知:
① 本卷为客观题单卷,合计 25 题 · 50 分 ,全部为客观题;
② 试卷右上角设有 「提交答卷」 与 「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。
当前筛选下没有题目
壹
客 观 题
25 QUESTIONS · 2 POINTS EACH
第 1 题
单选
☆
⧉
未作答
关于下述代码,说法错误的是( )。
01 int multiply(int x, int y);
02
03 int main() {
04 int a = 4;
05 int b = 5;
06 int result = multiply(a, b);
07 std::cout << "The result is: " << result << std::endl;
08 return 0;
09 }
10
11 int multiply(int x, int y) {
12 return x * y;
13 }
(2 分)
A 函数 multiply 的定义应该放到函数 main 之前。
B 函数声明 int multiply(int x, int y); 中明确指定了函数 multiply() 的返回值为整数类型。
C 在 main 函数中,函数 multiply 通过 multiply(a, b) 被调用,其中 a 和 b 是定义在 main 函数中的变量,它们作为实参传递给了 multiply 函数的形参 x 和 y。
D 运行上述代码,将输出 The result is: 20。
GESP 四级 2025-03 · 单选 第1题 | 知识点 函数定义与调用、形参与实参
第 2 题
单选
☆
⧉
未作答
执行下述代码将输出( )。
01 int x = 10;
02 void func() { int x = 20; std::cout << x; }
03 int main() {
04 func();
05 std::cout << x;
06 return 0;
07 }
(2 分)
GESP 四级 2025-03 · 单选 第2题 | 知识点 作用域、程序阅读与输出推断
第 3 题
单选
☆
⧉
未作答
执行下述代码后,变量 a 的值为( )。
01 int a = 10;
02 int * p = &a;
03 *p = 20
(2 分)
GESP 四级 2025-03 · 单选 第3题 | 知识点 指针、程序阅读与输出推断
第 4 题
单选
☆
⧉
未作答
(2 分)
A 只能用值传递
B 只能用引用传递
C 只能用指针传递
D 引用传递和指针传递均可
GESP 四级 2025-03 · 单选 第4题 | 知识点 值传递与引用传递、指针
第 5 题
单选
☆
⧉
未作答
执行下述代码,将输出( )。
01 void swap(int a, int &b) {
02 int temp = a;
03 a = b;
04 b = temp;
05 }
06 int main() {
07 int x = 1, y = 2;
08 swap(x, y);
09 std::cout << x << y;
10 return 0;
11 }
(2 分)
GESP 四级 2025-03 · 单选 第5题 | 知识点 值传递与引用传递、引用、程序阅读与输出推断
第 6 题
单选
☆
⧉
未作答
下面的描述中,( )正确定义一个名为 Person 的结构体并正确初始化了一个 Person 结构体的变量 p。
(2 分)
A
01 struct Person {
02 string name;
03 int age;
04 };
05 Person p("Yang" , 10);
B
01 struct Person {
02 string name,
03 int age;
04 };
05 Person p;
06 p.name = "Yang" ;
07 p.age = 10;
C
01 struct Person {
02 string name;
03 int age;
04 };
05 Person p = { "Yang" , 10 };
D
01 struct Person {
02 string name;
03 int age;
04 };
05 Person p = new Person("Yang" , 10);
GESP 四级 2025-03 · 单选 第6题 | 知识点 结构体、常量与变量
第 7 题
单选
☆
⧉
未作答
给定如下代码,下面描述错误的是( )。
01 struct Person {
02 std::string name;
03 int age;
04 struct Address {
05 std::string street;
06 std::string city;
07 };
08 Address address;
09 };
(2 分)
A 结构 Person 内嵌套结构 Address
B Person 有一个 Address 类型的 address 成员
C 一个 Person 类型的变量 p 的 address 的初始化可以写成:
p.address.street = "123 Main St"; p.address.city = "Anytown";
D 结构的嵌套可以减少命名冲突,因此可以不必控制嵌套层次
GESP 四级 2025-03 · 单选 第7题 | 知识点 结构体、类与对象
第 8 题
单选
☆
⧉
未作答
假设 int arr[2][3] = {{1,2,3},{4,5,6}};,则 arr[1][2] 的值是( )。
(2 分)
GESP 四级 2025-03 · 单选 第8题 | 知识点 二维数组、一维数组
第 9 题
单选
☆
⧉
未作答
(2 分)
A int arr[3,4];
B int arr[3][4];
C int arr(3,4);
D int a[3-4];
GESP 四级 2025-03 · 单选 第9题 | 知识点 二维数组、一维数组
第 10 题
单选
☆
⧉
未作答
小杨正在爬楼梯,需要爬 n n n 阶才能到达楼顶。如果每次可以爬 1 1 1 个或 2 2 2 个台阶,下面代码采用递推算法来计算一共有多少种不同的方法可以爬到楼顶,则横线上应填写( )。
01 int f(int n) {
02 if (n == 1 || n == 2)
03 return n;
04
05 int f1 = 1;
06 int f2 = 2;
07 int res = 0;
08 for (int i = 3; i <= n; i++) {
09 ____________ // 在此处填入代码
10 }
11 return res;
12 }
(2 分)
A
res += f1 + f2;
f1 = f2;
f2 = res;
B
res = f1 + f2;
f1 = f2;
f2 = res;
C
res += f1 + f2;
f2 = res;
f1 = f2;
D
res = f1 + f2;
f2 = res;
f1 = f2;
GESP 四级 2025-03 · 单选 第10题 | 知识点 递推、程序补全、for循环
第 11 题
单选
☆
⧉
未作答
给定如下算法,其时间复杂度为( )。
01 bool f(int arr[], int n, int target) {
02 for (int i = 0; i < (1 << n); i++) {
03 int sum = 0;
04 for (int j = 0; j < n; j++) {
05 if (i & (1 << j)) {
06 sum += arr[j];
07 }
08 }
09 if (sum == target) return true ;
10 }
11 return false ;
12 }
(2 分)
A O ( n 2 ) O(n^2) O ( n 2 )
B O ( n × 2 n ) O(n \times 2^n) O ( n × 2 n )
C O ( 1 ) O(1) O ( 1 )
D O ( n 3 ) O(n^3) O ( n 3 )
GESP 四级 2025-03 · 单选 第11题 | 知识点 时间复杂度、移位运算
第 12 题
单选
☆
⧉
未作答
(2 分)
A 稳定性指算法的时间复杂度恒定
B 稳定排序保证相同元素的相对顺序不变
C 选择排序是稳定排序
D 插入排序不是稳定排序
GESP 四级 2025-03 · 单选 第12题 | 知识点 排序稳定性、选择排序
第 13 题
单选
☆
⧉
未作答
对数组 arr[]={5, 3, 8, 1} 进行升序排序,执行第一轮冒泡排序后数组 arr 中的内容为( )。
(2 分)
A 3, 5, 1, 8
B 3, 1, 5, 8
C 3, 5, 8, 1
D 5, 3, 8, 1
GESP 四级 2025-03 · 单选 第13题 | 知识点 冒泡排序、模拟
第 14 题
单选
☆
⧉
未作答
运行下面的代码,将出现( )。
01 double hmean(double a, double b) {
02 if (a == -b )
03 throw runtime_error("Runtime error occurred." );
04 return 2.0*a*b/(a + b);
05 }
06
07 int main() {
08 double x = 10;
09 double y = -10;
10
11 try {
12 int result = hmean(x, y);
13 cout << "hmean: " << result << endl;
14 }
15 catch (const runtime_error& e) {
16 cout << "Caught: " << e.what() << endl;
17 } catch (...) {
18 cout << "Caught an unknown exception." << endl;
19 }
20 return 0;
21 }
(2 分)
A 屏幕上输出 Caught: Runtime error occurred.
B 屏幕上输出 Caught an unknown exception.
C 程序调用 std::terminate()
D 编译错误
GESP 四级 2025-03 · 单选 第14题 | 知识点 异常处理、程序阅读与输出推断
第 15 题
单选
☆
⧉
未作答
下面哪种方式不能实现将字符串 "Happy Spring!" 输出重定向到文件 log.txt( )。
(2 分)
A
freopen("log.txt", "w", stdout);
cout << "Happy Spring!" << endl;
fclose(stdout);
B
01 std::ofstream outFile("log.txt" );
02 outFile << "Happy Spring!" << endl;
03 outFile.close();
C
01 std::ofstream outFile("log.txt" );
02 cout << "Happy Spring!" << endl;
03 outFile.close();
D
ofstream log_file("log.txt");
streambuf* org_cout = cout.rdbuf();
cout.rdbuf(log_file.rdbuf());
cout << "Happy Spring!" << endl;
cout.rdbuf(org_cout);
GESP 四级 2025-03 · 单选 第15题 | 知识点 文件读写、cin与cout
第 16 题
判断
☆
⧉
未作答
函数是 C++ 中的核心概念,用于封装可重用的代码块。
(2 分)
GESP 四级 2025-03 · 判断 第1题 | 知识点 函数定义与调用、C++程序结构
第 17 题
判断
☆
⧉
未作答
在 C++ 中,函数的返回类型可以省略,默认为 int。
(2 分)
GESP 四级 2025-03 · 判断 第2题 | 知识点 函数定义与调用、整型
第 18 题
判断
☆
⧉
未作答
(2 分)
GESP 四级 2025-03 · 判断 第3题 | 知识点 结构体、类与对象
第 19 题
判断
☆
⧉
未作答
假设整数数组 arr[4] = {0, 1, 2, 3}; 的第一个元素在内存中的地址为 0x7ffee4065820,经过 int* p = arr; p += 1; 后,指针 p 的值是 1。
(2 分)
GESP 四级 2025-03 · 判断 第4题 | 知识点 指针、常量与变量
第 20 题
判断
☆
⧉
未作答
二维数组作为函数参数时,必须显式指定所有维度的大小。
(2 分)
GESP 四级 2025-03 · 判断 第5题 | 知识点 二维数组、形参与实参
第 21 题
判断
☆
⧉
未作答
递推是一种通过已知的初始值和递推公式,逐步求解目标值的算法。
(2 分)
GESP 四级 2025-03 · 判断 第6题 | 知识点 递推、递推计数
第 22 题
判断
☆
⧉
未作答
考虑最坏情况下冒泡排序算法的时间复杂度,T ( n ) T(n) T ( n ) 为待排序数字的数目为 n n n 的复杂度,则其递推关系式为 T ( n ) = T ( n − 1 ) + n T(n) = T(n - 1) + n T ( n ) = T ( n − 1 ) + n ,T ( 0 ) = 1 T(0) = 1 T ( 0 ) = 1 。
(2 分)
GESP 四级 2025-03 · 判断 第7题 | 知识点 冒泡排序、时间复杂度
第 23 题
判断
☆
⧉
未作答
插入排序在最好情况(已有序)下的时间复杂度是 O ( n 2 ) O(n^2) O ( n 2 ) 。
(2 分)
GESP 四级 2025-03 · 判断 第8题 | 知识点 插入排序、排序复杂度
第 24 题
判断
☆
⧉
未作答
对数组 arr[]={4, 3, 1, 5, 2} 进行升序排序,执行第一轮选择排序后数组 arr 中的内容是 {1, 4, 3, 5, 2}。
(2 分)
GESP 四级 2025-03 · 判断 第9题 | 知识点 选择排序、模拟
第 25 题
判断
☆
⧉
未作答
未捕获异常会调用 std::terminate 终止程序。
(2 分)
GESP 四级 2025-03 · 判断 第10题 | 知识点 异常处理、C++程序结构