二、判断题(每题 2 分,共 20 分) 1、在⾯向对象中,⽅法在 C++的 class 中表现为 class 内定义的函数。( ) 【答案】正确 【考纲知识点】c++语言知识 【解析】方法在 c++中也就是类内的函数。 2、C++类的定义中,可以没有构造函数,会给出默认的构造函数( ) 【答案】正确 【考纲知识点】c++语言知识 【解析】构造函数没有,系统会给一个默认的构造函数。 3、如果某个 C++对象( object)⽀持下标运算符(⽅括号运算符),则该对象在所对应 class 中以成员函数的形式 进⾏了重载 。( ) 【答案】正确 【考纲知识点】c++语言知识 【解析】标准库类型 vector 和 string 都重载了下标运算符。 4、深度优先搜索(DFS,Depth First Search 的简写)属于图算法,其过程是对每⼀个可能的分⽀路径深⼊到不能再深⼊为⽌,⽽且每个节点只能访问⼀次。( ) 【答案】正确 【考纲知识点】算法知识 【解析】深搜就是“能深则深、不能深则退”。 5、哈夫曼编码(Huffman Coding)具有唯⼀性,因此有确定的压缩率。( ) 【答案】错误 【考纲知识点】算法知识 【解析】哈夫曼编码确实是唯一的。但是,这并不意味着它总是有确定的压缩率。压缩率通常定义为压缩后数据大小与原始数据大小的比值。对于哈夫曼编码来说,压缩率会受到输入数据的特性(如字符频率分布)的影响。不同的输入数据,即使使用相同的哈夫曼编码算法,也可能得到不同的压缩率。 6、在下⾯C++代码中,由于删除了变量 ptr,因此 ptr 所对应的数据也随之删除,故第 8⾏代码被执⾏时,将报错。 ( ) int * ptr = new int(10);
cout<< *ptr <<endl;
delete ptr;
cout<< *ptr <<endl;
【答案】错误 【考纲知识点】语法知识 【解析】一个指针的指向对象已被删除,那么就成了悬空指针。指针本身仍然存在,但它的指向变得不确定,因为原来的内存已经被释放并可能被重新分配给其他用途。可能会导致程序崩溃,但是可能正常执行。 7、⼆叉搜索树查找的平均时间复杂度为。 ( ) 【答案】正确 【考纲知识点】数据结构知识 【解析】若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。平均情况下是一分为二。 8、⼆叉搜索树可以是空树(没有任何节点)或者单节点树(只有⼀个节点),或者多节点。如果是多节点,则左节点的值⼩于⽗节点的值,右节点的值⼤于⽗节点的值,由此推理,右节点树的值都⼤于根节点的值,左节点树的值都⼩于根节点的值。 ( ) 【答案】正确 【考纲知识点】数据结构知识 【解析】若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。平均情况下是一分为二。 9、⼩杨想写⼀个程序来算出正整数 N 有多少个因数 ,经过思考他写出了⼀个重复没有超过 N/2 次的循环就能够算出来了 。 ( ) 【答案】正确 【考纲知识点】算法知识 【解析】可以的。N 除了自身,只能有 1 个大于等于n/2 的因子。 10、同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。 ( ) 【答案】正确 【考纲知识点】算法知识 【解析】都是相邻的数字交换。
(责任编辑:lizq) |