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

GESP 六级 · 2024 真题

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

判 分 报 告

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

客 观 题

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

以下( )没有涉及C++语言的面向对象特性支持。

(2 分)
GESP 六级 2024-09 · 单选 第1题 | 知识点 类与对象、C++程序结构
第 2 题 单选 未作答

关于以下C++代码,( )行代码会引起编译错误。

01#include <iostream>
02using namespace std;
03
04class Base {
05private:
06    int a;
07protected:
08    int b;
09public:
10    int c;
11    Base() : a(1), b(2), c(3) {}
12};
13
14class Derived : public Base {
15public:
16    void show() {
17        cout << a << endl;    // Line 1
18        cout << b << endl;    // Line 2
19        cout << c << endl;    // Line 3
20    }
21};

(2 分)
GESP 六级 2024-09 · 单选 第2题 | 知识点 继承、类与对象
第 3 题 单选 未作答

66个元素,按照6,5,4,3,2,1的顺序进入栈S,下列( )的出栈序列是不能出现的( )。

(2 分)
GESP 六级 2024-09 · 单选 第3题 | 知识点 栈、栈的应用
第 4 题 单选 未作答

采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。

01#include <iostream>
02#include <stack>
03#include <string>
04
05using namespace std;
06
07bool is_valid(string s) {
08    stack<char> st;
09    char top;
10
11    for (char& ch : s) {
12        if (ch == '(' || ch == '{' || ch == '[') {
13            st.push(ch);    // 左括号入栈
14        }
15        else
16        {
17            if (st.empty())
18                return false;
19            ____________ // 在此处填入代码
20            if ((ch == ')' && top != '(') ||
21                (ch == '}' && top != '{') ||
22                (ch == ']' && top != '[')) {
23                return false;
24            }
25        }
26    }
27
28    return st.empty();      // 栈为空则说明所有括号匹配成功
29}

(2 分)
GESP 六级 2024-09 · 单选 第4题 | 知识点 栈的应用、栈、程序补全
第 5 题 单选 未作答

下面代码判断队列的第一个元素是否等于a,并删除该元素,横向上应填写( )。

01#include <iostream>
02#include <queue>
03using namespace std;
04
05bool is_front_equal(std::queue<int>& q, int a) {
06    bool is_equal = false;
07    if (!q.empty()) {
08        ____________ // 在此处填入代码
09    }
10    return is_equal;
11}

(2 分)
GESP 六级 2024-09 · 单选 第5题 | 知识点 队列、程序补全
第 6 题 单选 未作答

假设字母表{a,b,c,d,e}在字符串出现的频率分别为10%15%30%16%29%。若使用哈夫曼编码方式对字母进行二进制编码,则字符abcde分别对应的一组哈夫曼编码的长度分别为( )。

编者注:官方原题此处写作abcdef,但题目只给出了字母ae及其五项频率;本题按题意修正为abcde

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

以下C++代码实现 nn 位的格雷码,则横线上应填写( )。

01#include <iostream>
02#include <vector>
03#include <string>
04using namespace std;
05// 生成 n 位的格雷码
06vector<string> generate_graycode(int n) {
07    vector<string> graycode_list;
08    if (n <= 0) {
09        return graycode_list;
10    }
11
12    // 初始1位格雷码
13    graycode_list.push_back("0");
14    graycode_list.push_back("1");
15
16    // 迭代生成 n 位的格雷码
17    for (int i = 2; i <= n; i++) {
18        int current_size = graycode_list.size();
19
20        for (int j = current_size - 1; j >= 0; j--) {
21            graycode_list.push_back("1" + graycode_list[j]);
22        }
23
24        for (int j = 0; j < current_size; j++) {
25            ____________ // 在此处填入代码
26        }
27    }
28
29    return graycode_list;
30}

(2 分)
GESP 六级 2024-09 · 单选 第7题 | 知识点 二进制、位异或、程序补全
第 8 题 单选 未作答

