2015 计算机专业基础综合真题及答案解析
2015年全国硕士研究生入学统一考试
计算机学科专业基础综合试题
一、单项选择题:140小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项符合题目要求。请在答题卡上将所选项的字母涂黑。
1.已知程序如下:
int s(int n)
{ return (n
void main()
{ cout
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是
A .main()->S(1)->S(0) B .S(0)->S(1)->main()
C . m ain()->S(0)->S(1) 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 B .24,10,5和24,12,7
C .24,10,10和 24,14,11 D .24,10,5和 24,14,6
4.现在有一颗无重复关键字的平衡二叉树(A VL 树), 对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是
A .根节点的度一定为2 B .树中最小元素一定是叶节点
C .最后插入的元素一定是叶节点 D .树中最大元素一定是无左子树
5.设有向图G=(V,E) ,顶点集V={V0,V 1,V 2,V 3},边集E={,,,},若从顶点V 0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是
A .2 B .3 C .4 D .5
6.求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(kruskal )算法第二次选中但不是普里姆(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.快速排序
12.计算机硬件能够直接执行的是()
Ⅰ.机器语言程序 Ⅱ.汇编语言程序
A .仅Ⅰ B .仅Ⅰ Ⅱ Ⅲ.硬件描述语言程序 D .ⅠⅡ Ⅲ D .归并排序 C .仅Ⅰ Ⅲ
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个扇区,则访问一个扇区的平均存取时间大约是( )
A .8.1ms B .12.2ms C .16.3ms D .20.5ms
21.在采用中断I/O方式控制打印输出的情况下,CPU 和打印控制接口中的I/O端口之间交换的信息不可能是( )
A .打印字符 B .主存地址 C .设备状态 D .控制命令
22.内部异常(内中断) 可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的( )
A .内部异常的产生与当前执行指令相关
B .内部异常的检测由CPU 内部逻辑实现
C .内部异常的响应发生在指令执行过程中
D .内部异常处理的返回到发生异常的指令继续执行
23.处理外部中断时,应该由操作系统保存的是( )
A .程序计数器(PC)的内容
C .块表(TLB)的内容 B .通用寄存器的内容 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 采用死锁避免方法,S2采用死锁检测方法,下列叙述中正确的是() Ⅰ.S1会限制用户申请资源的顺序
Ⅱ.S1需要进行所需资源总量信息,而S2不需要
Ⅲ.S1不会给可能导致死锁的进程分配资源,S2会
A .仅Ⅰ Ⅱ B .仅Ⅱ Ⅲ C .仅Ⅰ Ⅲ D .Ⅰ Ⅱ Ⅲ
27.系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,3,8,4,5,若进程要访问的下一页的页号为7,依据LRU 算法,应淘汰页的页号是()
A .2 B .3 C .4 D .8
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.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是()
二、综合应用题:41~47小题,共70分。
41. 用单链表保存m 个整数,节点的结构为(data,link),且|data|
例如若给定的单链表head 如下
A .可变分配,全局置换 C .固定分配,全局置换 B .可变分配,局部置换 D .固定分配,局部置换
删除节点后的head 为
要求
(1) 给出算法的基本思想
(2) 使用c 或c++语言,给出单链表节点的数据类型定义。 (3) 根据设计思想,采用c 或c++语言描述算法,关键之处给出注释。 (4) 说明所涉及算法的时间复杂度和空间复杂度。
42. 已知有5个顶点的图G 如下图所示
请回答下列问题
(1) 写出图G 的邻接矩阵A(行、列下标从0开始)
(2) 求A 2,矩阵A 2中位于0行3列元素值的含义是什么?
(3) 若已知具有n(n>=2)个顶点的邻接矩阵为B ,则B m (2
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?
44. (10分)题43中描述的计算机,其部分指令执行过程的控制信号如如题44图a 所示。
题44图a 部分指令控制信号
该机指令格式如题44图b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为0和1,通用寄存器R0~R3的编号分别为0、1、2和3。
题44图b 指令格式
请回答下列问题。
(1) 该机的指令系统最多可定义多少条指令?
(2) 假定inc 、shl 和sub 指令的操作码分别为01H 、02H 和03H ,则以下指令对应的机 器代码各是什么?
① inc R1 ; R1 + 1→R1
② shl R2,R1 ; (R1)
③ sub R3, (R1),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
A 、B 两人操作过程:
Code Begin
A{
While(TRUE){
从A 的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入B 的信箱;
}
}
B{
While(TRUE){
从B 的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入A 的信箱;
}
}
Code End
当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。
当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。
请添加必要的信号量和P 、V (或wait, signed)操作,以实现上述过程的同步,要求写出完整过程,并说明信号量的含义和初值。
2015年全国硕士研究生入学统一考试
计算机学科专业基础综合试题答案解析
一、单项选择题:140小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项符合题目要求。请在答题卡上将所选项的字母涂黑。
1.已知程序如下:
int s(int n)
{ return (n
void main()
{ cout
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是
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 B .24,10,5和24,12,7
C .24,10,10和 24,14,11 D .24,10,5和 24,14,6
【参考答案】C
【考查知识点】哈夫曼树的原理。
4.现在有一颗无重复关键字的平衡二叉树(A VL 树), 对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是
A .根节点的度一定为2 B .树中最小元素一定是叶节点
C .最后插入的元素一定是叶节点 D .树中最大元素一定是无左子树
【参考答案】B
【考查知识点】树的中序遍历和A VL 树的基本概念。
5.设有向图G=(V,E) ,顶点集V={V0,V 1,V 2,V 3},边集E={,,,},若从顶点V 0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是
A .2 B .3 C .4 D .5
【参考答案】D
【考查知识点】图的深度优先遍历。
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 B .500,450,200,180
C .180,500,200,450 D .180,200,500,450
【参考答案】A
【考查知识点】二分查找算法。
8.已知字符串S 为“abaabaabacacaabaabcc”. 模式串t 为“abaabc”, 采用KMP 算法进行匹配,第一次出现“失配”(s[i] != t[i]) 时,i=j=5,则下次开始匹配时,i 和j 的值分别是
A .i=1,j=0
【参考答案】C
【考查知识点】模式匹配(KMP )算法。
9.下列排序算法中元素的移动次数和关键字的初始排列次序无关的是
A .直接插入排序 B .起泡排序 C .基数排序 D .快速排序 B .i=5,j=0 C .i=5,j=2 D .i=6,j=2
【参考答案】B
【考查知识点】几种排序算法的比较。
10.已知小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,在此过程中,关键字之间的比较数是
A .1 B .2 C .3 D .4
【参考答案】B
【考查知识点】最小堆的概念和最小堆的重建。
11.希尔排序的组内排序采用的是()
A .直接插入排序 B .折半插入排序 C.快速排序
【参考答案】A
【考查知识点】希尔排序基本思想是:先将整个待排元素序列分割成若干个子序列(由 相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。
12.计算机硬件能够直接执行的是()
Ⅰ.机器语言程序 Ⅱ.汇编语言程序
A .仅Ⅰ B .仅Ⅰ Ⅱ Ⅲ.硬件描述语言程序 D .ⅠⅡ Ⅲ D .归并排序 C .仅Ⅰ Ⅲ
【参考答案】A
【考查知识点】用汇编语言等非机器语言书写好的符号程序称源程序, 运行时汇编程序要 将源程序翻译成目标程序,目标程序是机器语言程序。
13.由3个“1”和5个“0”组成的8位二进制补码,能表示的最小整数是()
A .-126
【参考答案】B
【考查知识点】二进制的补码表示。
14.下列有关浮点数加减运算的叙述中,正确的是()
Ⅰ. 对阶操作不会引起阶码上溢或下溢
Ⅱ. 右规和尾数舍入都可能引起阶码上溢
Ⅲ. 左规时可能引起阶码下溢
Ⅳ. 尾数溢出时结果不一定溢出
A .仅Ⅱ Ⅲ
【参考答案】B B .仅ⅠⅡⅣ C .仅ⅠⅢ Ⅳ D .ⅠⅡ Ⅲ Ⅳ B .-125 C .-32 D .-3
【考查知识点】浮点数的加减运算。
15.假定主存地址为32位,按字节编址,主存和Cache 之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(Write Back)方式,则能存放4K 字数据的Cache 的总容量的位数至少是()
A .146k
【参考答案】 B
【考查知识点】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 B .147K C .148K D .158K
【参考答案】 C
【考查知识点】 考察了页式虚拟存储器及TLB 快表。
17.下列存储器中,在工作期间需要周期性刷新的是()
A .SRAM
【参考答案】B
【考查知识点】DRAM 使用电容存储,所以必须隔一段时间刷新(refresh )一次,如果存储单元没有被刷新,存储的信息就会丢失。
18.某计算机使用4体交叉存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生发生缓存冲突的地址对是()
A .8004、8008
【参考答案】 C
【考查知识点】 考察了存储器中的多模块存储器,多体并行系统。
19.下列有关总线定时的叙述中,错误的是()
A .异步通信方式中,全互锁协议最慢 B .8002、8007 C .8001、8008 D .8000、8004 B .SDRAM C .ROM D .FLASH
B .异步通信方式中,非互锁协议的可靠性最差
C .同步通信方式中,同步时钟信号可由多设备提供
D .半同步通信方式中,握手信号的采样由同步时钟控制
【参考答案】 B
【考查知识点】考察了总线操作和定时,主要是同步定时与异步定时的定义及其特点。
20.若磁盘转速为7200转/分,平均寻道时间为8ms, 每个磁道包含1000个扇区,则访问一个扇区的平均存取时间大约是( )
A .8.1ms
【参考答案】B
【考查知识点】磁盘访问时间计算。
21.在采用中断I/O方式控制打印输出的情况下,CPU 和打印控制接口中的I/O端口之间交换的信息不可能是( )
A .打印字符 B .主存地址 C .设备状态 D .控制命令
【参考答案】A
【考查知识点】程序中断I/O方式。
22.内部异常(内中断) 可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的( )
A .内部异常的产生与当前执行指令相关
B .内部异常的检测由CPU 内部逻辑实现
C .内部异常的响应发生在指令执行过程中
D .内部异常处理的返回到发生异常的指令继续执行
【参考答案】A
【考查知识点】内部异常概念。
23.处理外部中断时,应该由操作系统保存的是( )
A .程序计数器(PC)的内容
C .块表(TLB)的内容
【参考答案】A
【考查知识点】外部中断处理过程。
24.假定下列指令已装入指令寄存器。则执行时不可能导致CPU 从用户态变为内核态(系统态) 的是( ) B .通用寄存器的内容 D .Cache 中的内容 B .12.2ms C .16.3ms D .20.5ms
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)操作
C .启动I/O设备
【参考答案】D
【考查知识点】进程间各状态的转化。
26.若系统S1 采用死锁避免方法,S2采用死锁检测方法,下列叙述中正确的是() Ⅰ.S1会限制用户申请资源的顺序
Ⅱ.S1需要进行所需资源总量信息,而S2不需要
Ⅲ.S1不会给可能导致死锁的进程分配资源,S2会
A .仅Ⅰ Ⅱ
【参考答案】C
【考查知识点】死锁相关概念。
27.系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,3,8,4,5,若进程要访问的下一页的页号为7,依据LRU 算法,应淘汰页的页号是()
A .2 B .3 C .4 D .8 B .仅Ⅱ Ⅲ C .仅Ⅰ Ⅲ D .Ⅰ Ⅱ Ⅲ B .申请内存失败 D .被高优先级进程抢占
【参考答案】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 .可变分配,全局置换 C .固定分配,全局置换
【参考答案】D
【考查知识点】页面分配策略和页面置换策略的概念和相应的方法。
二、综合应用题:41~47小题,共70分。
41. 用单链表保存m 个整数,节点的结构为(data,link),且|data|
例如若给定的单链表head 如下
B .可变分配,局部置换 D .固定分配,局部置换
删除节点后的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
Node * p = head; Node * r = head; while (p != NULL) { if (a[abs(p->data)] == 1) //如果此绝对值已经在节点值的绝对值中出现过 { //则删除当前节点 r->next = p->next; delete p; p = r->next; if (head == NULL) { } return NULL;
} else //否则,将数组中对应的元素置1,并将指针指向下一个元素
}
(4) 只遍历一次链表,所以时间复杂度为O(n),
因为申请大小为n 的数组,所以空间复杂度为O(n),(n 为节点绝对值的最大值)。
【考查知识点】链表的操作。
42. 已知有5个顶点的图G 如下图所示
} return head; { } a[abs(p->data)] = 1; r = p; p = p->next;
请回答下列问题
(1) 写出图G 的邻接矩阵A(行、列下标从0开始)
(2) 求A 2,矩阵A 2中位于0行3列元素值的含义是什么?
(3) 若已知具有n(n>=2)个顶点的邻接矩阵为B ,则B m (2
【参考答案】
(1)邻接矩阵为
⎧0⎪1⎪⎪⎨1
⎪0⎪⎪⎩0
(2) 1100⎫0011⎪⎪⎪0010⎬ 1101⎪⎪1030⎪⎭
⎧0⎪1⎪2⎪A =⎨2
⎪2⎪⎪⎩21122⎫0211⎪⎪⎪1012⎬ 1101⎪⎪1210⎪⎭
0行3列的元素的含义是顶点0到顶点3的最短距离为2.
(3)B m 中非零元素的含义是:假设此顶点位于i 行j 列,如果i==j,则表示i 顶点到自己的距离为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。
(3) Srout 所控制的部件作用是控制计算机运算结果的输出。
(4) 须连接到控制部件的输出端端点有①②③⑤⑧。
(5) ⑥→⑨,⑦→④。
(6) 使PC 自增2以获取下一条指令地址。
【考查知识点】寄存器相关概念及寄存器的操作,单总线结构
44. (10分)题43中描述的计算机,其部分指令执行过程的控制信号如如题44图a 所示。
题44图a 部分指令控制信号
该机指令格式如题44图b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方
式位分别为0和1,通用寄存器R0~R3的编号分别为0、1、2和3。
题44图b 指令格式
请回答下列问题。
(1) 该机的指令系统最多可定义多少条指令?
(2) 假定inc 、shl 和sub 指令的操作码分别为01H 、02H 和03H ,则以下指令对应的机 器代码各是什么?
③ inc R1 ; R1 + 1→R1
④ shl R2,R1 ; (R1)
③ sub R3, (R1),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) ① 0280H ,②
(3) ① 0,② 04A8H ,③ 06EEH left ,⑤ read ,⑥ sub,⑦mov ,⑧ Srout 。 mov ,③ mova,④
(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
【考查知识点】 考察了利用信号量进程同步问题。