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

GESP 四级 · 2025 真题

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

判 分 报 告

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

客 观 题

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

在 C++ 中,声明一个指向整型变量的指针的正确语法是( )。

(2 分)
GESP 四级 2025-06 · 单选 第1题 | 知识点 指针、常量与变量
第 2 题 单选 未作答

下面的函数接收一个 3344 列的二维数组并输出其中元素,则横线上不能填写( )。

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] 均可模拟一个 3344 列的二维数组。关于这两种方式,下面说法错误的是( )。

(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 题 单选 未作答

小杨在整理一副扑克牌的所有红心扑克牌,使其从小到大排列。他的做法是:最开始抓到的第 11 张扑克牌被认为是已经排好序;然后抓第 22 张扑克牌,将其插入至有序部分的正确位置;不断循环步骤,每次将新抓到扑克牌插入至有序部分,直至抓完所有扑克牌,这样抓牌结束时就完成了扑克牌的排序。小杨这种整理扑克牌的方式与( )排序的方式最接近。

(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 题 判断 未作答

下面这段代码不合法,因为每一行都必须显式初始化 33 个元素。

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

(2 分)
GESP 四级 2025-06 · 判断 第5题 | 知识点 二维数组、常量与变量
第 21 题 判断 未作答

以下程序中使用了递推方式计算阶乘(n!=1×2...×nn! = 1 \times 2... \times 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)O(n^2) 次比较。

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

以下 C++ 代码,尝试对有 nn 个整数的数组 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