2014考研计算机学科专业基础综合真题及答案

 

 

一、单项选择题:1~40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是符合题目要求的。

 

  1. 下列程常段的时间复杂度是

 

  count=0;

 

  for(k=1;k<=n;k*=2)

 

  for(j=1;j<=n;j+1)

 

  count++;

 

  A.O(log2n) B.O(n) C.O(nlog2n) D.O(n2)

 

  2. 假设栈初始为空,将中缀表达式 转换为等价后缀表达式的过程中,当扫描到f时,栈中的元素依次是

A.+(*-

B.+(-*

C./+(*-*

D./+-*

 

  3. 循环两列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空,下列判断队空和队满的条件中,正确的是

 

  A.队空:end1==end2; 队满:end1==(end2+1)modM

 

  B.队空:end1==end2; 队满:end2==(end1+1)mod(M-1)

 

  C.队空:end2==(end1+1)modM ; 队满:end1==(end2+1)modM

 

  D.队空:end1==(end2+1)modM; 队满:end2==(end1+1)mod(M-1)

 

若对如下的二叉树进行中序线索化,则结点x的左、右线索指向的结点分别是

 

  5. 将森林F转换为对应的二叉树T,F中叶结点的个数等于

 

  A.T中叶结点的个数 B.T中度为1的结点个数

 

  C.T中左孩子指针为空的结点个数 D.T中右孩子指针为空的结点个数

 

  6. 5个字符有如下4种编码方案,不是前缀编码的是

 

  A.01,0000,0001,001,1 B.011,000,001,010,1

 

  C.000,001,010,011,100 D.000,001,010,011,100

 

  7. 对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是

 

  A.3,1,2,4,5,6 B.3,1,2,4,6,5

 

  C.3,1,4,2,5,6 D.3,1,4,2,6,5  

 

 

  8. 用哈希(散列)方法处理冲突(碰撞)时可能出现堆积(聚集)现象,下列选项中,会受堆积现象直接影响的是

 

  A.存储效率 B.数列函数

 

  C.装填(装载)因子 D.平均查找长度

 

  9.在一棵具有15个关键字的4阶B树中,含关键字的结点数最多是

 

  A.5 B.6 C.10 D.15

 

  10. 用希尔排序方法对一个数据序列进行排序时,若第1趟排序结果为9,1,4,13,7,8,20,23,15,则该趟排序采用的增量(间隔)可能是

 

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

 

  11. 下列选项中,不可能是快速排序第2趟排序结果的是

 

  A.2,3,5,4,6,7,9 B.2,7,5,6,4,3,9

 

C.3,2,5,4,7,6,9 D.4,2,3,5,7,6,9

 

12. 程序P在机器M上的执行时间是20秒,编译优化后,P执行的指令数减少到原来的70%,而CPI增加到原来的1.2倍,则P在M上的执行时间是

  A 8.4秒 B 11.7秒 C 14秒 D 16.8秒

 

  13. 若x=103,y=-25,则下列表达式采用8位定点补码运算实现时,会发生溢出的是

 

  A x+y B -x+y C x-y D -x-y

 

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

 

  A xy且符号相同 D x>y且符号不同

 

  15. 某容量为256M的存储器,由若干4M*8位的DRAM芯片构成,该DRAM芯片的地址引脚和数据引脚总数是:

 

  A 19 B 22 C 30 D 36

 

  16. 采用指令Cache与数据Cache分离的主要目的是

 

  A 减低Cache的缺失损失 B 蓄势Cache的命中率

 

  C 减低CPU平均访问时间 D 减少指令流水线资源冲突

 

  17. 某计算机有16个通用寄存器,采用32位定长指令字操作码字段(含寻址方式位)为8位,Store指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式,若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Store指令中偏移量的取值范围是

 

  A -32768~+32768 B -32767~+32768 C -65536~+65535 D -65535~+65536

 

  18. 某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微程序,各指令对应的微程序平均由4条微指令组成,采用断定法(下址字段法)确定下条微指令的地址,则微指令中下址字段的位数至少是:

 

  A 5 B 6 C 8 D 9

 

  19. 某同步总线采用数据线和地址伐复用方式。其中之地数据伐有红根,总伐时钟频率为66MHZ,每个时钟同期传送两次数据。(上升沿和下降沿各传送一次数据)该总线的最大数据传输率是(总线带宽):()

 

  A. 132MB/S B. 264 C.528 D. 1056

 

  20.一次总线事物中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元格读出或写入的个数,这种总伐事务方式称为()

 

  A. 并行传输 B.串行传输 C.突发 D.同步

 

  21.下列有关I/O借口的叙述中错误的是:

 

  A.状态端口和控制端口可以合用同一寄存器

 

  B. I/O接口中CPU可访问寄存器,称为I/O端口

 

  C.采用独立编址方式时,I/O端口地址和主存地址可能相同

 

  D.采用统一编址方式时,CPU不能用访存指令访问I/O端口

 

  22. 某设备中断请求的相应和处理时间为100ns,每400ns发出一次中断请求,中断相应所容许的最长延迟时间为50ns,则在该设备持续工作过程中CPU用于该设备的I/O时间占整个CPU时间百分比至少是

 

  A.12.5% B.25% C.37.5% D.50%

 

  23. 下列调整中,不可能导致饥饿现象的是

 

  A.时间片转移 B.静态优先及调度

 

  C.非抢占式作业优先 D.抢占式短作业优先

 

  24. 某系统有n台互斥使用的同类设备,3个并发进程需要3,4,5台设备,可确保系统发生死锁的设备数n最小为

 

  A.9 B.10 C.11 D.12

 

  25. 下列指令中,不能在用户态执行的是

 

  A.trap指令 B.跳转指令

 

  C.后栈指令 D.关断指令

 

  26. 一个进程的读磁区操作完成后,操作系统针对该进程-做的是

 

  A.修改进程状态为就绪态 B.降低进程优先级

 

  C.进程分配用户内存空间 D.增加进程的时间片大小

 

  27. 现有容量为10GB的磁盘分区,磁盘空间以簇(cluster)为单位进行分配,簇的大小为4KB,若采用位图法管理该分区的空闲空间,即用一位(bit)标识一个簇是否被分配,则存放该位图所需簇的个数为

 

  A.80 B.320 C.80K D.320K

 

  28. 下列措施中,能加快虚实地址转换的是1增大快表(TLB)2让页表常驻内存3增大交换区

 

  A.仅1 B.仅2 C.仅1,2 D.仅2,3

 

  29.在一个文件被用户进程首次打开的过程中,操作系统需做的是

 

  A.将文件内容读到内存中

 

  B.将文件控制块读到内存中

 

  C.修改文件控制块中的读写权限

 

  D.将文件的数据缓冲区首指针返回给用户进程

 

30.在页式存储管理系统中,采用某些页面置换算法,会出现Belady异常现象,即进程的缺页次数会随着分配给该进程的页框个数的增加而增加。下列算法中,可能出现Belady异常现象的是

  Ⅰ.LRU算法 Ⅱ.FIFO算法 Ⅲ.OPT算法

 

  A.仅Ⅱ

 

  B.仅ⅠⅡ

 

  C.仅ⅠⅢ

 

  D.仅Ⅱ Ⅲ

 

  31.下列关于管道(Pipe)通信的叙述中,正确的是

 

  A.一个管道可实现双向数据传输

 

  B.管道的容量仅受磁盘容量大小限制

 

  C.进程对管道进行读操作和写操作都可以被阻塞

 

  D.一个管道只能有一个读写进程或一个写进程对其操作

 

  32. 下列选项中,属于多级页表优点的是

 

  A.加快地址变换速度 B.减少缺页中断次数

 

  C.减少页表项所占字节数 D.减少页表所占的连续内存空间

 

  33. 在OSI参考模型中,直接为会话层提供服务的是

 

  A.应用层 B.表示层 C.传输层 D.网络层

 

  34.某以太网拓扑及交换机当前转发表如下图所示,主机00-e1-d5-00-23-a1向主机00-e1-d5-00-23-c1发送1个数据帧,主机00-e1-d5-00-23-c1收到该帧后,向主机00-e1-d5-00-23-a1发送一个确认帧,交换机对这两个帧的转发端口分别是

 

  A. 和 B. 和 C. 和 D. 和 目的地址端口

 

 

35.下列因素中,不会影响信道数据传输速率的是

 

  A.信噪比 B.频率宽带 C.调制速率 D.信号传播速度

 

  36.主机甲与主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道宽带为100Mbps,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲乙之间的单向传播延迟是50ms,则甲可以达到的最大平均数据传输速率约为

 

  A.10 Mbps B.20 Mbps C.80 Mbps D.100 Mbps

 

  37.站点A、B、C通过CDMA共享链路,A、B、C的码片序列(chipping sequence)分别是(1,1,1,1)、(1,-1,1,-1)和(1,1,-1,-1),若C从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是

 

  A.000 B.101 C.110 D.111

 

  38.主机甲和乙已建立了TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是

 

  A.10KB B. 12KB C. 14KB D. 15KB

 

  39.下列关于UDP协议的叙述中,正确的是

 

  Ⅰ 提供无连接服务

 

  Ⅱ 提供复用/分用服务

 

  Ⅲ 通过差错校验,保障可靠数据传输

 

  A.仅Ⅰ B. 仅Ⅰ、Ⅱ C. 仅Ⅱ、Ⅲ D. Ⅰ、Ⅱ、Ⅲ

 

  40、使用浏览器访问某大学Web网站主页时,不可能使用的协议是

 

  A.PPP B. ARP C. UDP D. SMTP

 

  二、综合应用题:41~47小题,共70分。

 

  leftweightright

 

  41.(13分)二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和,给定一棵二叉树T,采用二叉链表存储,节点结构为:

 

  其中叶节点的weight域保存该结点的非负权值。设root为指向T的根节点的指针,设计求T的WPL的算法。要求:

 

  (1)给出算法的基本设计思想;

 

  (2)使用C或C++语言,给出二叉树结点的数据类型定义;

 

  (3)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。

 

  42. (10分)某网络中的路由器运行OSPF路由协议,题42表是路由器R1维护的主要链路状态信息(LSI),题42图是根据题42表及R1的接口名构造出来的网络拓扑。

 

  题42表R1所维护的LSI

 

 

 

请回答下列问题。

  (1) 本题中的网络可抽象为数据结构中的哪种逻辑结构?

 

  (2) 针对题42表中的内容,设计合理的链式存储结构,以保存题42表中的链路状态信息(LSI)。要求给出链式存储结构的数据类型定义,并画出对应题42表的链式存储结构示意图(示意图中可仅以ID标识节点)。

 

  (3) 按照迪杰斯特拉(Dijikstra)算法的策略,依次给出R1到达题42图中子网192.1.x.x的最短路径及费用。

 

  43. (9分)请根据题42描述的网络,继续回答下列问题。

 

  (1)假设路由表结构如下表所示,请给出题42图中R1的路由表,要求包括到达题42图中子网192.1.x.x的路由,且路由表中的路由项尽可能少。

 

  目的网络下一跳接口

 

  (2)当主机192.1.1.130向主机192.1.7.211发送一个TTL=64的IP分组时,R1通过哪个接口转发该IP分组?主机192.1.7.211收到的IP分组的TTL是多少?

 

  (3)若R1增加一条Metric为10的链路链接Internet,则题42表中R1的LSI需要增加哪些信息?

 

  44.某程序中有有如下循环代码段 “for(i=0;i

 

编号地址机器代码汇编代码注释 

 

 

执行上述代码的计算机M采用32位定长指令字,其中分支指令Bne采用如下格式,

 

  Op为操作码:Rs和Rd为寄存器编号:OFFSET为偏移量,用补码表示。请回答下列问题,并说明理由。

 

  (1)M的存储器编址单位是什么?

 

  (2)已知sll指令实现左移功能,数组A中每个元素占多少位?

 

  (3)题44表中bne指令的OFFSET字段的值是多少?已知bne指令采用相对寻址方式,当前PC内容为bne指令地址,通过分析题44表中指令地址和bne指令内容,推断出bne指令的转移目标地址计算公式。

 

  (4)若M采用如下“按序发射、按序完成”的5级指令流水线:IF(取指)、ID(译码及取数)、EXE(执行)、MEM(访存)、WB(写回寄存器),且硬件不采取任何转发措施,分支指令的执行均引起3个时钟周期阻塞,则P中那些指令的执行会由于数据相关而发生流水线阻塞?哪条指令的执行会发生控制冒险?为什么指令1的执行不会因为与指令5的数据相关而发生阻塞?

 

  45. 假设对于44题中的计算机M和程序P的机器代码,M采用页式虚拟存储管理。P开始执行时,(R1)= (R2)=0. (R2)=1000,其机器代码已调入主最后存但不在Cache中;数组A未调入主存,其所有数组元素在同一页,并存储在磁盘同一个地区,请回答下列问题,并说明理由。

 

  (1)P执行结束时,R2的内容是多少?

 

  (2)M的指令Cache和数据Cache分离,若指令Cache共有16行,Cache和主存交换的块大小为32字节,则其数据区的容量是多少?若仅考虑程序段P的执行,则指令Cache的命中率为多少?

 

  (3)P在执行过程中,哪条指令的执行可能发生溢出异常?哪条指令的执行可能产生缺页异常?对于数组A的访问,需要读磁和TLB至少各多少次?

 

参考答案

 

一、单项选择题:每小题 2 分,共 80 分。

1.C

2.B

3.A

4.D

5.C

6.D

7.D

8.D

9.D

10.B

11.C

12.D

13.C

14.A

15.A

16.D

17.A

18.C

19.C

20.C

21.D

22.B

23.A

24.B

25.D

26.A

27.A

28.C

29.B

30.A

31.C

32.D

33.C

34.B

35.D

36.C

37.B

38.A

39.B

40.D

二、综合应用题:41~47 小题,共 70 分。

41.【答案要点】

【答案一】

(1)算法的设计思想:(4 分)

递归遍历二叉树,利用一个参数同时对深度进行计数。 叶结点的带权路径长度=该结点的

weigth 值*该结点的深度。每个叶结点的带权路径长度都可以求出,二叉树的 WPL 值=树种

全部叶结点的带权路径长度之和=根结点左子树中全部叶结点的带权路径长度之和+根结点

右子树中全部叶结点的带权路径长度之和。递归进行求和,即可求出二叉树的带权路径长度。

(2)算法中使用的二叉树结点的数据类型定义如下:(2 分)

typedef struct BTnode

{

unsigned int weight;

//结点的非负权值

struct BTnode * lchild,* rchild;

//左右指针

}BTnode;

(3)算法实现:(7 分)

int main()

{

return WPL(root,0);

//初始化深度,调用 WPL 函数

}

int WPL(BTnode * root,int d)

//其中 d 为结点深度

{

if(root->lchild==NULL&&root->rchild==NULL)

//root 为叶子结点

return (root->weight * d);

//返回该叶子结点的带权路径长度

else

return(WPL(root-> lchild,d+1)+WPL(root->rchild,d+1));

/*返回左右子树中全部叶结点的带权路径长度之和*/

}

【答案二】第 10 页 共 18 页

(1)算法的设计思想:(4 分)

若借用非叶结点的 weight 域保存其孩子结点中 weight 域值的和,则树的 WPL 等于树

中所有非叶结点 weight 域值之和。

采用后序遍历策略,在遍历二叉树 T 时递归计算每个非叶结点的 weight 域的值,则树

T 的 WPL 等于根结点左子树的 WPL+右子树的 WPL+根结点中 weight 域的值。

(2)算法中使用的二叉树结点的数据类型定义同【答案一】。(2 分)

(3)算法实现:(7 分)

int WPL(BTnode * root)

//基于递归的后序遍历算法实现

{

int w_l,w_r;

if(root->lchild==NULL&&root->rchild==NULL)

//root 为叶子结点

return 0;

else

{

w_l = WPL(root->lchild);

//计算左子树的 WPL

w_r = WPL(root->rchild);

//计算右子树的 WPL

root ->weight = root->lchild->weight + root->rchild->weight;

//填写非叶结点的 weight 域

return(w_l+w_r+root->weight); //返回 WPL 值

}

}

【评分说明】

①若考生给出能够满足题目要求的其他算法(包括用非递归的遍历方式实现的算法),且正

确,可同样给分。

②参考答案中只给出了使用 C 语言的版本,使用 C++语言正确实现的算法同样给分。

③若对算法的基本设计思想和主要数据结构的描述不十分清晰,但在算法实现中能够清晰反

映出算法思想且正确,参照①的标准给分。

④若考生给出的二叉树结点的数据类型定义及算法实现中,使用的是除整型之外的其他数值

类型,可视同使用整型类型。

⑤若考生给出的答案中算法主要设计思想或算法实现中部分正确,可酌情给分。

42.【答案要点】

(1)本题中的网络可抽象为图结构。(1 分)

【评分说明】只要考生的答案中给出与图的含义相似的描述,例如“网状结构”,“非线性结

构”等,同样给分。

(2)链式存储结构的数据类型定义如下:(3 分)

typedef struct LinkNode

{

unsigned int ID;

//所连路由器的 Router ID

unsigned int IP;

//本地 IP 地址

}LinkNode;

//Link 的结构第 11 页 共 18 页

typedef struct NetNode

{

unsighed int Prefix;

//IP 前段

unsighed int Mask;

//掩码

}NetNode;

//Net 的结构

typedef struct ArcNode

{

int Flag;

//当 Flag=1 时,表示 Link;当 Flag=2 时,表示 Net

union

{

LinkNode Lnode;

NetNode Nnode;

}LinkORNet;

//用 union 定义 Link 结点和 Net 结点

unsighed int Metric;

//费用

struct ArcNode * Next; //用于指向下一个弧结点的指针

}ArcNode;

//弧结点的结构

typedef struct HNode

{

unsighed int RouterID; //路由器的 Router ID

ArcNode * LN_link;

//用于指向弧结点的指针

struct HNode * Next;

//用于指向下一个表头结点的指针

}HNode;

//表头结点的结构

对应题 42 表的链式存储结构示意图如下。(2 分)

【评分说明】

①若考生给出的答案是将链表中的表头结点保存在一个一维数组中(即采用邻接表形式),

同样给分。

②若考生给出的答案中,弧结点没有使用 union 定义,而是采用两种不同的结构分别表示

Link 和 Net,同样在表头结点中定义了两个指针,分别指向由这两种类型的结点构成的两个

链表,同样给分。

③考生所给的答案的弧结点中,可以在单独定义的域中保存各直连网络 IP 地址的前缀长度,

也可以与网络地址保存在同一个域中。

④数据类型定义中,只要采用了可行的链式存储结构,并保存了题目中所给的 LSI 信息,例

如将网络抽象为一类结点,写出含 8 个表头结点的链式存储结构,均可参照①~③的标准给

分。

⑤考生给出的答案中,图示部分应与其数据类型定义部分一致,图示只要能够体现链式存储

结构及题 42 图中的网络连接关系(可以不给出结点内的细节信息),即可给分。

⑥若解答不完全正确,酌情给分。