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

GESP 六级 · 2025 真题

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

判 分 报 告

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

客 观 题

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

在面向对象编程中,类是一种重要的概念。下面关于类的描述中,不正确的是()。

(2 分)
GESP 六级 2025-03 · 单选 第1题 | 知识点 类与对象、构造与析构
第 2 题 单选 未作答

哈夫曼编码是一种数据压缩算法。以下关于哈夫曼编码的描述中,不正确的是()。

(2 分)
GESP 六级 2025-03 · 单选 第2题 | 知识点 哈夫曼编码、哈夫曼树、贪心
第 3 题 单选 未作答

以下代码实现了树的哪种遍历方式?

01void traverse(TreeNode* root) {
02    if (root == nullptr) return;
03    cout << root->val << " ";
04    traverse(root->left);
05    traverse(root->right);
06}

(2 分)
GESP 六级 2025-03 · 单选 第3题 | 知识点 前序遍历、程序阅读与输出推断
第 4 题 单选 未作答

以下关于完全二叉树的代码描述,正确的是()。

01bool isCompleteTree(TreeNode* root) {
02    if (root == nullptr) return true;
03    queue<TreeNode*> q;
04    q.push(root);
05    bool hasNull = false;
06    while (!q.empty()) {
07        TreeNode* node = q.front();
08        q.pop();
09        if (node == nullptr) {
10            hasNull = true;
11        } else {
12            if (hasNull) return false;
13            q.push(node->left);
14            q.push(node->right);
15        }
16    }
17    return true;
18}

(2 分)
GESP 六级 2025-03 · 单选 第4题 | 知识点 完全二叉树、程序阅读与输出推断
第 5 题 单选 未作答

以下代码实现了二叉排序树的哪种操作?

01TreeNode* op(TreeNode* root, int val) {
02    if (root == nullptr) return new TreeNode(val);
03    if (val < root->val) {
04        root->left = op(root->left, val);
05    } else {
06        root->right = op(root->right, val);
07    }
08    return root;
09}

(2 分)
GESP 六级 2025-03 · 单选 第5题 | 知识点 二叉搜索树、程序阅读与输出推断
第 6 题 单选 未作答

给定字符集 {A, B, C, D} 的出现频率分别为 {5, 1, 6, 2},则正确的哈夫曼编码是()。

(2 分)
GESP 六级 2025-03 · 单选 第6题 | 知识点 哈夫曼编码、哈夫曼树
第 7 题 单选 未作答

关于动态规划的描述,正确的是()。

(2 分)
GESP 六级 2025-03 · 单选 第7题 | 知识点 线性DP、记忆化搜索
第 8 题 单选 未作答

以下代码中,类的构造函数被调用了( )次。

01class MyClass {
02public:
03    MyClass() {
04        cout << "Constructor called!" << endl;
05    }
06};
07int main() {
08    MyClass obj1;
09    MyClass obj2 = obj1;
10    return 0;
11}

(2 分)
GESP 六级 2025-03 · 单选 第8题 | 知识点 构造与析构、类与对象
第 9 题 单选 未作答

以下代码实现了循环队列的哪种操作?

01class CircularQueue {
02    int* arr;
03    int front, rear, size;
04public:
05    CircularQueue(int k) {
06        size = k;
07        arr = new int[k];
08        front = rear = -1;
09    }
10    bool enQueue(int value) {
11        if (isFull()) return false;
12        if (isEmpty()) front = 0;
13        rear = (rear + 1) % size;
14        arr[rear] = value;
15        return true;
16    }
17};

(2 分)
GESP 六级 2025-03 · 单选 第9题 | 知识点 循环队列、程序阅读与输出推断
第 10 题 单选 未作答

以下代码用于统计二叉树的叶节点数量,请在横线处填入代码。

01int countLeafNodes(TreeNode* root) {
02    if (root == nullptr) return 0;
03
04    stack<TreeNode*> s;
05    s.push(root);
06    int count = 0;
07    while (!s.empty()) {
08        TreeNode* node = s.top();
09        s.pop();
10
11        if (node->left == nullptr && node->right == nullptr) {
12            count++;
13        }
14
15        if (node->right) s.push(node->right);
16        ____________ // 在此处填入代码
17    }
18    return count;
19}

(2 分)
GESP 六级 2025-03 · 单选 第10题 | 知识点 二叉树概念、栈、程序补全
第 11 题 单选 未作答

以下代码使用队列查找二叉树中的目标节点,请在横线处填入代码。

01TreeNode* findNode(TreeNode* root, int target) {
02    if (root == nullptr) return nullptr;
03
04    queue<TreeNode*> q;
05    q.push(root);
06    while (!q.empty()) {
07        TreeNode* current = q.front();
08        q.pop();
09
10        if (current->val == target) {
11            return current; // 找到目标节点
12        }
13
14        ____________ // 在此处填入代码
15    }
16    return nullptr; // 未找到目标节点
17}

(2 分)
GESP 六级 2025-03 · 单选 第11题 | 知识点 广度优先搜索、队列、程序补全
第 12 题 单选 未作答

以下代码生成格雷编码,请在横线处填入代码。

01vector<string> generateGrayCode(int n) {
02    if (n == 0) return {"0"};
03    if (n == 1) return {"0", "1"};
04
05    vector<string> prev = generateGrayCode(n - 1);
06    vector<string> result;
07
08    for (string s : prev) {
09        result.push_back("0" + s); // 在前缀添加 0
10    }
11    for (int i = prev.size() - 1; i >= 0; i--) {
12        ____________ // 在此处填入代码
13    }
14    return result;
15}

(2 分)
GESP 六级 2025-03 · 单选 第12题 | 知识点 二进制、位异或、程序补全
第 13 题 单选 未作答

