2009
考研
408
答案
2009年计算机学科专业基础综合试题参考答案一、单项选择题1.Bc2.3.D4.B5.C6.B1.A8.D9.10.B11.C12.D13.D14.15.D16.17.A18.A19.D20.B21.D22A23.D24.D25.26.A27.C28.B29.A30.A31.B32.A33.B34.B35.C36.A37.D38.D39.C40.A1.解析:缓冲区的概念出现在操作系统的设备管理中,其特点是先进先出。缓冲区的作用是解决主机与打印机之间速度不匹配的问题,而不应改变打印数据的顺序。若用栈,先进入缓冲区的数据则要排队到最后才能打印,显然不符题意,故选B。2.解析:由于队列的特点是先进先出,即栈S的出栈顺序就是队Q的出队顺序。故本题只需注意栈的特点是先进后出。出入栈的详细过程见下表。序号说明栈内栈外序号说明栈内栈外1a入栈a8c入栈aebde2b入栈%9f入栈aefbde3b出栈ab10f出栈aebdcfc入栈acbe出栈abdefed入栈acdb12a出栈bdcfea6d出栈acbd13g入栈bdcfea7c出栈bde14g出栈bdcfeag栈内的最大深度为3,故栈S的容量至少是3。【另解】元素的出栈顺序是b,d,c,,e,a,g,可推出进栈出栈顺序为Push(S,a),Push(S,b),Pop(S,b),Push(S,c),Push(S,d),Pop(S,d),Pop(S,c),Push(S,e),Push(S,f),Pop(S,f),Pop(S,e),Pop(S,a),Push(S,g),Pop(S,g)。假设初始所需容量为0,每做一次Push进行一次“+1”操作,每做一次Pop进行一次“-1”操作,记录容量的最大值为3,所以选C。3.解析:分析遍历后的结点序列,可以看出根结点是在中间访问,而右子树结点在左子树之前,即遍历的方式是NL。本题考查的遍历方法并不是二叉树的3种基本遍历方法,对于考生而言,重要的是要掌握遍历的思想。4.解析:根据平衡二叉树的定义有,任意结点的左、右子树高度差的绝对值不超过1。而其余3个选项均可以找到不符合该条件的结点。在做题的过程中,如果答案不太明显,可以把每个非叶结点的平衡因子都写出来再进行判断。162的特点。9.解析:根据关键字序列得到的小顶堆的二叉树形式如下图所示。回)(2)(3)插入关键字3时,先将其放在小顶堆的末端,如图(2)所示。再将该关键字向上进行调整,得到的结果如图(3)所示。所以,调整后的小顶堆序列为3,5,12,8,28,20,15,22,19。10.解析:解答本题需要对各种排序算法的特点极为清楚。对于冒泡排序和选择排序,每一趟都能确定一个元素的最终位置,而题目中,前2个元素和后2个元素均不是最小或最大的2个元素并按序排列。选项D中的2路归并排序,第一趟排序结束都可以得到若干个有序子序列,而此时的序列中并没有两两元素有序排列。插入排序在每趟排序后能确定前面的若干元素是有序的,而此时第二趟排序后,序列的前三个元素是有序的,符合其特征。11.解析:虽然指令和数据都是以二进制形式存放在存储器中,但CPU可以根据指令周期的不同阶段来区分是指令还是数据,通常在取指阶段取出的是指令,在执行阶段取出的是数据。本题容易误选A,需要清楚的是,CPU只有在确定取出的是指令之后,才会将其操作码送去译码,因此,不可能依据译码的结果来区分指令和数据。12.解析:C语言中的整型数据为补码形式,it为32位,shot为l6位,故x、y转换成十六进制为O000007FH、FFF7H。执行z=x+y时,由于x是imt型,y为shot型,需将短字长数据转换成长字长数据,称之为“符号扩展”。由于y的符号位为1,故在y的前面添加16个1,即可将y上升为int型,其十六进制形式为FFFFFFF7H。最后执行加法,即O000007FH+FFFFFFF7H=00000076H,其中最高位的进位1自然丢弃。故选D。【排除法】对于x的值,4个选项都一样,无需计算;zx+y127-9=1180,前4个字节必然全O,排除BC;只需算出y9的值即可,其十六进制形式为FFF7H,排除A。【提示】解题时,应先排除明显错误的选项,然后再推敲剩下的选项。13.解析:X的浮点数格式为00,111:00,11101(分号前为阶码,分号后为尾数),Y的浮点数格式为00,101;00,10100。然后根据浮点数的加法步骤进行运算。第一步:对阶。X、Y阶码相减,即00,111-00,101=00,111+11,0111=00,010,可知X的阶码比Y的价码大2(这一步可直接目测)。根据小阶向大阶看齐的原则,将Y的阶码加2,尾数右移2位,将Y变为00,11100,00101。第二步:尾数相加。即00,11101+00,0010101,00010,尾数相加结果符号位为01,故需右规。第三步:规格化。将尾数右移1位,阶码加1,得X+Y为01,000:00,10001。164第四步:判溢出。阶码符号位为01,说明发生溢出。本题容易误选选项B、C,这是因为选项B、C本身并没有计算错误,只是它们不是最终结果,选项B少了第3第4步,选项C少了第4步。【偷懒法】本题也可以直接用数学知识对原数进行计算,然后将计算的结果转换成浮点数的格式。X+Y=29/3227+5/825=29/3227+5/3227-(29/32+5/32)27=34/3227=17/3228,阶码用补码表示,数值位3位,最大只能表示7,即X+Y的结果的阶码8超出了该浮点数的表示范围,故溢出。“你在做题时有想到这种方法么?”14.解析:由于Cache共有16块,采用2路组相联,因此共分为8组,组号为0、1、2、7。主存的某一字块按模8映射到Cache某组的任一字块中,即主存的第0,8,l6字块可以映射到Cache第0组的任一字块中。每个主存块大小为32字节,故129号单元位于第4块主存块(注意是从0开始),因此将映射到Cache第4组的任一字块中。15.解析:首先确定ROM的个数,ROM区为4KB,选用2KX8位的ROM芯片,需要4Kx8=2片,2K8采用字扩展方式:RAM区为60KB,选用4KX4位的RAM芯片,需要6OK8=30片,采用字4K4和位同时扩展方式。16.解析:相对寻址EA=(PC)十A,首先要求的是取指令后PC的值。转移指令由两个字节组成,每取一个字节PC值自动加1,因此取指令后PC值为2000H+2H=2002H,故EA=(PC)十A=2002H+06H=2008H。【易错点】本题易误选A或B。选项A没有考虑PC值的自动更新,选项B虽然考虑了PC值要自动更新,但没有注意到该转移指令是一条两字节指令,P值仅仅“+1”而不是“+2”。17.解析:相对于CISC,RISC的特点是指令条数少;指令长度固定,指令格式和寻址种类少;只有取数/存数指令访问存储器,其余指令的操作均在寄存器之间进行:CPU中通用寄存器多;大部分指令在一个或者小于一个机器周期内完成;以硬布线逻辑为主,不用或者少用微程序控制。选项B、C、D都是RISC的特点,选项A是错误的,因为RISC的速度快,所以普遍采用硬布线控制器,而非微程序控制器。18.解析:流水线的时钟周期应以最长的执行时间为准,否则用时长的流水段的功能将不能正确完成。19.解析:微程序控制器采用了“存储程序”的原理,每条机器指令对应一个微程序,因此修改和扩充容易,灵活性好,但每条指令的执行都要访问控制存储器,所以速度慢。硬布线控制器采用专门的逻辑电路实现,其速度主要取决于逻辑电路的延迟,因此速度快,但修改和扩展困难,灵活性差。20.解析:总线带宽是指单位时间内总线上传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位Bs。由题意可知,在1个总线周期(=2个时钟周期)内传输了4字节信息,时钟周期=1/10MHz0.1s,故总线带宽为4B/(20.1s)=4B/(0.2106s)=20MB/s。21.解析:165