您的当前位置:首页正文

2015计算机专业基础综合真题及答案解析

2024-08-25 来源:客趣旅游网


2015 年全国硕士研究生入学统一考试

计算机学科专业基础综合试题

一、单项选择题:

140 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只

有一个选项符合题目要求。请在答题卡上将所选项的字母涂黑。

1.已知程序如下:

int s(int n)

{ return (n<=0) ? 0 : s(n-1) +n; }

void main() {

cout<< s(1);

}

程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是

A . main()->S(1)->S(0) C. main()->S(0)->S(1)

B. S(0)->S(1)->main()

D . S(1)->S(0)->main()

2. 先序序列为 a,b,c,d 的不同二叉树的个数是 A.13

B.14 C.15 D.16

3.下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫

曼树的是

A . 24, 10,5 和 24,10, 7 C.24, 10,10 和 24, 14, 11

B. 24, 10, 5 和 24, 12, 7

D. 24,10, 5 和 24, 14, 6

4.现在有一颗无重复关键字的平衡二叉树

(AVL 树) ,对其进行中序遍历可得到一个降

序序列。下列关于该平衡二叉树的叙述中,正确的是

A .根节点的度一定为 2 B.树中最小元素一定是叶节点

C.最后插入的元素一定是叶节点 D .树中最大元素一定是无左子树

5.设有向图 G=(V,E),顶点集 V={V 0,V 1,V 2,V 3} ,边集 E={,,},

若从顶点 V 0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是

A.2

B.3 C.4 D.5

kruskal )算法第二次选