以下 0/10/1 背包代码中,横线处应填入的内容是()。

01int knapsack(int W, vector<int>& weights, vector<int>& values) {
02    int n = weights.size();
03    vector<vector<int>> dp(n + 1, vector<int>(W + 1, 0));
04
05    for (int i = 1; i <= n; i++) {
06        for (int j = 1; j <= W; j++) {
07            if (weights[i-1] > j) {
08                dp[i][j] = dp[i-1][j]; // 当前物品装不下
09            } else {
10                dp[i][j] = max(____________); // 在此处填入代码
11            }
12        }
13    }
14    return dp[n][W];
15}

(2 分)
GESP 六级 2025-03 · 单选 第13题 | 知识点 01背包、程序补全
第 14 题 单选 未作答

以下代码判断括号是否匹配,请在横线处填入代码。

01bool isBalanced(string s) {
02    stack<char> st;
03    for (char c : s) {
04        if (c == '(' || c == '[' || c == '{') {
05            st.push(c);
06        } else {
07            if (st.empty()) return false; // 无括号匹配
08            char top = st.top();
09            st.pop();
10            if ((c == ')' && top != '(') ||
11                (c == ']' && top != '[') ||
12                (c == '}' && top != '{')) {
13                return false;
14            }
15        }
16    }
17    return ____________; // 在此处填入代码
18}

(2 分)
GESP 六级 2025-03 · 单选 第14题 | 知识点 栈的应用、栈、程序补全
第 15 题 单选 未作答

关于下面代码,说法错误的是()。

01class Shape {
02protected:
03    string name;
04
05public:
06    Shape(const string& n) : name(n) {}
07
08    virtual double area() const {
09        return 0.0;
10    }
11};
12
13class Circle : public Shape {
14private:
15    double radius;
16
17public:
18    Circle(const string& n, double r) : Shape(n), radius(r) {}
19
20    double area() const override {
21        return 3.14159 * radius * radius;
22    }
23};
24
25class Rectangle : public Shape {
26private:
27    double width;   // 宽度
28    double height;  // 高度
29
30public:
31    Rectangle(const string& n, double w, double h) : Shape(n), width(w), height(h) {}
32
33    double area() const override {
34        return width * height;
35    }
36};
37
38int main() {
39    Circle circle("MyCircle", 5.0);
40    Rectangle rectangle("MyRectangle", 4.0, 6.0);
41
42    Shape* shapePtr = &circle;
43    cout << "Area: " << shapePtr->area() << endl;
44
45    shapePtr = &rectangle;
46    cout << "Area: " << shapePtr->area() << endl;
47
48    return 0;
49}

(2 分)
GESP 六级 2025-03 · 单选 第15题 | 知识点 多态与虚函数、继承、程序阅读与输出推断
第 16 题 判断 未作答

哈夫曼树在构造过程中,每次合并权值最小的两个节点,最终生成的树带权路径长度最小。

(2 分)
GESP 六级 2025-03 · 判断 第1题 | 知识点 哈夫曼树、贪心
第 17 题 判断 未作答

格雷编码的相邻两个编码之间必须有多位不同,以避免数据传输错误。

(2 分)
GESP 六级 2025-03 · 判断 第2题 | 知识点 二进制、进制转换
第 18 题 判断 未作答

在树的深度优先搜索(DFS)中,使用队列作为辅助数据结构以实现“先进后出”的访问顺序。

01void traverse(TreeNode* root) {
02    if (root == nullptr) return;
03    traverse(root->left);
04    cout << root->val << " ";
05    traverse(root->right);
06}

(2 分)
GESP 六级 2025-03 · 判断 第3题 | 知识点 深度优先搜索、栈
第 19 题 判断 未作答

以下代码实现的是一棵树的中序遍历:

TreeNode* root = new TreeNode{1};
root->left = new TreeNode{2};
root->right = new TreeNode{3};
root->left->left = new TreeNode{4};

(2 分)
GESP 六级 2025-03 · 判断 第4题 | 知识点 中序遍历、程序阅读与输出推断
第 20 题 判断 未作答

C++ 支持构造函数重载,但默认无参数的构造函数只能有一个。

(2 分)
GESP 六级 2025-03 · 判断 第5题 | 知识点 构造与析构、类与对象
第 21 题 判断 未作答

二叉排序树(BST)中,若某节点的左子树为空,则该节点一定是树中的最小值节点。

(2 分)
GESP 六级 2025-03 · 判断 第6题 | 知识点 二叉搜索树、二叉树概念
第 22 题 判断 未作答

在动态规划解决一维硬币找零问题时,若硬币面额为 [1, 3, 4],目标金额为 66,则最少需要 22 枚硬币(3+3)。

(2 分)
GESP 六级 2025-03 · 判断 第7题 | 知识点 线性DP、完全背包
第 23 题 判断 未作答

面向对象编程中,封装是指将数据和行为绑定在一起,并对外隐藏实现细节。

(2 分)
GESP 六级 2025-03 · 判断 第8题 | 知识点 类与对象、作用域
第 24 题 判断 未作答

以下代码创建的树是一棵完全二叉树:

TreeNode* root = new TreeNode{1};
root->left = new TreeNode{2};
root->right = new TreeNode{3};
root->left->left = new TreeNode{4};

(2 分)
GESP 六级 2025-03 · 判断 第9题 | 知识点 完全二叉树、二叉树性质
第 25 题 判断 未作答

栈和队列均可以用双向链表实现,插入和删除操作的时间复杂度为 O(1)O(1)

(2 分)
GESP 六级 2025-03 · 判断 第10题 | 知识点 栈、队列、双向链表