#GESP202312C6T1. 单选题(每题 2 分,共 30 分)
单选题(每题 2 分,共 30 分)
单选题(每题 2 分,共 30 分)
第 1 题
关于 C++ 类和对象的说法,错误的是( )。
{{ select(1) }}
- 在 C++ 中,一切皆对象,即便是字面量如整数 等也是对象
- 在 C++ 中,可以自定义新的类,并实例化为新的对象
- 在 C++ 中,内置函数和自定义函数,都是类或者对象
- 在 C++ 中,可以在自定义函数中嵌套定义新的函数
第 2 题
有关下面 C++ 代码的说法,错误的是( )。
class Rectangle
{
private:
class Point
{
public:
double x;
double y;
};
Point a, b, c, d;
double length;
double width;
public:
{{ select(2) }}
- C++ 中类内部可以嵌套定义类
- 在类中定义的类被称为内部类,定义类的类被称为外部类
- 内部类可以随便访问,不需要通过外部类来访问
- 代码中
Point被称为内部类,可以通过外部类Rectangle来访问,Rectangle::Point
第 3 题
有关下面 C++ 代码的说法,正确的是( )。
using namespace std;
class newClass
{
public:
static int objCounter;
};
int newClass::objCounter = 2;
int main()
{
newClass classA;
newClass classB;
cout << newClass::objCounter << endl; // 第 14 行
cout << classB.objCounter << endl; // 第 15 行
}
{{ select(3) }}
- 第 14 行代码错误,第 15 行正确
- 第 15 行代码错误,第 14 行代码正确
- 第 14、15 两行代码都正确
- 第 6 行代码可修改为
objCounter += 1
第 4 题
有关下面 C++ 代码的说法,错误的是( )。
struct BiNode {
char data;
BiNode* lchid, *rchid;
};
class BiTree {
private:
BiNode* Creat();
void Release(BiNode* bt);
BiNode* root;
public:
BiTree() {
root = Creat();
}
~BiTree() {
Release(root);
}
};
{{ select(4) }}
- 上列 C++ 代码适用于构造各种二叉树
- 代码
struct BiNode用于构造二叉树的节点 - 代码
BiTree(){root=Creat();}用于构造二叉树 - 析构函数不可以省略
第 5 题
基于第 4 题的定义,有关下面 C++ 代码的说法正确的是( )。
void Order(BiNode* bt) {
if (bt == nullptr)
return;
else {
cout << bt->data;
Order(bt->lchid);
Order(bt->rchid);
}
}
{{ select(5) }}
- 代码中
Order()函数是中序遍历二叉树的方法 - 代码中
Order()先访问根节点,然后对左子树进行前序遍历,再对右子树前序遍历 - 代码中
Order()先访问中序遍历左子树,然后访问根节点,最后则是中序遍历右子树 - 代码中
Order()先后序遍历左子树,然后后序遍历右子树,最后访问根节点
第 6 题
有关下面 C++ 代码的说法正确的是( )。
typedef struct LinkList {
int data;
LinkList* next;
LinkList* 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;
}
{{ select(6) }}
- 上述代码构成单向链表
- 上述代码构成双向链表
- 上述代码构成循环链表
- 上述代码构成指针链表
第 7 题
对 hello world 使用霍夫曼编码(Huffman Coding),最少 bit(比特)为( )。
{{ select(7) }}
第 8 题
下面的 fiboA() 和 fiboB() 两个函数分别实现斐波那契数列,该数列第 、第 项值为 ,其余各项分别为前两项之和。下面有关说法错误的是( )。
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];
}
}
{{ select(8) }}
fiboA()采用递归方式实现斐波那契数列fiboB()采用动态规划算法实现斐波那契数列- 当 N 值较大时,
fiboA()存在大量重复计算 - 由于
fiboA()代码较短,其执行效率较高
第 9 题
有关下面 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;
}
}
}
{{ select(9) }}
- 该代码可用于求解二叉树的深度
- 代码中函数
Depth()的参数 T 表示根节点,非根节点不可以作为参数 - 代码中函数
Depth()采用了递归方法 - 代码中函数
Depth()可用于求解各种形式的二叉树深度,要求该二叉树节点至少有left和right属性
第 10 题
下面有关树的存储,错误的是( )。
{{ select(10) }}
- 完全二叉树可以用
list存储 - 一般二叉树都可以用
list存储,空子树位置可以用None表示 - 满二叉树可以用
list存储 - 树数据结构,都可以用
list存储
第 11 题
构造二叉树 [1,2,3,null,4]( )。
{{ select(11) }}
1(2()(4))(3)1(2(3)())(4)(1,2(3),(4))(1,(2)(3),(4))
第 12 题
下面有关布尔类型的函数的说法,正确的是( )。
{{ select(12) }}
bool类型函数只能返回 0 或者 1 两种值bool类型函数可以返回任何整数值bool类型函数必须有参数传递bool类型函数没有返回值
第 13 题
通讯卫星在通信网络系统中主要起到( )的作用。
{{ select(13) }}
- 信息过滤
- 信号中继
- 避免攻击
- 数据加密
第 14 题
小杨想编写一个判断任意输入的整数 是否为素数的程序,下面哪个方法不合适?( )
{{ select(14) }}
- 埃氏筛法
- 线性筛法
- 二分答案
- 枚举法
第 15 题
内排序有不同的类别,下面哪种排序算法和冒泡排序是同一类?( )
{{ select(15) }}
- 希尔排序
- 快速排序
- 堆排序
- 插入排序