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

GESP C++ 6级 2026.06

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

下列关于 C++ 中继承和多态的描述中,错误的是( )。

A

通过基类指针调用虚函数时,会根据对象实际类型决定调用版本

B

基类析构函数常声明为虚函数,以便通过基类指针正确释放派生类对象。

C

派生类可以重写基类中的虚函数

D

构造函数可以声明为 virtual ,以便在构造对象时实现动态绑定

2
单选题号 #10567
分值 2

下列代码中, d1->work(); 和 d2->work(); 输出不同结果的主要原因是( )。

class Device {
public:
 virtual void work() {
 cout work();
 d2->work();
 delete d1;
 delete d2;
 return 0;
}
A

Printer 和 Scanner 使用了相同的构造函数

B

work() 是虚函数,且 d1 和 d2 实际指向不同派生类对象,发生动态绑定。

C

d1 和 d2 是不同的指针变量

D

程序中使用了 delete 释放对象

3
单选题号 #10568
分值 2

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

class Student {
public:
 Student(string n, int s) : name(n), score(s) {}
 string getName() {
 return name;
 }

 void setScore(int s) {
 score = s;
 }

private:
 string name;
 int score;
};

int main() {
 Student stu("Tom", 85);
 cout << stu.getName(); // ①
 stu.setScore(90); // ②
 stu.score = 100; // ③
 cout << stu.getName(); // ④
 return 0;
}
A

第 ① 行

B

第 ② 行

C

第 ③ 行

D

第 ④ 行

4
单选题号 #10569
分值 2

某文本编辑器把用户输入的字符依次压入栈 S 。用户依次输入 X, Y, Z, W 后,连续执行两次撤销操作。每次撤销都会弹出栈顶一个字符。此时栈从栈底到栈顶的内容是( )。

A

X Y

B

X Y Z

C

Y Z

D

X Z

5
单选题号 #10570
分值 2

假设循环队列数组长度为 N = 7 ,队空判断条件为 front == rear 。入队和出队操作如下:

const int N = 7;
int q[N];
int front = 3, rear = 3;

void enqueue(int x) {
 q[rear] = x;
 rear = (rear + 1) % N;
}

void dequeue() {
 front = (front + 1) % N;
}

依次执行:

enqueue(10);
enqueue(20);
enqueue(30);
dequeue();
enqueue(40);
dequeue();
enqueue(50);

最终 (front, rear) 的值是( )

A

(5, 1)

B

(4, 0)

C

(5, 0)

D

(3, 1)

6
单选题号 #10571
分值 2

以下函数 check() 用于判断一棵二叉树是否为( )。

bool check(TreeNode* root) {
 if (!root) return true;

 queue q;
 q.push(root);

 bool hasNull = false;
 
 while (!q.empty()) {
 TreeNode* cur = q.front();
 q.pop();

 if (cur == nullptr) {
 hasNull = true;
 } else {
 if (hasNull) return false;
 q.push(cur->left);
 q.push(cur->right);
 }
 }
 return true;
}
A

满二叉树

B

完全二叉树

C

二叉搜索树

D

平衡二叉树

7
单选题号 #10572
分值 2

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

void traverse(TreeNode* root) {
 if (root == NULL) return;

 cout val left);
 traverse(root->right);
}
A

前序遍历

B

中序遍历

C

后序遍历

D

层序遍历

8
单选题号 #10573
分值 2

已知一棵二叉树的先序遍历序列为 ABDEHCFG,中序遍历序列为 DBHEAFCG,则该二叉树的后序遍历序列为( )。

A

DHEBFGCA

B

DEHBFGCA

C

HDEBFCGA

D

DHEBGFCA

9
单选题号 #10574
分值 2

有 66 个字符,它们出现的次数分别为:{3,4,7,8,12,15}\{3, 4, 7, 8, 12, 15\} ,现在用哈夫曼编码为这些字符编码,最小加权路径长度 WPL 的值为( )。

A

113113

B

119119

C

126126

D

3131

10
单选题号 #10575
分值 2

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

A

3131

B

3232

C

6363

D

6464

🔒

已解锁前 10 题

第 11~27 题(共 17 题)需开通题库会员或使用积分包作答
本卷为 VIP 试卷:需开通题库会员(无限刷)或购买积分包(每题 1 积分);已购长期正课学员自动享有权益
海小星AI平台海小星AI平台

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

课程方向

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

联系我们

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

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

隐私政策服务条款