林老师 · 客观题题库 · GESP 四级 · 2025 真题

GESP 四级 · 2025 真题

四级 · 2025 真题 · 客观题 · 每题 2 分
真题
复刻
试卷编号OBJ-761942
题目总数25 题 · 50 分
试卷类型客观题
考生须知:
① 本卷为客观题单卷,合计 25 题 · 50 分,全部为客观题;
② 试卷右上角设有 「提交答卷」「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。

判 分 报 告

0 / 50 分
0
答 对 · 得 0
0
答 错 · 失 0
当前筛选下没有题目

客 观 题

25 QUESTIONS · 2 POINTS EACH
第 1 题 单选 未作答

运行下面程序后变量 a 的值是( )。

01int a = 42;
02int* p = &a;
03*p = *p + 1;

(2 分)
GESP 四级 2025-09 · 单选 第1题 | 知识点 指针、程序阅读与输出推断
第 2 题 单选 未作答

以下关于数组的描述中,( )是错误的。

(2 分)
GESP 四级 2025-09 · 单选 第2题 | 知识点 一维数组、指针
第 3 题 单选 未作答

给定如下定义的数组 arr,则 *(*(arr + 1) + 2) 的值是( )。

01int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};

(2 分)
GESP 四级 2025-09 · 单选 第3题 | 知识点 二维数组、指针、程序阅读与输出推断
第 4 题 单选 未作答

下面这段代码会输出( )。

01int add(int a, int b = 1); // 函数声明
02
03int main() {
04    cout << add(2) << " " << add(2, 3);
05    return 0;
06}
07
08int add(int a, int b) { // 函数定义
09    return a + b;
10}

(2 分)
GESP 四级 2025-09 · 单选 第4题 | 知识点 函数定义与调用、形参与实参、程序阅读与输出推断
第 5 题 单选 未作答

下面这段代码会输出( )。

01int x = 5;
02
03void foo() {
04    int x = 10;
05    cout << x << " ";
06}
07
08void bar() {
09    cout << x << " ";
10}
11
12int main() {
13    foo();
14    bar();
15}

(2 分)
GESP 四级 2025-09 · 单选 第5题 | 知识点 作用域、程序阅读与输出推断
第 6 题 单选 未作答

下面程序运行的结果是( )。

01void increaseA(int x) {
02    x++;
03}
04void increaseB(int* p) {
05    (*p)++;
06}
07int main() {
08    int a = 5;
09    increaseA(a);
10    cout << a << " ";
11    increaseB(&a);
12    cout << a;
13}

(2 分)
GESP 四级 2025-09 · 单选 第6题 | 知识点 值传递与引用传递、指针、程序阅读与输出推断
第 7 题 单选 未作答

关于结构体初始化,以下哪个选项中正确的是( )。

01struct Point {int x,y;};

(2 分)
GESP 四级 2025-09 · 单选 第7题 | 知识点 结构体、常量与变量
第 8 题 单选 未作答

运行如下代码会输出( )。

01struct Cat {
02    string name;
03    int age;
04};
05
06void birthday(Cat& c) {
07    c.age++;
08}
09
10int main() {
11    Cat kitty{"Mimi", 2};
12    birthday(kitty);
13    cout << kitty.name << " " << kitty.age;
14}

(2 分)
GESP 四级 2025-09 · 单选 第8题 | 知识点 结构体、值传递与引用传递、程序阅读与输出推断
第 9 题 单选 未作答

关于排序算法的稳定性,以下说法错误的是( )。

(2 分)
GESP 四级 2025-09 · 单选 第9题 | 知识点 排序稳定性、选择排序
第 10 题 单选 未作答

下面代码试图实现选择排序,使其能对数组 nums 排序为升序,则横线上应分别填写( )。

01void selectionSort(vector<int>& nums) {
02    int n = nums.size();
03    for (int i = 0; i < n - 1; ++i) {
04        int minIndex = i;
05        for (int j = i + 1; j < n; ++j) {
06            if ( ____________ ) {    // 在此处填入代码
07                minIndex = j;
08            }
09        }
10        ____________; // 在此处填入代码
11    }
12}

(2 分)
GESP 四级 2025-09 · 单选 第10题 | 知识点 选择排序、程序补全
第 11 题 单选 未作答

下面程序实现插入排序(升序排序),则横线上应分别填写( )。

01void insertionSort(int arr[], int n) {
02    for (int i = 1; i < n; i++) {
03        int key = arr[i];
04        int j = i - 1;
05        while ( j >= 0 && ____________ ) { // 在此处填入代码
06            arr[j + 1] = arr[j];
07            j--;
08        }
09        ____________; // 在此处填入代码
10    }
11}

(2 分)
GESP 四级 2025-09 · 单选 第11题 | 知识点 插入排序、程序补全
第 12 题 单选 未作答

关于插入排序的时间复杂度,下列说法正确的是( )。

