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

GESP C++ 6级 2023.12

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

关于C++类和对象的说法,错误的是( )。

A

在C++中,一切皆对象,即便是字面量如整数5等也是对象

B

在C++中,可以自定义新的类,并实例化为新的对象

C

在C++中,内置函数和自定义函数,都是类或者对象

D

在C++中,可以在自定义函数中嵌套定义新的函数

2
单选题号 #13058
分值 2

有关下面C++代码的说法,错误的是( )。

```cpp
class Rectangle
{
private:
 class Point
 {
 public:
 double x;
 double y;
 };
 Point a, b, c, d;
 double length;
 double width;
public:
A

C++中类内部可以嵌套定义类

B

在类中定义的类被称为内部类,定义类的类被称为外部类

C

内部类可以随便访问,不需要通过外部类来访问

D

代码中 Point 被称为内部类,可以通过外部类 Rectangle 来访问, Rectangle::Point

3
单选题号 #13059
分值 2

有关下面C++代码的说法,正确的是()。

#include 
using namespace std;
class NewClass
{
 public:
 static int objCounter;

};
int NewClass::objCounter = 2;
int main()
{
 NewClass classA;
 NewClass classB;
 cout << NewClass::objCounter << endl;
 cout << classB.objCounter << endl;
}
A

第14行代码错误,第15行正确

B

第15行代码错误,第14行代码正确

C

第14、15两行代码都正确

D

第6行代码可修改为 objCounter += 1

4
单选题号 #13060
分值 2

有关下面C++代码的说法,错误的是( )。

struct BiNode {
 char data;
 BiNode *lchild, *rchild;
};
class BiTree {
private:
 BiNode *Creat(); 
 void Release(BiNode *bt);
 BiNode *root;
public:
 BiTree() {
 root = Creat();
 }
 ~BiTree() {
 Release(root);
A

上列C++代码适用于构造各种二叉树

B

代码 struct BiNode 用于构造二叉树的节点

C

代码 BiTree(){root=Creat();} 用于构造二叉树

D

析构函数不可以省略

5
单选题号 #13061
分值 2

基于第4题的定义,有关下面C++代码的说法正确的是( )。

void Order(BiNode* bt)
{
 if (bt == nullptr)
 return;
 else
 {
 cout data;
 Order(bt->lchild);
 Order(bt->rchild);
 }
}
A

代码中 Order( ) 函数是中序遍历二叉树的方法

B

代码中 Order( ) 先访问根节点,然后对左子树进行前序遍历,再对右子树前序遍历

C

代码中 Order( ) 先访问中序遍历左子树,然后访问根节点,最后则是中序遍历右子树

D

代码中 Order( ) 先后序遍历左子树,然后后序遍历右子树,最后访问根节点

6
单选题号 #13062
分值 2

有关下面C++代码的说法正确的是( )。

typedef struct LinkNode {
 int data;
 LinkNode *next;
 LinkNode *prev;
} LinkList,LinkNode;
bool ListInit(LinkList *&L) {
 L = new LinkNode;
 if (!L) return false;
 L->next = NULL;
 L->prev = NULL;
 L->data = -1;
 return true;
}
A

上述代码构成单向链表

B

上述代码构成双向链表

C

上述代码构成循环链表

D

上述代码构成指针链表

7
单选题号 #13063
分值 2

对 hello world 使用霍夫曼编码(Huffman Coding),最少bit(比特)为( )。

A

4

B

32

C

64

D

88

8
单选题号 #13064
分值 2

下面的 fiboA() 和 fiboB() 两个函数分别实现斐波那契数列,该数列第 11、第 22 项值为 11,其余各项分别为前两项之和。下面有关说法错误的是( )。

int fiboA(int n){
 if (n == 0)
 return 1;
 if (n == 1)
 return 1;
 else{
 return fiboA(n - 1) + fiboA(n - 2);
 }
}

int fiboB(int n){
 if ((n == 0) || (n == 1)){
 fiboB[n] = n;
 return n;
 } else{
 if (fiboB[n] == 0){
 fiboB[n] = fiboB(n - 1) + fiboB(n - 2);
 }
 return fiboB[n];
 }
}
A

fiboA() 采用递归方式实现斐波那契数列

B

fiboB() 采用动态规划算法实现斐波那契数列

C

当N值较大时, fiboA() 存在大量重复计算

D

由于 fiboA() 代码较短,其执行效率较高

9
单选题号 #13065
分值 2

有关下面C++代码不正确的说法是( )。

int Depth(BiTree T)
{
 if (T == NULL)
 {
 return 0;
 }
 else
 {
 int m = Depth(T->lchild);
 int n = Depth(T->rchild);
 if (m > n)
 {
 return m + 1;
 }
 else
 {
 return n + 1;
 }
 }
}
A

该代码可用于求解二叉树的深度

B

代码中函数 Depth( ) 的参数 T 表示根节点,非根节点不可以作为参数

C

代码中函数 Depth( ) 采用了递归方法

D

代码中函数 Depth( ) 可用于求解各种形式的二叉树深度,要求该二叉树节点至少有 left 和 right 属性

10
单选题号 #13066
分值 2

下面有关树的存储,错误的是( )

A

完全二叉树可以用 list 存储

B

一般二叉树都可以用 list 存储,空子树位置可以用 None 表示

C

满二叉树可以用 list 存储

D

树数据结构,都可以用 list 存储

🔒

已解锁前 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号

隐私政策服务条款