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

2018年北京邮电大学软件学院807软件工程专业综合之数据结构考研强化五套模拟题

  摘要

一、填空题

1.

线性表

【答案】(n﹣1)/2

【解析】删除第一个元素需要移动n ﹣1次,以此类推,删除最后一个元素需要移动0次。平均次数为(n﹣l)*n/n/2=(n﹣l)/2。

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

【答案】选择;完全二叉树;

;O(1);满足堆的性质

3. —个有2001个结点的完全二叉树的高度是_____。

【答案】11

【解析】完全二叉树的高度

4.

给定一组数据WPL 的值为_____。

【答案】5;96

【解析】每次找两个最小的权值构建哈夫曼树:

以它构造一棵哈夫曼树,则树高为_____,带权路径长度

用数组表示,假定删除表中任一元素的概率相同,则删除一个元

素平均需要移动元素的个数是_____。

5. 顺序栈用

存储数据,栈顶指针是top ,则值为x 的元素入栈的操作是_____。

【答案】if(top!=n)data[++top]=x ;

【解析】先判断栈是否满,如果不满,元素入栈。否则返回溢出信息。

6. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元) 作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top =_____。

【答案】top ﹣1

【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,所以top ﹣1。

二、单项选择题

7. 先序序列为a , b , c , d 的不同二叉树的个数是( )。

A.13 B.14 C.15 D.16

【答案】B

【解析】二叉树的先序遍历定义为:若二叉树为空, 则空操作; 否则, 访问根节点, 然后先序遍历左子树, 最后先序遍历右子树。本题中, 结点a 为二叉树的根节点, 左右子树的先序遍历可能存在下面四种情况:

①左子树为空, bcd 为右子树; ②b 为左子树, cd 为右子树; ③bc 为左子树, d 为右子树; ④bcd 为左子树, 右子树为空。

然后将左右子树继续分解, 如第①种情况的右子树先序遍历(bcd)可能有: A. 左子树为空, 右子树为cd ; b. 左子树为c , 右子树为d ; c. 左子树为cd , 右子树为空。

按照这种方法继续分解左右子树, 直到不能再分解为止, 可得第①和④种情况各包含5种不同情况, 第②和③种情况各包含2种情况, 因此总共有14种不同的二叉树。

8. float 型整数据常用IEEE754单精度浮点格式表示, 假设两个float 型变量x 和Y 分别在32为寄存器f 1和f 2中, 若(f1) =CC900000H, (f2) =BOCOOOOOH, 则x 和y 之间的关系为:( )

A. xy且符号相同 D. x>y且符号不同 【答案】A

【解析】两个数对应的IEEE754的标准形式为;

将IEEE754单精度形式的二进制转化为浮点数公式为

由于f1, f2的符号位都是1, 所以f1, f2符号相同, 而阶码上f1>f2, 所以f1>f2, 所以f1的绝对值比f2大, 而他们都是负数, 所以f1

9. 有两个并发执行的进程P1和P2, 共享初值为1的变量x 。P1对x 加1, P2对x 减1。加1和减1操作的指令序列分别如下所示。

两个操作完成后, 2的值( )。 A. 可能为-1或3 B. 只能为1 C. 可能为0、1或2 D. 可能为-1、0、1或2 【答案】C

【解析】这是在数据库中常有的操作。为保证数据的正确, 避免产生错误, 系统必须保证数据的同步。而保证数据的同步一般采取加锁的方法, 让进程P1和P2互斥访问共享变量X 。当然用信号量和P 、V 操作也是可以保证互斥操作, 达到数据同步的。

本例中, 由于没有采取保证数据同步的相应措施, 则最后结果就会出现差错。例如, 当正常情况下, 进程P1和P2先后对x 操作, 可以看到x 值的变化为初始则x 值的变化为初始

的过程, 若P2, P1先后操作,

, 这是正确的。若考虑一种并发的情况, 进程P1和P2先后执行了取数

load 的操作, 它们得到的x 值均为1, 运算后, P1和P2的x 值分别为2和0, 此时要看哪个进程后执行存数store 的操作了, 哪个进程后操作, 结果就是那个进程的x 值, 所以可能的结果为0或2, 加上前面正确的x 值1, 则可能的结果就有3种了。

10.和顺序栈相比,链栈有一个比较明显的优势是( )。

A. 通常不会出现栈满的情况 B. 通常不会出现栈空的情况 C. 插入操作更容易实现 D. 删除操作更容易实现 【答案】A

11.用海明码对长度为8位的数据进行检/纠错时, 若能纠正一位错, 则校验位数至少为( )

A.2 B.3 C.4 D.5

【答案】C