(2 分)
GESP 四级 2025-09 · 单选 第12题 | 知识点 插入排序、排序复杂度
第 13 题 单选 未作答

小杨正在爬楼梯,需要 nn 阶才能到达楼顶,每次可以爬 11 阶或 22 阶,求小杨有多少种不同的方法可以爬到楼顶,横线上应填写( )。

01int climbStairs(int n) {
02    if (n <= 2) return n;
03    int prev2 = 1;
04    int prev1 = 2;
05    int current = 0;
06    for (int i = 3; i <= n; ++i) {
07        ____________    // 在此处填入代码
08
09    }
10    return current;
11}

(2 分)
GESP 四级 2025-09 · 单选 第13题 | 知识点 递推、程序补全、for循环
第 14 题 单选 未作答

假设有一个班级的成绩单,存储在一个长度为 nn 的数组 scores 中,每个元素是一个学生的分数。老师想要找出所有满足 scores[i] + scores[j] + scores[k] == 300 的三元组,其中 i<j<ki < j < k。下面代码实现该功能,请问其时间复杂度是( )。

01int cnt = 0;
02for (int i = 0; i < n; i++) {
03    for (int j = i + 1; j < n; j++) {
04        for (int k = j + 1; k < n; k++) {
05            if (scores[i] + scores[j] + scores[k] == 300) {
06                cnt++;
07            }
08        }
09    }
10}

(2 分)
GESP 四级 2025-09 · 单选 第14题 | 知识点 时间复杂度、嵌套循环
第 15 题 单选 未作答

关于异常处理,以下说法错误的是( )。

(2 分)
GESP 四级 2025-09 · 单选 第15题 | 知识点 异常处理、C++程序结构
第 16 题 判断 未作答

以下代码能正确初始化指针。

01int a = 5;
02int *p = a;

(2 分)
GESP 四级 2025-09 · 判断 第1题 | 知识点 指针、常量与变量
第 17 题 判断 未作答

执行下面 C++ 代码将输出 1111

01int x = 10;
02void f() {
03    int x = x + 1;
04    cout << x << endl;
05}
06
07int main() {
08    f();
09}

(2 分)
GESP 四级 2025-09 · 判断 第2题 | 知识点 作用域、程序阅读与输出推断、常量与变量
第 18 题 判断 未作答

以下 C++ 代码合法。

01struct Student {
02    string name;
03    int age;
04    float score;
05};
06Student* students = new Student[20];

(2 分)
GESP 四级 2025-09 · 判断 第3题 | 知识点 结构体、指针
第 19 题 判断 未作答

执行下面 C++ 代码将输出 1010

01void func(int* p) {
02    *p = 10;
03}
04
05int main() {
06    int a = 5;
07    func(&a);
08    cout << a << endl;
09    return 0;
10}

(2 分)
GESP 四级 2025-09 · 判断 第4题 | 知识点 指针、值传递与引用传递、程序阅读与输出推断
第 20 题 判断 未作答

下面代码将二维数组 arr 传递给函数 f,函数内部用 arr[i][j] 访问元素,函数参数声明为 int arr[][4] 是错误的。

01void f(int arr[][4], int rows) {
02    // 访问 arr[i][j]
03}
04
05int main() {
06    int arr[3][4] = { /* 初始化 */ };
07    f(arr, 3);
08}

(2 分)
GESP 四级 2025-09 · 判断 第5题 | 知识点 二维数组、形参与实参
第 21 题 判断 未作答

递推是在给定初始条件下,已知前一项(或前几项)求后一项的过程。

(2 分)
GESP 四级 2025-09 · 判断 第6题 | 知识点 递推、递推计数
第 22 题 判断 未作答

虽然插入排序的时间复杂度为 O(n2)O(n^2),但由于单元操作相对较少,因此在小数据量的排序任务中非常受欢迎。

(2 分)
GESP 四级 2025-09 · 判断 第7题 | 知识点 插入排序、排序复杂度
第 23 题 判断 未作答

对整数数组 {4, 1, 3, 1, 5, 2} 进行冒泡排序(将最大元素放到最后),执行一轮之后是 {4, 1, 3, 1, 2, 5}

(2 分)
GESP 四级 2025-09 · 判断 第8题 | 知识点 冒泡排序、模拟
第 24 题 判断 未作答

以下代码只能捕获 int 类型异常。

01int main() {
02    try {
03        throw 42;
04    } catch (...) {
05        cout << "Caught" << endl;
06    }
07    return 0;
08}

(2 分)
GESP 四级 2025-09 · 判断 第9题 | 知识点 异常处理、程序阅读与输出推断
第 25 题 判断 未作答

以下代码将 Hello 写入文件 data.txt

ofstream file("data.txt");
cout<<"Hello"<< endl;
file.close();

(2 分)
GESP 四级 2025-09 · 判断 第10题 | 知识点 文件读写、cin与cout