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

GESP 六级 · 2026 真题

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

判 分 报 告

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

客 观 题

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

下列关于 C++ 中类的描述,正确的是()。

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

下列代码中,s1->draw();s2->draw(); 输出不同结果的主要原因是()。

01class Shape {
02public:
03    virtual void draw() {
04        cout << "绘制图形" << endl;
05    }
06
07    virtual ~Shape() {}
08};
09
10class Circle : public Shape {
11public:
12    void draw() override {
13        cout << "绘制圆形" << endl;
14    }
15};
16
17class Rectangle : public Shape {
18public:
19    void draw() override {
20        cout << "绘制矩形" << endl;
21    }
22};
23
24int main() {
25    Shape* s1 = new Circle();
26    Shape* s2 = new Rectangle();
27
28    s1->draw();
29    s2->draw();
30
31    delete s1;
32    delete s2;
33    return 0;
34}

(2 分)
GESP 六级 2026-03 · 单选 第2题 | 知识点 多态与虚函数、继承
第 3 题 单选 未作答

下面的代码在 main() 中有一行会导致编译错误,请找出来。

01class Pet {
02public:
03    Pet(string n, int a) : name(n), age(a) {}
04    string getName() { return name; }
05    void birthday() { age++; }
06private:
07    string name;
08    int age;
09};
10
11int main() {
12    Pet cat("奶茶", 2);
13    cout << cat.getName();      // ①
14    cat.birthday();             // ②
15    cat.name = "大橘";          // ③
16    cout << cat.getName();      // ④
17}

(2 分)
GESP 六级 2026-03 · 单选 第3题 | 知识点 类与对象、作用域、程序阅读与输出推断
第 4 题 单选 未作答

游乐园的过山车每次限坐 44 人,用循环队列管理排队(容量 MAX=5,空一格判断满)。下面代码执行后,循环队列是否已满?rear 的值是多少?

01const int MAX = 5;
02int queue[MAX];
03int front = 0, rear = 0;
04
05// 入队
06void enqueue(int x) {
07    queue[rear] = x;
08    rear = (rear + 1) % MAX;
09}
10// 出队
11void dequeue() {
12    front = (front + 1) % MAX;
13}
14
15int main() {
16    enqueue(1); enqueue(2); enqueue(3); enqueue(4);
17    dequeue(); dequeue();
18    enqueue(5); enqueue(6);
19}

(2 分)
GESP 六级 2026-03 · 单选 第4题 | 知识点 循环队列、队列
第 5 题 单选 未作答

在以下计算机系统应用场景中,最适合使用循环队列的是()。

(2 分)
GESP 六级 2026-03 · 单选 第5题 | 知识点 循环队列、队列、栈的应用
第 6 题 单选 未作答

在二叉搜索树(BST)中,若中序遍历的序列为 {1, 2, 3, 4, 5},且先序遍历的第一个序列元素为 3,则下列说法正确的是()。

(2 分)
GESP 六级 2026-03 · 单选 第6题 | 知识点 二叉搜索树、中序遍历、前序遍历
第 7 题 单选 未作答

某二叉树共有 1010 个结点,记为 A~J,已知它的先序遍历序列为:A B D H I E C F J G,中序遍历序列为:H D I B E A F J C G,则该二叉树的后序遍历序列是()。

(2 分)
GESP 六级 2026-03 · 单选 第7题 | 知识点 前序遍历、中序遍历、后序遍历
第 8 题 单选 未作答

下列关于树的遍历的说法中,正确的一项是()。

(2 分)
GESP 六级 2026-03 · 单选 第8题 | 知识点 前序遍历、中序遍历、后序遍历
第 9 题 单选 未作答

66 个字符,它们出现的次数分别为:{2, 3, 3, 4, 6, 8},现在用哈夫曼编码为这些字符编码,最小加权路径长度 WPL(每个字符的出现次数 ×\times 它的编码长度,再把每个字符结果加起来)的值为()。

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

nn 个不同符号的符号进行哈夫曼编码。若生成的哈夫曼树共有 115115 个结点,则 nn 的值是()。

(2 分)
GESP 六级 2026-03 · 单选 第10题 | 知识点 哈夫曼树、二叉树性质
第 11 题 单选 未作答

关于格雷编码(Gray Code),下列说法正确的是()。

(2 分)
GESP 六级 2026-03 · 单选 第11题 | 知识点 二进制、进制转换
第 12 题 单选 未作答

给定一棵二叉树,采用广度优先搜索(BFS)算法,返回右视图所有节点的值。其中右视图定义为:二叉树的右视图是从树的右侧看过去时可见的节点集合,即右视图中的每个节点都是某一层中最右侧的节点。

01struct TreeNode {
02    int val;
03    TreeNode* left;
04    TreeNode* right;
05    TreeNode(int x): val(x), left(nullptr), right(nullptr) {}
06};
07
08vector<int> rightSideView(TreeNode* root) {
09    unordered_map<int, int> rightmostValueAtDepth;
10    int max_depth = -1;
11
12    queue<TreeNode*> nodeQueue;
13    queue<int> depthQueue;
14    nodeQueue.push(root);
15    depthQueue.push(0);
16
17    while (!nodeQueue.empty()) {
18        TreeNode* node = nodeQueue.front(); nodeQueue.pop();
19        int depth = depthQueue.front(); depthQueue.pop();
20
21        if (node != NULL) {
22            max_depth = max(max_depth, depth);
23            rightmostValueAtDepth[depth] = node->val;
24            nodeQueue.push(node->left);
25            nodeQueue.push(node->right);
26            depthQueue.push(____________);
27            depthQueue.push(____________);
28        }
29    }
30
31    vector<int> rightView;
32    for (int depth = 0; ____________; ++depth) {
33        rightView.push_back(rightmostValueAtDepth[depth]);
34    }
35    return rightView;
36}

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

