当前位置:问答库>考研试题

2018年北京联合大学数字艺术803软件基础之数据结构考研基础五套测试题

  摘要

一、填空题

1. 当两个栈共享一存储区时,栈利用一维数组stack(1,,1) 表示,两栈顶指针为top[l]与top[2],则当栈1空时,top[l]为_____,栈2空时,top[2]为_____,栈满时为_____。

【答案】0;n+1;top[l]+l=top[2]

【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。

2. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

h 为附加头结点指针

(_____)

_____;

【答案】(1)p!=NULL //链表未到尾就一直进行

(2)q //将当前结点作为头结点后的第一元素结点插入

3. 在一棵m 阶B-树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是_____; 若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是_____。 【答案】

【解析】m 阶B-树除根结点和叶子结点外,结点中关键字个数最多是m -1,最少

4. 堆是一种有用的数据结构。堆排序是一种_____排序,堆实质上是一棵_____结点的层次序列。对含有N 个元素的序列进行排序时,堆排序的时间复杂度是_____,所需的附加存储结点是_____。关键码序列05, 23, 16, 68, 94, 72, 71, 73是否满足堆的险质_____ 。

【答案】选择;完全二叉树;;O(1);满足堆的性质

5. 在一个无向图的的邻接表中,若表结点的个数是m ,则图中边的条数是_____条。 【答案】

【解析】对于无向图,在邻接表中,如果存在n 条边,则会有2n 个表结点。

二、单项选择题

6. 若某通信链路的数据传输速率为2400bps , 采用4相位调制, 则该链路的波特率是( )。

A.600波特

B.1200波特

C.4800波特

D.9600波特

【答案】B

【解析】注意无噪声下的码元速率极限值B 与信道带宽H 的关系:

特公式一无噪信道传输能力公式是

以得到波特率与数据传输速率的关系, 即, 而奈奎斯, N 为—个码元所取的离散值个数。从而可, 在本题中数据传输速率C=2400, N=4, 因此波特率是1200, 答案是B 。

7. 在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( )。

A. 直接插入排序

B. 起泡排序

C. 简单选择排序

D. 快速排序

【答案】A

【解析】当待排序列基本有序时,对冒泡排序来说,若最大关键字位于序列首部,则每趟排序仅能使其“下沉”一个位置,要使其下沉到底部仍需n -1趟排序,也即时间复杂度仍为0(n2)。而对简单选择排序来说,其比较次数与待排序列的初始状态无关;归并排序要求待排序列已经部分有序,而部分有序的含义是待排序列由若干有序的子序列组成,即每个子序列必须有序,并且其时间复杂度为;直接插入排序在待排序列基本有序时,每趟的比较次数大为降低,也

2即n -1趟,比较的时间复杂度由O(n) 降至O(n)。

8. 对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。

A. 每次分区后,先处理较短的部分

B. 每次分区后,先处理较长的部分

C. 与算法每次分区后的处理顺序无关

D. 以上三者都不对

【答案】A

【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为n+1。整个f 的最大深度为递归深度。

9. 在文件的索引节点中存放直接索引指针10个, 一级二级索引指针各1个, 磁盘块大小为1KB 。每个索引指针占4个字节。若某个文件的索引节点已在内存中, 到把该文件的偏移量(按字节编址) 为1234和307400处所在的磁盘块读入内存。需访问的磁盘块个数分别是( )。

A.1, 2

B.1, 3

C.2, 3

D.2, 4

【答案】B

【解析】文件的索引结点的直接索引指针有10个, 因此直接索引的偏移量范围是0〜2559, 一级索引的偏移量范围是2560〜65791, 二级索引访问的偏移量范围是65792〜45183907。偏移量1234可以通过直接索引得到在磁盘块的地址, 因此需要一次访问, 307400需要通过二级索引查找其在磁盘的位置, 需要分别访问存放二级索引的两个索引块以及对应的数据块。

10.若线性表最常用的操作是存取第I 个元素及其前驱和后继元素的值,为节省时间应采用的存储方式( )。

A. 单链表

B. 双向链表

C. 单循环链表

D. 顺序表

【答案】D

【解析】线性表采用顺序表,便于进行存取任一指定序号的元素。

11.对于栈操作数据的原则是( )

A. 先进先出

B. 后进先出

C. 后进后出

D. 不分顺序

【答案】B

【解析】先进先出是队列操作数据的原则。先进后出是栈操作数据的原则,栈限定在表尾进行插入和删除。

12.若用一个大小为6的数组来实现循环队列,且当前rear 和front 的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear ,front 的值分别为多少?( )

A.1和5

B.2和4

C.4和2

D.5和1