2018年北京工业大学软件学院892软件专业基础综合[专业学位]之数据结构考研基础五套测试题
● 摘要
一、填空题
1. 起始地址为480,大小为8的块,其伙伴块的起始地址是_____;若块大小为32, 则其伙伴块的起始地址为_____; 。
【答案】480+8=488,480-32=448
【解析】起始地址为P ,大小为的内存块,其伙伴块的起始地址计算公式如下:
根据上述公式起始地址就为488。
2. 栈是_____的线性表,其运算遵循_____的原则。
【答案】操作受限(或限定仅在表尾进行插入和删除操作) ;后进先出
3. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_____存储结构。
【答案】顺序
【解析】顺序存储结构的存取操作比较方便,但插入和删除操作不如链式存储结构方便,而且需要连续的存储空间,由于该线性表的元素总数基本稳定,而且很少进行插入删除操作,为了更快的存取元素,顺序表更合适。
4. 下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:
(_____i);
=
_____.
_____
【答案】a +l ;n%10
【解析】通过递归算法,首先找到最高位的值,将其放到str 对应的数组中,依次反向获取从高位到地位的值,将其放到数组中,完成了将整数逆序放到一个字符数组中。
5. —棵左子树为空的二叉树在前序线索化后,其中的空链域的个数为_____。
【答案】2
【解析】只有根结点的做指针为空和最右边的叶结点的右指针为空。
6. 设单链表的结点结构为(data,next) ,next 为指针域,已知指针px 指向单链表中data 为x 的结点,指针py 指向data 为y 的新结点,若将结点y 插入结点x 之后,则需要执行以下语句: _____;_____;
【答案】py ﹣>next =px ﹣>next ;px ﹣>next =py
7. 若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的 _____和记录的_____。
【答案】比较;移动
8. 循环队列的引入,目的是为了克服_____。
【答案】假溢出时大量移动数据元素
【解析】用数组实现队列时,如果不移动,随着数据的不断读写,会出现假满队列的情况。即尾数组已满但头数组还是空的。循环队列也是一种数组,引入循环队列,有效克服假溢出大量移动数据元素的问题。
9. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4;2
10.顺序查找n 个元素的顺序表,若查找成功,则比较关键字的次数最多为_____次;当使用监视哨时,若查找失败,则比较关键字的次数为_____。
【答案】n ; n+1
【解析】最多的情况就是把整个表遍历了一遍。使用监视哨时,需要多一个存储空间来存监视哨。
11.无用单元是指_____,例_____
【答案】用户不再使用而系统没有回收的结构和变量;
12.数据结构是研讨数据的_____和_____以及它们之间的相互关系,并对与这种结构定义相应的_____, 设计出相应的_____。
【答案】逻辑结构;物理结构;操作(运算) ;算法
二、单项选择题
13.若无向图
是( )。
A.6
B.15
C.16
D.21
【答案】C
【解析】要保证无向图G 在任何情况下都是连通的, 即任意变动图G 中的边, G 始终保持连通。首先需要图G 的任意6个结点构成完全连通子图
再添加一条边将第7个结点与, 需条边, 然后连接起来, 共需16条边。本题非常容易错误地选择选项A , 主要原中含7个顶点, 则保证图G 在任何情况下都是连通的, 则需要的边数最少因是对“保证图G 在任何情况下都是连通的”的理解, 分析选项A , 在图G 中, 具有7个顶点6条边并不能保证其一定是连通图, 即有n-1条边的图不一定是连通图。分析选项D , 图G 有7个顶点21条边, 那么图G 一定是无向完全图, 无向完全图能保证其在任何情况下都是连通的, 但是这不符合题目中所需边数最少的要求。
14. 对同一待排序列分别进行折半插入排序和直接插入排序, 两者之间可能的不同之处是( )。
A. 排序的总趟数
B. 元素的移动次数
C. 使用辅助空间的数量
D. 元素之间的比较次数
【答案】D 。
【解析】折半插入排序所需附加存储空间和直接插入排序相同, 从时间上比较, 折半插入排序仅减少了关键字间的比较次数, 而记录的移动次数不变。折半插入排序的时间复杂度仍为, 所以两者之间的不同只可能是元素之间的比较次数。
15.用希尔排序方法对一个数据序列进行排序时, 若第1趟排序结果为9, 1, 4, 13, 7, 8, 20, 23, 15, 则该趟排序采用的增量(间隔) 可能是( )
A.2
B.3 C.4
D.5
【答案】B
【解析】对于A , 增量为2, 那么9, 4, 7, 20, 15是一组, 而它们是无序的, 所以A 错误
对于C , 增量为4, 那么9, 7, 15是一组, 而它们是无序的, 所以C 错误
对于D , 增量为5, 那么9, 8是一组, 降序, 1, 20是一组, 而它们是升序, 所以D 也错误。对于B , 分为3组:9, 13, 20; 1, 7, 23; 4, 8, 15都是升序有序, 所以B 正确