下列关于树的深度优先搜索(DFS)的说法中,正确的是()。

(2 分)
GESP 六级 2026-03 · 单选 第13题 | 知识点 深度优先搜索、栈
第 14 题 单选 未作答

小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下代码实现,请补全横线。

01int visit(vector<int>& nums) {
02    if (nums.empty()) {
03        return 0;
04    }
05    int size = nums.size();
06    if (size == 1)
07        return nums[0];
08
09    vector<int> dp = vector<int>(size, 0);
10    dp[0] = nums[0];
11    dp[1] = max(nums[0], nums[1]);
12
13    for (int i = 2; i < size; i++) {
14        dp[i] = ____________; // 在此处填写代码
15    }
16
17    return dp[size - 1];
18}

(2 分)
GESP 六级 2026-03 · 单选 第14题 | 知识点 线性DP、程序补全
第 15 题 单选 未作答

元宵节晚上,小朋友沿着一条发光石板路前进,每次可向前走 11 块或 22 块石板。动态规划定义如下:dp[i] = dp[i - 1] + dp[i - 2],下面关于 dp[i] 的含义最合适的是()。

(2 分)
GESP 六级 2026-03 · 单选 第15题 | 知识点 线性DP、递推
第 16 题 判断 未作答

下面定义了一个表示二维坐标点的类 Point,并提供了一个带参数的构造函数,但第②行 Point b; 会调用编译器自动生成的默认构造函数,将 b.xb.y 初始化为 0.0,程序可以正常运行。

01class Point {
02public:
03    double x, y;
04    Point(double px, double py) : x(px), y(py) {}
05    void print() {
06        cout << "(" << x << ", " << y << ")";
07    }
08};
09
10int main() {
11    Point a(3.0, 4.0);   // ①
12    Point b;             // ②
13    a.print();
14}

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

C++ 中的继承支持单继承和多继承,但子类无法直接访问父类的私有成员。

(2 分)
GESP 六级 2026-03 · 判断 第2题 | 知识点 继承、类与对象
第 18 题 判断 未作答

对如下结构的树,执行 travel 函数,输出结果是 1 2 3 4 5

01        1
02       / \
03      2   3
04     / \
05    4   5
06
07struct Node {
08    int val;
09    Node *left, *right;
10    Node(int v) : val(v), left(nullptr), right(nullptr) {}
11};
12
13void travel(Node* root) {
14    if (!root) return;
15    stack<Node*> s;
16    s.push(root);
17
18    while (!s.empty()) {
19        Node* cur = s.top(); s.pop();
20        cout << cur->val << " ";
21
22        if (cur->right) s.push(cur->right);
23        if (cur->left) s.push(cur->left);
24    }
25}

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

若所有字符出现频率相同,则哈夫曼编码一定会得到完全二叉树。

(2 分)
GESP 六级 2026-03 · 判断 第4题 | 知识点 哈夫曼树、满二叉树
第 20 题 判断 未作答

哈夫曼编码是一种变长的前缀编码,在解码时不需要额外的分隔符就能唯一还原,这是因为在哈夫曼树中,任何一个字符的叶子结点都不会成为另一个字符结点的祖先。

(2 分)
GESP 六级 2026-03 · 判断 第5题 | 知识点 哈夫曼编码、哈夫曼树
第 21 题 判断 未作答

在 C++ 中使用一维数组 vector<int> tree 存储按层序遍历的完全二叉树时,若根节点存储在 tree[0],则对于任意非空节点 tree[i],其右孩子(如果存在)必然位于 tree[2*i+2]

(2 分)
GESP 六级 2026-03 · 判断 第6题 | 知识点 完全二叉树、一维数组
第 22 题 判断 未作答

在 C++ 中使用栈来非递归地实现二叉树的前序遍历时,为了保证遍历顺序正确,在处理完当前结点后,应该先将该结点的左孩子压入栈中,然后再将右孩子压入栈中。

(2 分)
GESP 六级 2026-03 · 判断 第7题 | 知识点 前序遍历、栈
第 23 题 判断 未作答

设二叉树共有 nn 个结点,函数 preorderTraversal 以下代码的时间复杂度为 O(n)O(n),空间复杂度为 O(n)O(n)

01void preorder(TreeNode* root, vector<int>& res) {
02    if (root == nullptr) {
03        return;
04    }
05    res.push_back(root->val);
06    preorder(root->left, res);
07    preorder(root->right, res);
08}
09
10vector<int> preorderTraversal(TreeNode* root) {
11    vector<int> res;
12    preorder(root, res);
13    return res;
14}

(2 分)
GESP 六级 2026-03 · 判断 第8题 | 知识点 前序遍历、时间复杂度、空间复杂度、程序阅读与输出推断
第 24 题 判断 未作答

下列代码实现了一个 0-1 背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍历(即 for (int j = w[i]; j <= W; j++)),仍能得到正确答案。

01int main() {
02    int W = 5;
03    int w[] = {2, 3, 4};
04    int v[] = {10, 1, 1};
05    int n = 3;
06    int dp[6] = {0};
07
08    for (int i = 0; i < n; i++) {
09        for (int j = W; j >= w[i]; j--) {
10            dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
11        }
12    }
13    cout << dp[W];
14}

(2 分)
GESP 六级 2026-03 · 判断 第9题 | 知识点 01背包、线性DP
第 25 题 判断 未作答

在动态规划问题中,状态空间相同且没有重复计算的情况下,“状态转移方程+递推”与“递归+记忆化搜索”的时间复杂度通常相同。

(2 分)
GESP 六级 2026-03 · 判断 第10题 | 知识点 线性DP、记忆化搜索