给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG,则这棵树的正确后序遍历结果是( )。

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

一棵有 nn 个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第11个位置。若存储在数组第99个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。

(2 分)
GESP 六级 2024-09 · 单选 第9题 | 知识点 完全二叉树、二叉树性质
第 10 题 单选 未作答

二叉树的深度定义为从根结点到叶结点的最长路径上的结点数,则以下基于二叉树的深度优先搜索实现的深度计算函数中横线上应填写( )。

01// 定义二叉树的结点结构
02struct tree_node {
03    int val;
04    tree_node* left;
05    tree_node* right;
06
07    tree_node(int x) : val(x), left(nullptr), right(nullptr) {}
08};
09
10// 计算二叉树的深度
11int max_depth(tree_node* root) {
12    if (root == nullptr) {
13        return 0;  // 如果根结点为空,则深度为 0
14    }
15
16    int left_depth = max_depth(root->left);
17    int right_depth = max_depth(root->right);
18
19    ____________ // 在此处填入代码
20}

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

二叉树的深度计算可以采用广度优先搜索来实现,以下基于 BFS 的深度计算函数中横线上应填写( )。

01#include <queue>
02
03int max_depth_bfs(tree_node* root) {
04    if (root == nullptr) {
05        return 0; // 如果树为空,深度为 0
06    }
07
08    queue <tree_node*> q;
09    q.push(root);
10    int depth = 0;
11
12    // 使用队列进行层序遍历
13    while (!q.empty()) {
14        ____________ // 在此处填入代码
15        for (int i = 0; i < level_size; ++i) {
16            tree_node* node = q.front();
17            q.pop();
18
19            if (node->left) {
20                q.push(node->left);
21            }
22            if (node->right) {
23                q.push(node->right);
24            }
25        }
26    }
27
28    return depth;
29}

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

二叉搜索树中的每个结点,其左子树的所有结点值都小于该结点值,右子树的所有结点值都大于该结点值。以下代码对给定的整数数组(假设数组中没有数值相等的元素),构造一个对应的二叉搜索树,横线上应填写( ):

01// 定义二叉树的结点结构
02struct tree_node {
03    int val;
04    tree_node* left;
05    tree_node* right;
06
07    tree_node(int x) : val(x), left(nullptr), right(nullptr) {}
08};
09
10// 插入结点到二叉搜索树中
11tree_node* insert(tree_node* root, int val) {
12    if (root == nullptr) {
13        return new tree_node(val);
14    }
15
16    ____________ // 在此处填入代码
17
18    return root;
19}
20
21// 根据给定数组构造二叉搜索树
22tree_node* constructBST(const int arr[], int size) {
23    tree_node* root = nullptr;
24
25    for (int i = 0; i < size; ++i) {
26        root = insert(root, arr[i]);
27    }
28    return root;
29}

(2 分)
GESP 六级 2024-09 · 单选 第12题 | 知识点 二叉搜索树、程序补全
第 13 题 单选 未作答

当输入数组为[5,3,7,2,4,6,8]时,按二叉搜索树的插入规则依次构建二叉树,并采用如下代码实现的遍历方式,得到的输出是( )。

01#include <iostream>
02using namespace std;
03
04// 遍历二叉搜索树,输出结点值
05void traversal(tree_node* root) {
06    if (root == nullptr) {
07        return;
08    }
09
10    traversal(root->left);
11    cout << root->val << " ";
12    traversal(root->right);
13}

(2 分)
GESP 六级 2024-09 · 单选 第13题 | 知识点 中序遍历、程序阅读与输出推断
第 14 题 单选 未作答

动态规划通常用于解决( )。

(2 分)
GESP 六级 2024-09 · 单选 第14题 | 知识点 线性DP、贪心
第 15 题 单选 未作答

阅读以下用动态规划解决的00-11背包问题的函数,假设背包的容量 WW10kg10\text{kg},假设输入44个物品的重量weights分别为1,3,4,6(单位为 kg),每个物品对应的价值values分别为20,30,50,60,则函数的输出为( )。