6.求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(

中但不是普里姆( Prim)算法(从 V 4 开始)第 2 次选中的边是

A . (V1,V3) B. (V1,V4) C. (V2,V3) D. (V3,V4)

7.下列选项中,不能构成折半查找中关键字比较序列的是

A . 500, 200, 450, 180

B. 500,450, 200, 180

C.180, 500, 200, 450

D .180, 200, 500, 450

8.已知字符串 S 为 “ abaabaabacacaabaabcc模式”串. t 为 “ abaabc ”采用, KMP 算法进行

匹配,第一次出现 “失配 ”(s[i] != t[i]) 时, i=j=5, 则下次开始匹配时, i 和 j 的值分别是

A . i=1 , j=0

B. i=5 , j=0 C. i=5 , j=2 D. i=6 , j=2

9.下列排序算法中元素的移动次数和关键字的初始排列次序无关的是

A .直接插入排序

B.起泡排序 C.基数排序 D.快速排序

10.已知小根堆为 8,15,10,21,34, 16, 12,删除关键字 8 之后需重建堆,在此过

程中,关键字之间的比较数是

A.1 B.2 C.3

D.4

11.希尔排序的组内排序采用的是()

A .直接插入排序

B.折半插入排序 C .快速排序

D.归并排序

12.计算机硬件能够直接执行的是()

Ⅰ.机器语言程序

Ⅱ.汇编语言程序

B.仅Ⅰ Ⅱ

Ⅲ.硬件描述语言程序

A .仅Ⅰ

C.仅Ⅰ Ⅲ

D.ⅠⅡ Ⅲ

13.由 3 个“ 1”和 5 个“ 0”组成的 8 位二进制补码,能表示的最小整数是()

A . -126

B. -125 C. -32 D. -3

14.下列有关浮点数加减运算的叙述中,正确的是()

Ⅰ . 对阶操作不会引起阶码上溢或下溢 Ⅱ. 右规和尾数舍入都可能引起阶码上溢 Ⅲ. 左规时可能引起阶码下溢

Ⅳ. 尾数溢出时结果不一定溢出

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

15.假定主存地址为

32 位,按字节编址,主存和

Cache 之间采用直接映射方式,主存

块大小为 4 个字,每字 32 位,采用回写( Write Back )方式,则能存放 的总容量的位数至少是()

4K 字数据的 Cache

A . 146k

B. 147K

C. 148K D. 158K

16.假定编译器将赋值语句

“ x=x+3; 转”换为指令 ” add xaddt, 3,其”中 xaddt 是 x 对应的

存储单元地址,若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的

TLB ,

且 Cache 使用直写( Write Through )方式,则完成该指令功能需要访问主存的次数至少是

()

A . 0

B. 1 C. 2 D. 3

17.下列存储器中,在工作期间需要周期性刷新的是()

A . SRAM

B. SDRAM C. ROM D. FLASH

18.某计算机使用

4 体交叉存储器, 假定在存储器总线上出现的主存地址(十进制)序

列为 8005, 8006, 8007, 8008, 8001, 8002, 8003,8004 , 8000,则可能发生发生缓存冲突的地址对是()

A . 8004、 8008 B. 8002、 8007 C. 8001、 8008 D. 8000、 8004 19.下列有关总线定时的叙述中,错误的是()

A .异步通信方式中,全互锁协议最慢

B.异步通信方式中,非互锁协议的可靠性最差

C.同步通信方式中,同步时钟信号可由多设备提供

D.半同步通信方式中,握手信号的采样由同步时钟控制

20.若磁盘转速为 7200 转 /分,平均寻道时间为

8ms,每个磁道包含 1000 个扇区,则访

问一个扇区的平均存取时间大约是

( )

C. 16.3ms

D .20.5ms

A . 8.1ms

B . 12.2ms

21.在采用中断 I/O 方式控制打印输出的情况下,

CPU 和打印控制接口中的 I/O 端口之

间交换的信息不可能是

( )

B .主存地址

C.设备状态

D .控制命令

A .打印字符

22.内部异常 (内中断 ) 可分为故障 (fault) 、陷阱 (trap) 和终止 (abort) 三类。下列有关内部异常的叙述中,错误的 ( )

A .内部异常的产生与当前执行指令相关

B.内部异常的检测由

CPU 内部逻辑实现

C.内部异常的响应发生在指令执行过程中

D.内部异常处理的返回到发生异常的指令继续执行

23.处理外部中断时,应该由操作系统保存的是

( )

A .程序计数器 (PC)的内容

B .通用寄存器的内容

C.块表 (TLB) 的内容

D .Cache 中的内容

24.假定下列指令已装入指令寄存器。

则执行时不可能导致

CPU 从用户态变为内核态 (系

统态)的是()

A.DIV R0 , R1;(R0)/(R1)

→ R0

B.INT n ;产生软中断

C.NOT R0 ;寄存器 R0 的内容取非

D. MOV R0,addr ;把地址处的内存数据放入寄存器

R0 中

25.下列选项中会导致进程从执行态变为就绪态的事件是()

A .执行 P(wait) 操作 C.启动 I/O 设备

B .申请内存失败

D .被高优先级进程抢占

26.若系统 S1 采用死锁避免方法, Ⅰ. S1 会限制用户申请资源的顺序 Ⅱ. S1 需要进行所需资源总量信息,而

S2 采用死锁检测方法,下列叙述中正确的是()

S2 不需要

S2 会

C.仅Ⅰ Ⅲ

Ⅲ. S1 不会给可能导致死锁的进程分配资源, A.仅Ⅰ Ⅱ

27.系统为某进程分配了

B.仅Ⅱ Ⅲ

D.ⅠⅡⅢ

2,0,2,9,3,4,2,8,2,3,8,4,5 ,

4 个页框,该进程已访问的页号序列为

若进程要访问的下一页的页号为

7,依据 LRU 算法,应淘汰页的页号是()

C.4

D.8

A.2

B.3

28.在系统内存中设置磁盘缓冲区的主要目的是()

A .减少磁盘 I/O 次数 B.减少平均寻道时间 C.提高磁盘数据可靠性

D.实现设备无关性

29.在文件的索引节点中存放直接索引指针

10 个,一级二级索引指针各 1 个,磁盘块

大小为 1KB 。每个索引指针占

4 个字节。若某个文件的索引节点已在内存中,到把该文件

需访问的磁盘块个数

的偏移量 (按字节编址) 为 1234 和 307400 处所在的磁盘块读入内存。

分别是()

A.1,2

B.1,3 C.2, 3 D.2,4

30.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是()

A .可变分配,全局置换

B .可变分配,局部置换 D .固定分配,局部置换

C.固定分配,全局置换

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

41. 用单链表保存 m 个整数, 节点的结构为 (data,link) ,且 |data|例如若给定的单链表

head 如下

删除节点后的 head 为

要求

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

(2) 使用 c 或 c++语言,给出单链表节点的数据类型定义。

(3) 根据设计思想,采用 c 或 c++ 语言描述算法,关键之处给出注释。 (4) 说明所涉及算法的时间复杂度和空间复杂度。 42. 已知有 5 个顶点的图 G 如下图所示

请回答下列问题

(1) 写出图 G 的邻接矩阵 A( 行、列下标从 0 开始 )

2

(2) 求 A 2,矩阵 A 中位于 0 行 3 列元素值的含义是什么?

(3) 若已知具有 n(n>=2) 个顶点的邻接矩阵为

B,则 Bm(2<=m<=n) 非零元素的含义是什

么?

43. ( 13 分)某 16 位计算机主存按字节编码。

存取单位为 16 位;采用 16 位定长指令格式;

R0~R3 为通用寄存器; T 为暂存器; SR

CPU 采用单总线结构,主要部分如下图所示。图中

为移位寄存器,可实现直送

(mov) 、左移一位 (left) 、右移一位 (right)3 种操作,控制信号为

Srop,SR 的输出信号 Srout 控制; ALU 可实现直送 A(mova) 、 A 加 B(add)、 A 减 B(sub)、 A 与 B(and) 、 A 或 B(or) 、非 A(not) 、 A 加 1(inc)7 种操作,控制信号为 ALUop 。

请回答下列问题。

(1) 图中哪些寄存器是程序员可见的?为何要设置暂存器

T?

(2) 控制信号 ALUop 和 SRop 的位数至少各是多少?

(3) 控制信号 Srout 所控制邮件的名称或作用是什么?

(4) 端点① ~⑨中,哪些端点须连接到控制部件的输出端?

(5) 为完善单总线数据通路,需要在端点① ~⑨中相应的端点之间添加必要的连线。写出

连线的起点和终点,以正确表示数据的流动方向。 (6) 为什么二路选择器 MUX 的一个输入端是 2?

44. ( 10 分)题 43 中描述的计算机,其部分指令执行过程的控制信号如如题

44 图 a 所示。

题 44 图 a 部分指令控制信号

该机指令格式如题 44 图 b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为 0 和 1,通用寄存器 R0~R3 的编号分别为 0、1、 2 和 3。

题 44 图 b 指令格式

请回答下列问题。

(1)

该机的指令系统最多可定义多少条指令? 假定 inc 、shl 和 sub 指令的操作码分别为

01H、 02H 和 03H,则以下指令对应的机

(2)

器代码各是什么?

① inc R1 ② shl R2,R1

③ sub R3, (R1),R2

; R1+1→R1 ; (R1) << 1 →R2 ; ((R1)) –(R2) → R3

(3) 假定寄存器 X 的输入和输出控制信号分别为 Xin 和 Xout ,其值为 1 表示有效,为

0 表示无效(例如, PCout=1 表示 PC 内容送总线) ;存储器控制信号为 MEMop ,用于控制

存储器的读 (read)和写 (write) 操作。写出题 44 图 a 中标号①⑧处的控制信号或控制信号的

取值。

(4)

指令“ sub R1,R3,(R2) ”和“ inc R1 ”的执行阶段至少各需要多少个时钟周期?

45. 有 A 、B 两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题。将答案

和向对方提出的新问题组成一个邮件放入对方的邮箱中,设

A 的信箱最多放 M 个邮件, B

的信箱最多放

N 个邮件。 初始时 A 的信箱中有

x 个邮件( 0辩论者每取出一个邮件,邮件数减

1.

A 、 B 两人操作过程:

Code Begin A{

While(TRUE){

从 A 的信箱中取出一个邮件;回答问题并提出一个新问题;

将新邮件放入 B 的信箱;

} }

B{

While(TRUE){

从 B 的信箱中取出一个邮件;回答问题并提出一个新问题;

将新邮件放入 A 的信箱;

}

}

Code End

当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。

当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。

请添加必要的信号量和

P、 V (或 wait, signed )操作,以实现上述过程的同步,要求写

出完整过程,并说明信号量的含义和初值。

2015 年全国硕士研究生入学统一考试 计算机学科专业基础综合试题答案解析

一、单项选择题:

1 40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,

只有一个选项符合题目要求。请在答题卡上将所选项的字母涂黑。

1.已知程序如下:

int s(int n)

{ return (n<=0) ? 0 : s(n-1) +n; }

void main() {

cout<< s(1);

}

程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是

A . main()->S(1)->S(0)

B. S(0)->S(1)->main()

D. main()->S(0)->S(1)

D.S(1)->S(0)->main()

【参考答案】 D

【考查知识点 】栈的基本概念和函数调用的原理。 3. 先序序列为 a,b,c,d 的不同二叉树的个数是

A.13

B.14 C.15 D.16

【参考答案】 C

【考查知识点 】二叉树的基本概念。

3.下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫

曼树的是

A . 24, 10,5 和 24,10, 7 C.24, 10,10 和 24, 14, 11 【参考答案】 C

【考查知识点 】哈夫曼树的原理。 4.现在有一颗无重复关键字的平衡二叉树

B. 24, 10, 5 和 24, 12, 7 D. 24,10, 5 和 24, 14, 6

(AVL 树) ,对其进行中序遍历可得到一个降

序序列。下列关于该平衡二叉树的叙述中,正确的是

A .根节点的度一定为 2 B.树中最小元素一定是叶节点

C.最后插入的元素一定是叶节点 D .树中最大元素一定是无左子树

【参考答案】 B

【考查知识点 】树的中序遍历和

AVL 树的基本概念。

5.设有向图 G=(V,E),顶点集 V={V 0,V 1,V 2,V 3} ,边集 E={,,},

若从顶点 V 0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是

A.2

【参考答案】 D

B.3

C.4

D.5

【考查知识点 】图的深度优先遍历。

6.求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(

kruskal )算法第二次选

中但不是普里姆( Prim)算法(从 V 4 开始)第 2 次选中的边是

A . (V1,V3) B. (V1,V4) C. (V2,V3) D. (V3,V4)

【参考答案】 A

【考查知识点 】最小生成树算法的

Prim 算法和 Kruskal 算法。

7.下列选项中,不能构成折半查找中关键字比较序列的是

A . 500, 200, 450, 180 C.180, 500, 200, 450 【参考答案】 A

B. 500,450, 200, 180 D .180, 200, 500, 450

【考查知识点 】二分查找算法。

8.已知字符串 S 为 “ abaabaabacacaabaabcc, KMP 算法进行 模式”串. t 为 “ abaabc ”采用

匹配,第一次出现

“失配 ”(s[i] != t[i]) 时, i=j=5, 则下次开始匹配时, i 和 j 的值分别是

A . i=1 , j=0

B. i=5 , j=0 C. i=5 , j=2 D. i=6 , j=2

【参考答案】 C

【考查知识点 】模式匹配( KMP )算法。

9.下列排序算法中元素的移动次数和关键字的初始排列次序无关的是

A .直接插入排序 B.起泡排序 C.基数排序 D.快速排序

【参考答案】 B

【考查知识点 】几种排序算法的比较。

10.已知小根堆为 8,15,10,21,34, 16, 12,删除关键字 8 之后需重建堆,在此过

程中,关键字之间的比较数是

A.1

B.2 C.3 D.4

【参考答案】 B

【考查知识点 】最小堆的概念和最小堆的重建。

11.希尔排序的组内排序采用的是()

A .直接插入排序

B.折半插入排序 C .快速排序 D.归并排序

【参考答案】 A

【考查知识点 】希尔排序基本思想是: 先将整个待排元素序列分割成若干个子序列

(由

然后依次缩减增量

相隔某个 “增量 ”的元素组成的) 再进行排序,待

分别进行直接插入排序,

整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。

12.计算机硬件能够直接执行的是()

Ⅰ.机器语言程序

Ⅱ.汇编语言程序

Ⅲ.硬件描述语言程序

A .仅Ⅰ

B.仅Ⅰ Ⅱ

C.仅Ⅰ Ⅲ

D.ⅠⅡ Ⅲ

【参考答案】 A

【考查知识点】 用汇编语言等非机器语言书写好的符号程序称源程序 将源程序翻译成目标程序,目标程序是机器语言程序。

,运行时汇编程序要

13.由 3 个“ 1和” 5 个 “ 0组”成的 8 位二进制补码,能表示的最小整数是()

A . -126

B. -125 C. -32 D. -3

【参考答案】 B

【考查知识点】 二进制的补码表示。

14.下列有关浮点数加减运算的叙述中,正确的是()

Ⅰ . 对阶操作不会引起阶码上溢或下溢 Ⅱ. 右规和尾数舍入都可能引起阶码上溢 Ⅲ. 左规时可能引起阶码下溢

Ⅳ. 尾数溢出时结果不一定溢出

A .仅Ⅱ Ⅲ

B.仅ⅠⅡⅣ C.仅ⅠⅢ Ⅳ D.ⅠⅡ Ⅲ Ⅳ

【参考答案】 B

【考查知识点】 浮点数的加减运算。

15.假定主存地址为

32 位,按字节编址,主存和

Cache 之间采用直接映射方式,主存

块大小为 4 个字,每字 32 位,采用回写( Write Back )方式,则能存放 4K 字数据的 Cache

的总容量的位数至少是()

A . 146k

B. 147K

B

C. 148K D. 158K

【参考答案】

【考查知识点】

Cache 和主存的映射方式。直接映射方式地址映象规则:

主存储器中

一块只能映象到

Cache 的一个特定的块中。 (1) 主存与缓存分成相同大小的数据块。

(2)

主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块

数与缓存的总块数相等。

(3) 主存中某区的一块存入缓存时只能存入缓存中块号相同的

位置。

16.假定编译器将赋值语句

“ x=x+3; 转”换为指令 ” add xaddt, 3,其”中 xaddt 是 x 对应的

存储单元地址,若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的

TLB ,

()

且 Cache 使用直写( Write Through )方式,则完成该指令功能需要访问主存的次数至少是

A . 0

B. 1 C. 2 D. 3

【参考答案】

C

【考查知识点 】 考察了页式虚拟存储器及

TLB 快表。

17.下列存储器中,在工作期间需要周期性刷新的是()

A . SRAM

B. SDRAM C. ROM D. FLASH

【参考答案】 B

【考查知识点 】DRAM 使用电容存储,所以必须隔一段时间刷新(

refresh)一次,如果

存储单元没有被刷新,存储的信息就会丢失。

18.某计算机使用

4 体交叉存储器, 假定在存储器总线上出现的主存地址(十进制)序

列为 8005, 8006, 8007, 8008, 8001, 8002, 8003,8004 , 8000,则可能发生发生缓存冲 突的地址对是()

A . 8004、 8008 【参考答案】

B. 8002、 8007

C

C. 8001、 8008

D. 8000、 8004

【考查知识点 】 考察了存储器中的多模块存储器,多体并行系统。 19.下列有关总线定时的叙述中,错误的是() A .异步通信方式中,全互锁协议最慢

B.异步通信方式中,非互锁协议的可靠性最差

C.同步通信方式中,同步时钟信号可由多设备提供

D.半同步通信方式中,握手信号的采样由同步时钟控制

【参考答案】

B

【考查知识点 】考察了总线操作和定时,主要是同步定时与异步定时的定义及其特点。

20.若磁盘转速为 7200 转 /分,平均寻道时间为

8ms,每个磁道包含 1000 个扇区,则访

问一个扇区的平均存取时间大约是

( )

C. 16.3ms

D .20.5ms

A . 8.1ms

B . 12.2ms

【参考答案】 B

【考查知识点 】磁盘访问时间计算。

21.在采用中断 I/O 方式控制打印输出的情况下,

CPU 和打印控制接口中的 I/O 端口之

间交换的信息不可能是

( )

B .主存地址

C.设备状态

D .控制命令

A .打印字符

【参考答案】 A

【考查知识点 】程序中断 I/O 方式。

22.内部异常 (内中断 ) 可分为故障 (fault) 、陷阱 (trap) 和终止 (abort) 三类。下列有关内部

异常的叙述中,错误的

( )

A .内部异常的产生与当前执行指令相关

B.内部异常的检测由

CPU 内部逻辑实现

C.内部异常的响应发生在指令执行过程中

D.内部异常处理的返回到发生异常的指令继续执行

【参考答案】 A

【考查知识点 】内部异常概念。

23.处理外部中断时,应该由操作系统保存的是

( )

A .程序计数器 (PC)的内容

B .通用寄存器的内容

C.块表 (TLB) 的内容

D .Cache 中的内容

【参考答案】 A

【考查知识点 】外部中断处理过程。

24.假定下列指令已装入指令寄存器。

则执行时不可能导致

CPU 从用户态变为内核态 (系

统态)的是()

A . DIV R0 , R1;(R0)/(R1) → R0

B.INT n ;产生软中断

C.NOT R0 ;寄存器 R0 的内容取非

D. MOV R0,addr ;把地址处的内存数据放入寄存器

R0 中

【参考答案】 C

【考查知识点 】 CPU 用户态和内核态概念。

25.下列选项中会导致进程从执行态变为就绪态的事件是()

A .执行 P(wait) 操作

B .申请内存失败

C.启动 I/O 设备

D .被高优先级进程抢占

【参考答案】 D

【考查知识点 】进程间各状态的转化。

26.若系统

S1 采用死锁避免方法, S2 采用死锁检测方法,下列叙述中正确的是()

Ⅰ. S1 会限制用户申请资源的顺序

Ⅱ. S1 需要进行所需资源总量信息,而

S2 不需要

Ⅲ. S1 不会给可能导致死锁的进程分配资源,

S2 会

A.仅Ⅰ Ⅱ

B.仅Ⅱ Ⅲ C.仅Ⅰ Ⅲ

D.Ⅰ ⅡⅢ

【参考答案】 C

【考查知识点 】死锁相关概念。

27.系统为某进程分配了 4 个页框,该进程已访问的页号序列为

2,0,2,9,3,4,2,8,2,3,8,4,5 ,

若进程要访问的下一页的页号为

7,依据 LRU 算法,应淘汰页的页号是()

C.4

D.8

A.2

B.3

【参考答案】 C

【考查知识点 】 LRU 算法。

28.在系统内存中设置磁盘缓冲区的主要目的是()

A .减少磁盘 I/O 次数

B.减少平均寻道时间

C.提高磁盘数据可靠性

D.实现设备无关性

【参考答案】 A

【考查知识点 】磁盘和内存速度的差异。

29.在文件的索引节点中存放直接索引指针

10 个,一级二级索引指针各 1 个,磁盘块

大小为 1KB 。每个索引指针占

4 个字节。若某个文件的索引节点已在内存中,到把该文件

需访问的磁盘块个数

的偏移量 (按字节编址) 为 1234 和 307400 处所在的磁盘块读入内存。

分别是()

A.1,2

B.1,3 C.2, 3 D.2,4

【参考答案】 D

【考查知识点 】文件索引相关概念。

30.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是()

A .可变分配,全局置换

B .可变分配,局部置换 D .固定分配,局部置换

C.固定分配,全局置换

【参考答案】 D

【考查知识点 】页面分配策略和页面置换策略的概念和相应的方法。

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

41. 用单链表保存 m 个整数, 节点的结构为 (data,link) ,且 |data|一个时间复杂度尽可能高效地算法, 对于链表中绝对值相等的节点, 仅保留第一次出现的节点而删除其余绝对值相等的节点。

例如若给定的单链表

head 如下

删除节点后的 head 为

要求

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

(2) 使用 c 或 c++语言,给出单链表节点的数据类型定义。

(3) 根据设计思想,采用 c 或 c++ 语言描述算法,关键之处给出注释。 (4) 说明所涉及算法的时间复杂度和空间复杂度。

【参考答案】

(1) 算法思想:

定义一个大小为 N 的数组,初始化为 0.在遍历链表的同时将数组中索引值为节点的值

的绝对值的元素置 1.如果此元素已经为

1,说明此节点之前已经有与此节点的值的绝对值相

等的节点,需将此节点删除。

(2) 节点的数据结构定义如下:

typedef struct Node

{

Int data;

Struct Node * next;

}Node;

(3) int a[n]; // 全局数组 标志节点的绝对值的值是否出现过

void DeleteABSEqualNode(Node * head)

{

memset(a,0,n);

// 初始化为 0

if (head == NULL)

{

return NULL;

}

Node * p = head;

Node * r = head; while (p != NULL) {

if (a[abs(p->data)] == 1)

//如果此绝对值已经在节点值的绝对值中出现过

{

// 则删除当前节点

r->next = p->next; delete p; p = r->next;

} else

元素

//否则,将数组中对应的元素置

1,并将指针指向下一个

{

a[abs(p->data)] = 1; r = p;

p = p->next;

}

}

return head;

}

(4) 只遍历一次链表,所以时间复杂度为O(n) ,

因为申请大小为 n 的数组,所以空间复杂度为

O(n),( n 为节点绝对值的最大值) 。

【考查知识点】 链表的操作。

42. 已知有 5 个顶点的图 G 如下图所示

请回答下列问题

(1) 写出图 G 的邻接矩阵 A( 行、列下标从 0 开始 )

(2) 求 A 2,矩阵 A 2 中位于 0 行 3 列元素值的含义是什么?

(3) 若已知具有 n(n>=2) 个顶点的邻接矩阵为

B,则 Bm(2<=m<=n) 非零元素的含义是什

么?

【参考答案】

(1)邻接矩阵为

0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 3 0

( 2)

0 1 1 2 2 1 0 2 1 1

A2= 2 1 0 1 2

2 1 1 0 1

2 1 2 1 0

0 行 3 列的元素的含义是顶点

0 到顶点 3 的最短距离为 2.

i 行 j 列,如果

i==j ,则表示 i 顶点到

( 3)B m 中非零元素的含义是:假设此顶点位于

自己的距离为 0;如果 i ≠j,则表示顶点 i 到达不了顶点 j。

【考查知识点】 邻接矩阵的概念,最短路径。

43. ( 13 分)某 16 位计算机主存按字节编码。 存取单位为 16 位;采用 16 位定长指令格式; CPU 采用单总线结构,主要部分如下图所示。图中 为移位寄存器,可实现直送

R0~R3 为通用寄存器; T 为暂存器; SR

(mov) 、左移一位 (left) 、右移一位 (right)3 种操作,控制信号为

Srop,SR 的输出信号 Srout 控制; ALU 可实现直送 A(mova) 、 A 加 B(add)、 A 减 B(sub)、 A 与 B(and) 、 A 或 B(or) 、非 A(not) 、 A 加 1(inc)7 种操作,控制信号为 ALUop 。

请回答下列问题。

(1) 图中哪些寄存器是程序员可见的?为何要设置暂存器

T?

(2) 控制信号 ALUop 和 SRop 的位数至少各是多少?

(3) 控制信号 Srout 所控制邮件的名称或作用是什么?

(4) 端点① ~⑨中,哪些端点须连接到控制部件的输出端?

(5) 为完善单总线数据通路,需要在端点① ~⑨中相应的端点之间添加必要的连线。写出

连线的起点和终点,以正确表示数据的流动方向。 (6) 为什么二路选择器 MUX 的一个输入端是 2? 【参考答案】

(1) 图中程序员可见的寄存器有通用寄存器R0~R3 和程序计数器 PC;设置暂存器 T 用

于暂存数据总线发送的数据。

(2) ALUop 和 SRop 的位数分别为 3,2。

(6) 使 PC 自增 2 以获取下一条指令地址。

(3) Srout 所控制的部件作用是控制计算机运算结果的输出。 (4) 须连接到控制部件的输出端端点有①②③⑤⑧。 (5) ⑥→ ⑨,⑦ → ④。

【考查知识点 】寄存器相关概念及寄存器的操作,单总线结构

44. ( 10 分)题 43 中描述的计算机,其部分指令执行过程的控制信号如如题 44 图 a 所示。

题 44 图 a 部分指令控制信号

该机指令格式如题 44 图 b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方

式位分别为 0 和 1,通用寄存器 R0~R3 的编号分别为 0、1、 2 和 3。

题 44 图 b 指令格式

请回答下列问题。

(1)

该机的指令系统最多可定义多少条指令? 假定 inc 、shl 和 sub 指令的操作码分别为

01H、 02H 和 03H,则以下指令对应的机

(2)

器代码各是什么?

③ inc R1 ④ shl R2,R1

③ sub R3, (R1),R2

; R1+1→R1 ; (R1) << 1 →R2 ; ((R1)) –(R2) → R3

(3) 假定寄存器 X 的输入和输出控制信号分别为

Xin 和 Xout ,其值为 1 表示有效,为

0 表示无效(例如, PCout=1 表示 PC 内容送总线) ;存储器控制信号为 MEMop ,用于控制 存储器的读 (read)和写 (write) 操作。写出题 44 图 a 中标号① 取值。

⑧处的控制信号或控制信号的

(4)

指令 “ sub R1,R3,(R2)和 “”inc R1的”执行阶段至少各需要多少个时钟

周期?【参考答案】 (1) 128 (2) ① (3) ①

0280H ,② 0,②

04A8H ,③ 06EEH

mov ,③ mova,④ left ,⑤ read,⑥ sub,⑦ mov ,⑧ Srout。

(4) 至少各需要 8 和 7 个时钟周期。

【考查知识点 】指令的格式与寻址方式,指令执行过程

45. 有 A 、B 两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题。将答案

和向对方提出的新问题组成一个邮件放入对方的邮箱中,设

A 的信箱最多放 M 个邮件, B

的信箱最多放 N 个邮件。 初始时 A 的信箱中有 x 个邮件( 0辩论者每取出一个邮件,邮件数减

1.

A 、 B 两人操作过程:

Code Begin A{

While(TRUE){

从 A 的信箱中取出一个邮件;回答问题并提出一个新问题;

将新邮件放入 B 的信箱;

}

}

B{

While(TRUE){

从 B 的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入 A 的信箱;

}

}

Code End

当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。请添加必要的信号量和

P、 V (或 wait, signed )操作,以实现上述过程的同步,要求写出完整过程,并说明信号量的含义和初值。

【参考答案】

Semaphore mutexA=1; Semaphore mutexB=1; Semaphore emptyA=M; Semaphore emptyB=N; Semaphore fullA=0; Semaphore fullB=0;

Code Begin A{

While(TRUE){

P(fullA); P(mutexA)

Get a mail from A_mailbox ;

V(mutexA); V(fullA);

Answer the question and raise a question;

P(emptyB); P(mutexB)

send the mail to B ;

V(mutexB); V(emptyB);

}

}

B{

While(TRUE){

P(fullB); P(mutexB)

Get a mail from B_mailbox ; V(mutexB); V(fullB);

Answer the question and raise a question;

P(emptyA);

P(mutexA)

send the mail to A ; V(mutexA); V(emptyA);

}

}

Code End

【考查知识点 考察了利用信号量进程同步问题。

因篇幅问题不能全部显示,请点此查看更多更全内容