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

2018年福建师范大学软件学院842软件工程专业基础综合之数据结构考研基础五套测试题

  摘要

一、填空题

1. 已知一循环队列的存储空间为

则此循环队列判满的条件是_____ 【答案】

2. 对n 个记录的表

【答案】n (n-1) /2

【解析】第一次需要n -1次比较,第i 此需要n -i 此比较,所以共需要

3. 建立索引文件的目的是_____。

【答案】提高查找速度

4. 完善算法:求KMP 算法.next 数组。

k :=_____;next[1]:=0;

k :=_____;

END ;

【答案】0;next[k]

5. 设单链表的结点结构为(data,next) ,next 为指针域,已知指针px 指向单链表中data 为x 的结点,指针py 指向data 为y 的新结点,若将结点y 插入结点x 之后,则需要执行以下语句: _____;_____;

【答案】py ﹣>next =px ﹣>next ;px ﹣>next =py

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

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

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

,其中n >m ,队头和队尾指针分别为front 和rear , 进行简单选择排序,所需进行的关键字间的比较次数为_____。 。

7. 在下面的程序段中,对X 的赋值语句的时间复杂度为_____ (表示为n 的函数) 。

【答案】1+(1+2) +(1+2+3) +…+(l+2+…+n) =n(n+1)(n+2)/6,即O(n)

【解析】当i =l 时,赋值语句就被执行了一次。当i =2时,赋值语句被执行了1+2次。当i =3时,赋值语句被执行了1+2+3次。...... 可以推出赋值语句总共被执行了1+(1+2) +(1+2+3) +…+(l+2+... +n) =n(n+1)(n+2)/6次。

8. 已知链队列的头尾指针分别是f 和r ,则将值x 入队的操作序列是_____。

【答案】S =(LinkedList*)malloc(sizeof (LNode));s ﹣>data =x ;s ﹣>next =r ﹣>next ;r ﹣>next =s ;r =s ;

【解析】队列采用链式存储结构,先分配一个节点的内存,然后在队尾添加该节点。

9. 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称增

量序列) 依次是4, 2, 1则排序需_____趟,写出第一趟结束后,数组中数据的排列次序_____。

【答案】3; (10,7,-9,0,47,23,1,8,98,36)

10.栈是_____的线性表,其运算遵循_____的原则。

【答案】操作受限(或限定仅在表尾进行插入和删除操作) ;后进先出

11.高度为4的3阶B-树中,最多有_____个关键字。

【答案】26

【解析】第4层是叶结点,1层至3层每个结点两个关键字,每个节点的关键字达到最大时,关键字最多。

12.顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。

【答案】物理上相邻;指针

【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。

二、单项选择题

13.下列四个序列中,哪一个是堆( )?

A.75,65,30,15,25,45,20,10

B.75,65,45,10,30,25,20,15

C.75,45,65,30,15,25,20,10

D.75,45,65,10,25,30,20,15

【答案】C

【解析】堆的定义:

n 个关键字序列

①②且且 称为堆,当且仅当该序列满足如下性质(简称为堆性质) : 小根堆:满足第①种情况的堆;

大根堆:满足第②种情况的堆。

根据堆定义即可得出答案。

14.已知串其Next 数组值为( )。

A.0123

B.1123

C.1231

D.1211

【答案】A

【解析】KMP 算法的next 数组建立的原则

15.设有一个n 行n 列的对称矩阵A ,将其下三角部分按行存放在一个一维数组B 中,A[0][0]存放于B[0]中,那么第i 行的对角元素A[i][i]存放于B 中( )处。

A.(i+3)*i/2

B.(i+1)*i/2

C.(2n﹣i +l)*i/2

D.(2n﹣i ﹣l)*i/2

【答案】A

【解析】A[i][i]中列标不大于行标,又A[0][0]存放在B[0]中,所以A[i][i]存放的位置为i*(i+l)/2+i +l ﹣l =i*(i+3)/2。

16.分区分配内存管理方式的主要保护措施是( ).

A. 界地址保护

B. 程序代码保护

C. 数据保护

D. 栈保护

【答案】A

【解析】对于连续分配算法,无论固定分区或动态分区方法,程序都必须全部调入内存,不

相关内容

相关标签