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

2018年河南大学软件学院928专业基础课(程序设计、数据结构)[专业硕士]之数据结构考研仿真模拟五套题

  摘要

一、单项选择题

1. 某计算机存储器按字节编址, 采用小端方式存放数据。假定编译器规定int 和short 型长度分别为32位和16位, 并且数据按边界对齐存储。某C 语言程序段如下:

若record 变量的首地址为0xC008, 则地址中内容及的地址分别为( )。 A. B. C. D.

【答案】D 。

32位整数a 需要占4个字节, 16位整数c 需要占2个字节, 而字符数据b 占一个字节。【解析】

a=273, 转换成十六进制是111H , 采用小端方式存放数据, 地址

边界对齐存储,

地址

中存放c 。

2. 先序序列为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 ;

第 2 页,共 79 页 中的内容为11H 。由于数据按中存放b ,

地址中空闲,

地址中存放a ,

地址

c. 左子树为cd , 右子树为空。

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

3. 采用开址定址法解决冲突的哈希查找中,发生集聚的原因主要是( )。

A. 数据元素过多

B. 负载因子过大

C. 哈希函数选择不当

D. 解决冲突的算法选择不好

【答案】D

【解析】开放定址法就是从发生冲突的那个单元开始,按照一定的次序,从散列表中查找出一个空闲的存储单元,把发生冲突的待插入元素存入到该单元中的一类处理冲突的方法。

4. 一棵3阶B-树中含有2047个关键字,包括叶结点层,该树的最大深度为( )。

A.11

B.12

C.13

D.14

【答案】B

5. 求整数阶乘的算法如下, 其时间复杂度是( )。

A.

B.0(n) C. 2D.O(n)

【答案】B 。

【解析】设fact(n)的运行时间函数是T(n)。

该函数中语句①的运行时间是0(1), 语句②的运行时间是

算的时间。

因此, 当

则,

第 3 页,共 79 页 , 其中O(1)为乘法运时

, ; 。

当11>1时,

即fact(n)的时间复杂度为O(n)。

通过上表可以看出, 显然转换过程中同时保存在栈中的操作符的最大个数是5。

6. 有n(n>0) 个分支结点的满二叉树的深度是( )。

A.n 2﹣l

B.log 2(n+1) +1

C.log 2(n+1)

D.log 2(n—1)

【答案】C

【解析】满二叉树的结点总数=分支的结点总数+非分支的结点总数。由于此树为满二叉树,

所以非分支的结点总数为1,所以满二叉树共有n +1个结点,所以满二叉树的深度为log 2 (n+1) 。

第 4 页,共 79 页