林老师 · 客观题题库 · GESP 四级 · 2025 真题
GESP 四级 · 2025 真题
四级 · 2025 真题 · 客观题 · 每题 2 分
真题
复刻
试卷编号OBJ-760467
题目总数25 题 · 50 分
试卷类型客观题
考生须知:
① 本卷为客观题单卷,合计 25 题 · 50 分,全部为客观题;
② 试卷右上角设有 「提交答卷」 与 「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。
当前筛选下没有题目
壹
客 观 题
25 QUESTIONS · 2 POINTS EACH
第 1 题
单选
未作答
在 C++ 中,声明一个指向整型变量的指针的正确语法是( )。
(2 分)
GESP 四级 2025-06 · 单选 第1题 | 知识点 指针、常量与变量
第 2 题
单选
未作答
下面的函数接收一个 3 行 4 列的二维数组并输出其中元素,则横线上不能填写( )。
01void printArray(____________) {
02 for (int i = 0; i < 3; ++i)
03 for (int j = 0; j < 4; ++j)
04 std::cout << arr[i][j] << " ";
05}
(2 分)
GESP 四级 2025-06 · 单选 第2题 | 知识点 二维数组、形参与实参、指针
第 3 题
单选
未作答
在 C++ 中,int arr[3][4] 和 int* arr = new int[12] 均可模拟一个 3 行 4 列的二维数组。关于这两种方式,下面说法错误的是( )。
(2 分)
GESP 四级 2025-06 · 单选 第3题 | 知识点 二维数组、指针、内存
第 4 题
单选
未作答
关于以下 C++ 代码,说法正确的是( )。
01int main() {
02 greet();
03 return 0;
04}
05
06void greet() {
07 cout << "Hello!" << endl;
08}
(2 分)
GESP 四级 2025-06 · 单选 第4题 | 知识点 函数定义与调用、作用域
第 5 题
单选
未作答
在 C++ 中,如果希望通过函数修改传入的结构体对象的内容,应该使用哪种参数传递方式?
(2 分)
GESP 四级 2025-06 · 单选 第5题 | 知识点 值传递与引用传递、指针
第 6 题
单选
未作答
以下哪个选项正确描述了 C++ 中形参和实参的区别?
(2 分)
GESP 四级 2025-06 · 单选 第6题 | 知识点 形参与实参、值传递与引用传递
第 7 题
单选
未作答
运行如下代码会输出( )。
01int value = 100;
02
03void print1() {
04 int value = 50;
05 cout << value << " ";
06 cout << ::value << " ";
07}
08
09void print2() {
10 cout << value << " ";
11}
12
13print1();
14print2();
(2 分)
GESP 四级 2025-06 · 单选 第7题 | 知识点 作用域、程序阅读与输出推断
第 8 题
单选
未作答
小杨在整理一副扑克牌的所有红心扑克牌,使其从小到大排列。他的做法是:最开始抓到的第 1 张扑克牌被认为是已经排好序;然后抓第 2 张扑克牌,将其插入至有序部分的正确位置;不断循环步骤,每次将新抓到扑克牌插入至有序部分,直至抓完所有扑克牌,这样抓牌结束时就完成了扑克牌的排序。小杨这种整理扑克牌的方式与( )排序的方式最接近。
(2 分)
GESP 四级 2025-06 · 单选 第8题 | 知识点 插入排序、模拟
第 9 题
单选
未作答
(2 分)
GESP 四级 2025-06 · 单选 第9题 | 知识点 插入排序、排序复杂度
第 10 题
单选
未作答
(2 分)
GESP 四级 2025-06 · 单选 第10题 | 知识点 递推、递推计数
第 11 题
单选
未作答
给定如下算法,其时间复杂度为( )。
01bool f(int arr[], int n, int target) {
02 for (int i = 0; i < 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 分)
GESP 四级 2025-06 · 单选 第11题 | 知识点 时间复杂度、移位运算
第 12 题
单选
未作答
下述斐波那契数列计算的时间复杂度是( )。
01int fibonacci(int n) {
02 if (n == 0) return 0;
03 if (n == 1) return 1;
04 return fibonacci(n - 1) + fibonacci(n - 2);
05}
(2 分)
GESP 四级 2025-06 · 单选 第12题 | 知识点 递归、时间复杂度
第 13 题
单选
未作答
关于下面 C++ 程序的描述,( )最准确。
01ifstream in("data.txt");
02string line;
03while (getline(in, line)) {
04 cout << line << endl;
05}
(2 分)
GESP 四级 2025-06 · 单选 第13题 | 知识点 文件读写、cin与cout
第 14 题
单选
未作答
在 C++ 中,异常处理机制(try-catch 块)的主要目的是( )。
(2 分)
GESP 四级 2025-06 · 单选 第14题 | 知识点 异常处理、C++程序结构
第 15 题
单选
未作答
为了提高冒泡排序的效率,如果某轮"冒泡"中没有执行任何交换操作,说明数组已经完成排序,可直接返回结果,则两条横线上分别应该填写( )。
01void bubbleSortWithFlag(vector<int> &nums) {
02 for (int i = nums.size() - 1; i > 0; i--) {
03 bool flag;
04 ____________ // 在此处填入代码
05
06 for (int j = 0; j < i; j++) {
07 if (nums[j] > nums[j + 1]) {
08 swap(nums[j], nums[j + 1]);
09 ____________ // 在此处填入代码
10 }
11 }
12 if (!flag)
13 break;
14 }
15}
(2 分)
GESP 四级 2025-06 · 单选 第15题 | 知识点 冒泡排序、程序补全、for循环
第 16 题
判断
未作答
下面 C++ 代码正确声明了一个返回 int 类型、接受两个 int 参数的函数。
01int add(int, int);
(2 分)
GESP 四级 2025-06 · 判断 第1题 | 知识点 函数定义与调用、形参与实参
第 17 题
判断
未作答
下面 C++ 代码的输出是 15 。
01void foo(int x) {
02 x += 5;
03}
04int main() {
05 int a = 10;
06 foo(a);
07 cout << a << endl;
08}
(2 分)
GESP 四级 2025-06 · 判断 第2题 | 知识点 值传递与引用传递、程序阅读与输出推断
第 18 题
判断
未作答
下面 C++ 代码在一个结构体中又定义了别的结构体。这种结构嵌套定义的方式语法不正确。
01#include <string>
02#include <vector>
03
04using namespace std;
05
06struct Library {
07 struct Book {
08 struct Author {
09 string name;
10 int birthYear;
11 };
12
13 string title;
14 int year;
15 Author author;
16 };
17
18 string name;
19 vector<Book> books;
20};
(2 分)
GESP 四级 2025-06 · 判断 第3题 | 知识点 结构体、类与对象
第 19 题
判断
未作答
在 C++ 中,相比于值传递,使用引用传递作的优点可以直接操作和修改原始变量,避免数据拷贝,提高效率。
(2 分)
GESP 四级 2025-06 · 判断 第4题 | 知识点 值传递与引用传递、引用
第 20 题
判断
未作答
下面这段代码不合法,因为每一行都必须显式初始化 3 个元素。
01int arr[2][3] = {{1, 2}, {3}};
(2 分)
GESP 四级 2025-06 · 判断 第5题 | 知识点 二维数组、常量与变量
第 21 题
判断
未作答
以下程序中使用了递推方式计算阶乘(n!=1×2...×n),计算结果正确。
01int factorial(int n) {
02 int res = 1;
03 for (int i = 0; i < n; ++i) {
04 res *= i;
05 }
06 return res;
07}
(2 分)
GESP 四级 2025-06 · 判断 第6题 | 知识点 递推、程序阅读与输出推断、for循环
第 22 题
判断
未作答
无论初始数组是否有序,选择排序都执行 O(n2) 次比较。
(2 分)
GESP 四级 2025-06 · 判断 第7题 | 知识点 选择排序、排序复杂度
第 23 题
判断
未作答
以下 C++ 代码,尝试对有 n 个整数的数组 arr 进行排序。这个代码实现了选择排序算法。
01for (int i = 0; i < n - 1; ++i) {
02 int minIndex = i;
03 for (int j = i + 1; j < n; ++j) {
04 if (arr[j] < arr[minIndex])
05 minIndex = j;
06 }
07 if (minIndex != i)
08 swap(arr[i], arr[minIndex]);
09}
(2 分)
GESP 四级 2025-06 · 判断 第8题 | 知识点 选择排序、程序阅读与输出推断
第 24 题
判断
未作答
如果一个异常在 try 块中抛出但没有任何 catch 匹配,它将在编译时报错。
(2 分)
GESP 四级 2025-06 · 判断 第9题 | 知识点 异常处理、C++程序结构
第 25 题
判断
未作答
下面 C++ 代码实现将 Hello 写入 data.txt 。
ofstream out("data.txt");
out << "Hello";
out.close();
(2 分)
GESP 四级 2025-06 · 判断 第10题 | 知识点 文件读写、cin与cout