理论卷2024年9月GESP等级认证(C++) · 六级

GESP C++ 6级 2024.09

满分 100 · 及格 60 · 时长 60 分钟 · 共 27 题 (单选15 / 判断10 / 编程题2)
试卷阅览 · 免费预览前 10 题 · 交卷后可查看答案与解析
1
单选题号 #12105
分值 2

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

A

C++ 中构造一个 classclass 或 structstruct

B

C++ 中调用 printfprintf 函数

C

C++ 中调用用户定义的类成员函数

D

C++ 中构造来源于同一基类的多个派生类

2
单选题号 #12106
分值 2

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

#include 
using namespace std;

class Base {
private:
 int a;
protected:
 int b;
public:
 int c;
 Base() : a(1), b(2), c(3) {}
};

class Derived : public Base {
public:
 void show() {
 cout << a << endl; // Line 1
 cout << b << endl; // Line 2
 cout << c << endl; // Line 3
 }
};
A

Line1Line1

B

Line2Line2

C

Line3Line3

D

没有编译错误没有编译错误

3
单选题号 #12107
分值 2

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

A

5,4,3,6,1,25,4,3,6,1,2

B

4,5,3,1,2,64,5,3,1,2,6

C

3,4,6,5,2,13,4,6,5,2,1

D

2,3,4,1,5,62,3,4,1,5,6

4
单选题号 #12108
分值 2

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

#include 
#include 
#include 

using namespace std;

bool is_valid(string s) {
 stack st;
 char top;

 for (char& ch : s) {
 if (ch == '(' || ch == '{' || ch == '[') {
 st.push(ch); // 左括号入栈
 }
 else
 {
 if (st.empty())
 return false;
 ———————————————————————— // 在此处填入代码
 if ((ch == ')' && top != '(') ||
 (ch == '}' && top != '{') ||
 (ch == ']' && top != '[')) {
 return false;
 }
 }
 }

 return st.empty(); // 栈为空则说明所有括号匹配成功
}
A

top = st.top(); st.pop();

B

st.pop(); top = st.top();

C

st.pop(); top = st.front();

D

top = st.front(); st.pop();

5
单选题号 #12109
分值 2

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

#include 
#include 
using namespace std;

bool is_front_equal(std::queue& q, int a) {
 bool is_equal = false;
 if (!q.empty()) {
 ———————————————————————— // 在此处填入代码
 }
 return is_equal;
}
A

is_equal = (q.front() == a);

B

is_equal = (q.front() == a); q.pop();

C

q.pop(); is_equal = (q.front() == a);

D

q.pop(); is_equal = (q.top() == a);

6
单选题号 #12110
分值 2

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

A

4,4,1,3,24, 4, 1, 3, 2

B

3,3,2,2,23, 3, 2, 2, 2

C

3,3,1,2,13, 3, 1, 2, 1

D

4,4,1,2,24, 4, 1, 2, 2

7
单选题号 #12111
分值 2

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

#include 
#include 
#include 
using namespace std;
// 生成 n 位的格雷码
vector generate_graycode(int n) {
 vector graycode_list;
 if (n = 0; j--) {
 graycode_list.push_back("1" + graycode_list[j]);
 }

 for (int j = 0; j < current_size; j++) {
 ———————————————————————— // 在此处填入代码
 }
 }
 
 return graycode_list;
}
A

graycode_list.push_back("0" + graycode_list[j]);

B

graycode_list[j] = "0" + graycode_list[j];

C

graycode_list.push_back("1" + graycode_list[j]);

D

graycode_list[j] = "1" + graycode_list[j];

8
单选题号 #12112
分值 2

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

A

EDBGFCAEDBGFCA

B

EDGBFCAEDGBFCA

C

DEBGFCADEBGFCA

D

DBEGFCADBEGFCA

9
单选题号 #12113
分值 2

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

A

8,188,18

B

10,1810,18

C

8,198,19

D

10,1910,19

10
单选题号 #12114
分值 2

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

// 定义二叉树的结点结构
struct tree_node {
 int val;
 tree_node* left;
 tree_node* right;

 tree_node(int x) : val(x), left(nullptr), right(nullptr) {}
};

// 计算二叉树的深度
int max_depth(tree_node* root) {
 if (root == nullptr) {
 return 0; // 如果根结点为空,则深度为 0
 }

 int left_depth = max_depth(root->left);
 int right_depth = max_depth(root->right);

 ———————————————————————— // 在此处填入代码
}
A

return left_depth + right_depth;

B

return max(left_depth, right_depth);

C

return max(left_depth, right_depth) + 1;

D

return left_depth + right_depth + 1;

🔒

已解锁前 10 题

第 11~27 题(共 17 题)可在考试中作答
本卷为普通试卷:注册用户每题扣 1 积分(每日登录送 30 体验积分),交卷后查看答案与解析
海小星AI平台海小星AI平台

点亮AI梦想,编程未来之星。专业的青少年AI编程教育平台。

课程方向

  • AIGC人工智能
  • Scratch图形化
  • Python编程
  • C++/NOIP竞赛

联系我们

  • 北京市西城区万博苑7号楼3层F28室
  • +86-010-83553010
  • contact@seanova.cn

© 2026 海小星AI平台|京ICP备2022032747号

隐私政策服务条款