01#include <iostream>
02#include <vector>
03using namespace std;
04
05// 0/1背包问题
06int knapsack(int W, const vector<int>& weights, const vector<int>& values, int n) {
07    vector<vector<int>> dp(n + 1, vector<int>(W + 1, 0));
08
09    for (int i = 1; i <= n; ++i) {
10        for (int w = 0; w <= W; ++w) {
11            if (weights[i - 1] <= w) {
12                dp[i][w] = max(dp[i - 1][w], dp[i - 1][w - weights[i - 1]] + values[i - 1]);
13            }
14            else
15            {
16                dp[i][w] = dp[i - 1][w];
17            }
18        }
19    }
20
21    return dp[n][W];
22}

(2 分)
GESP 六级 2024-09 · 单选 第15题 | 知识点 01背包、程序阅读与输出推断
第 16 题 判断 未作答

C++、Python和JAVA等都是面向对象的编程语言。

(2 分)
GESP 六级 2024-09 · 判断 第1题 | 知识点 类与对象、信息学常识(CCF·NOI·GESP)
第 17 题 判断 未作答

在C++中,类的静态成员变量只能被该类对象的成员函数访问。

(2 分)
GESP 六级 2024-09 · 判断 第2题 | 知识点 类与对象、作用域
第 18 题 判断 未作答

栈是一种线性结构,可通过数组或链表来实现。二者相比,数组实现占用的内存较少,链表实现的入队和出队操作的时间复杂度较低。

(2 分)
GESP 六级 2024-09 · 判断 第3题 | 知识点 栈、一维数组、单向链表
第 19 题 判断 未作答

运行以下C++代码,屏幕将输出derived class

01#include <iostream>
02using namespace std;
03
04class base {
05public:
06    virtual void show() {
07        cout << "base class" << endl;
08    }
09};
10
11class derived : public base {
12public:
13    void show() override {
14        cout << "derived class" << endl;
15    }
16};
17
18int main() {
19    base* b;
20    derived d;
21    b = &d;
22    b->show();
23    return 0;
24}

(2 分)
GESP 六级 2024-09 · 判断 第4题 | 知识点 多态与虚函数、继承、程序阅读与输出推断
第 20 题 判断 未作答

如下列代码所示的基类(base)及其派生类(derived),则生成一个派生类的对象时,只调用派生类的构造函数。

01#include <iostream>
02using namespace std;
03
04class base {
05public:
06    base() {
07        cout << "base constructor" << endl;
08    }
09    ~base() {
10        cout << "base destructor" << endl;
11    }
12};
13
14class derived : public base {
15public:
16    derived() {
17        cout << "derived constructor" << endl;
18    }
19    ~derived() {
20        cout << "derived destructor" << endl;
21    }
22};

(2 分)
GESP 六级 2024-09 · 判断 第5题 | 知识点 继承、构造与析构
第 21 题 判断 未作答

哈夫曼编码本质上是一种贪心策略。

(2 分)
GESP 六级 2024-09 · 判断 第6题 | 知识点 哈夫曼编码、贪心
第 22 题 判断 未作答

如果根结点的深度记为11,则一棵恰有20242024个叶结点的二叉树的深度最少是1212

(2 分)
GESP 六级 2024-09 · 判断 第7题 | 知识点 二叉树性质、满二叉树
第 23 题 判断 未作答

在非递归实现的树的广度优先搜索中,通常使用栈来辅助实现。

(2 分)
GESP 六级 2024-09 · 判断 第8题 | 知识点 广度优先搜索、队列
第 24 题 判断 未作答

状态转移方程是动态规划的核心,可以通过递推方式表示问题状态的变化。

(2 分)
GESP 六级 2024-09 · 判断 第9题 | 知识点 线性DP、递推
第 25 题 判断 未作答

应用动态规划算法时,识别并存储重叠子问题的解是必须的。

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