保研408真题练习:2009年全国硕士研究生入学统一考试(单选篇1)

🧊🧊🧊单项选择题(共40道)

🧊数据结构(10道)

🥥1.打印机的缓冲区逻辑结构

:先进后出;

队列:先进先出。

缓冲区的作用是解决主机与打印机之间速度不匹配的问题,而不应改变打印数据的顺序。

🥥2.入栈(队)出栈(队)顺序

因为队列是先进先出,所以出队顺序就是出栈顺序。

复现出入详情:

  1. a,b在(入)栈,这样才能b出栈;
  2. a,c,d在栈,d出栈,c出栈;
  3. a,e,f在栈,f,e,a出栈;
  4. g入栈,g出栈。

结合上述过程,栈的容量至少要能容纳3个元素。

🥥3.树的遍历方式

观察这道题目给到的序列,先遍历了3,也就是1的右子树,再遍历了1自身,最后遍历了1的左子树同时也满足右根左,所以这道题目的遍历方式就是右根左。

🥥4.平衡二叉树判断

平衡二叉树:任意结点的左、右子树高度差的绝对值不超过1

🥥5.完全二叉树节点个数

完全二叉树:前边层全满,只有最后一层可以不满,并且左边全满(也就是说确实的叶子必须是从右边往左边顺序缺失)

这道题目的坑在于,只告诉了我们第6层有多少叶节点,但是这棵完全二叉树的高度其实可以是6层也可以是7层,是7层的话,按照上边的描述,前6层全满,也就是1+2+4+8+16+32,第7层缺失的是第6层的这8个节点下方的叶子节点,也就是缺失了2*8=16个叶子节点,那么总节点个数为1+2+4+8+16+32+(64-16)=111个节点

🥥6.森林和二叉树的转换

❓❓❓这道题目的解析是这样的,但是我个人感觉III也是对的,就逆向法的(4)左上角再接上u的父节点,这样两个父节点不就是兄弟关系了吗?有没有懂的uu能帮忙解答一下~~评论区见~~

🥥7.无向连通图的特性

无向图的度:每个结点连接的边数总和;

有向图的度:入度,指向我的边数;出度,从我指出去的边数

度之和是偶数是因为“无向”;n个节点,n-1条边的树也能构成无向连通图;顶点数大于等于1的无向完全图也是无向连通图(完全图:每个点都与其他所有点有连边)

🥥8.m阶树+B树

m阶树:每个节点最多可有m个子节点;

B树:自平衡树,特点包括:

  • 多路平衡查找树: 每个节点可以拥有多于两个子节点,适用于高效处理大量数据。
  • 平衡性: 所有叶子节点到根节点的距离相同,确保了每个查找操作的时间复杂度为O(log n)。
  • 节点容量: 每个节点有固定数量的子节点,通常在实现时通过参数m来定义。

B+树:B树的一种变体,与B树的特点包括:

  • 叶子节点存储数据: 所有数据项都存储在叶子节点中,非叶子节点仅存储键值。
  • 叶子节点之间有指针相连: 叶子节点通过指针形成一个链表,便于范围查询和顺序访问。
  • 内部节点不存储数据: 内部节点只存储键值和指向子节点的指针,这减少了非叶子节点的空间开销。

🥥9.堆的插入

关键字序列是层次遍历,插入的关键字在最后一层从左到右第一个空位,然后每棵子树进行调整,将三个节点中的最小数换到根节点,具体如下:

🥥10.排序算法

冒泡排序:比较相邻的元素,如果前面的元素大于后面的元素,则交换它们。每一轮遍历都会将最大的元素沉到最后。

选择排序:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。

二路归并排序:归并排序是一种分治算法,将待排序数组递归地分成两半,直到每个子数组的大小为1。然后将相邻的子数组进行合并,直到整个数组排序完成。

  • 冒泡排序和选择排序:每趟都能确个元素的最终位置;
  • 二路归并排序:每趟排序结束都可以得到若干个有序子序列,而此时的序列中并没有两两元素有序排列;
  • 插入排序:在每趟排序后能确定前面的若干元素是有序的。

根据上述描述,该题目采用的是插入排序

🍨🍨🍨需要排序算法总结的宝子评论区告诉我,呼声高的话整理各类排序算法哦~~~

🧊计算机组成原理(13道)

🥥1.冯诺依曼指令和数据的区分

数据、指令存储区分方法

  1. 通过不同的时间段区分:取指令阶段取出的是指令执行指令阶段取出的是数据
  2. 通过地址来源区分:PC提供的存储单元地址中的是指令指令地址码提供的是操作数(数据)

注意,第二点说的是地址来源,不是D选项中的所在地址

🥥2.补码加法

  1. C语言中的整型数据为补码形式,int为32位,short为16位:x y转换成十六进制为 0000007FH 、FFF7H
  2. 执行 z = x+y 时,由于 x是 int型,y 为 short型,需将短字长数据转换成 长字长数据,称之为符号扩展。 由于y 的符号位为 1, 故在y 的前面添加 16 1, 即可将 y 上升为 int型,其十六进制形式为 FFFFFFF7H
  3. 最后执行加法,即 0000007FH + FFFFFFF7H = 00000076H, 其中最高位的进位 1 自然丢弃。 故选D。

🥥3.浮点加法计算

浮点加减法基本步骤:

据此,本题步骤:

  • 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, 111; 00, 00101
  • 第二步: 尾数相加。 即 00, 11101 + 00, 00101 = 01, 00010, 尾数相加结果符号位为 01, 需右规。
  • 第三步: 规格化。 将尾数右移l位,阶码加 1, X+Y 01, 000; 00, 10001
  • 第四步: 判溢出。 阶码符号位为 01, 说明发生溢出。

🥥4.主存与Cache的映射

映射方式分为:直接映射、组相联映射、全相联映射 三种

直接映射:将主存中的每个块映射到缓存中的一个唯一位置(或称为缓存行)

  • 映射规则: 对于一个给定的主存块,它的地址会通过某种映射函数(通常是取模运算)直接映射到缓存的一个特定位置。
  • 优点: 实现简单,硬件开销低,适用于大多数寻址模式。
  • 缺点: 容易发生冲突(即不同的主存块可能映射到相同的缓存位置),可能导致高的替换率和较低的缓存命中率。

组相联映射:介于直接映射和全相联映射之间的一种策略,它将缓存划分为多个组(sets),每个组包含多个缓存行

  • 映射规则: 主存中的块可以映射到任意一个组内的某个缓存行,而不是像直接映射那样只能映射到一个确定的位置。
  • 优点: 相比直接映射,能够降低冲突率,提高缓存命中率。
  • 缺点: 硬件复杂度和成本较高,相对于直接映射来说,实现和管理都更复杂。

全相联映射:一种高度灵活的映射策略,它允许主存中的任何块映射到缓存中的任何位置

  • 映射规则: 每个主存块可以映射到缓存的任何一个空闲位置,不受限于特定位置或组。
  • 优点: 可以避免冲突完全,最大化缓存命中率。
  • 缺点: 硬件复杂度非常高,成本昂贵,对于替换算法的实现也更为复杂。

本题解题过程:

  • 由于Cache共有16块,采用 2路组相联,因此共分为8组,组号为0,1, 2, …,7。
  • 主存的字块按模8映射到Cache某组的任字块中,即主存的第0, 8, 16, …字块可以映射到Cache第0组的任字块中。
  • 每个主存块大小为32字节,故129号单元位于第4块 主存块(注意是从0开始),因此 将映射到Cache第4组的任字块中。

🥥5.ROM和RAM芯片数量

存储容量的扩展方式

AK×B,A称为字,B称为位

字扩展:B相同,2K×8 / 1K×8 = 2片

位扩展:A相同,2K×8 / 2K×4 = 2片

字位同时扩展:A、B都不同,60Kx8 / 4Kx4 = 15×2 = 30片

  • 首先确定 ROM的个数,ROM区为4KB, 选用 2Kx8位的ROM芯片,需要4Kx8 / 2Kx8 = 2片,采用字扩展方式;
  • RAM区为60KB, 选用 4Kx4位的 RAM芯片,需要 60Kx8 / 4Kx4 = 30片,采用字和位同时扩展方式。

🥥6.指令寻址&转移

相对寻址EA=(PC)+A, 首先要求的是取指令后PC的值。转移指令由两个字节组成,每取个字节 PC值自动加1, 因此取指令后PC值为2000H + 2H = 2002H , 故EA=(PC)+A=2002H + 06H =2008H。

🍨🍨🍨需要指令寻址方法总结的宝子评论区告诉我,呼声高的话整理各类指令寻址方式哦~~~

🥥7.RISCvsCISC

相对千CISC, RISC的特点是指令条数少;指令长度固定,指令格式和 寻址种类少;只有取数I存数指令访问存储器,其余指令的操作均在寄存器之间进行;CPU中通用寄存器多;大部分指令在个或者小于个机器周期内完成;以硬布线逻辑为主,不用或者少用微程序控制。

RISC(精简指令集计算)

特点和设计原则:

  1. 精简指令集: RISC处理器的指令集非常精简和统一,每条指令执行的操作非常简单和基本。
  2. 硬件实现简单: RISC处理器的硬件设计相对简单,指令执行时间通常较短。
  3. 流水线执行: RISC处理器常常采用流水线(pipeline)技术来实现指令并行执行,提高整体性能。
  4. 寄存器数量多: RISC架构通常拥有更多的通用寄存器,减少了对内存的访问次数,提高了效率。

优点:

  • 执行速度快:简单的指令执行和流水线技术使得RISC处理器能够更快地执行指令。
  • 硬件设计简单:更易于设计和制造,成本通常较低。
  • 适合高性能计算和嵌入式系统:对于需要高效处理器和低能耗的应用领域非常合适。

缺点:

  • 指令数目有限:需要更多的指令来完成复杂的任务,可能需要更多的指令周期。
  • 可能需要更多的编译优化:编译器在RISC架构上需要更多的工作来优化代码。

CISC(复杂指令集计算)

特点和设计原则:

  1. 复杂指令集: CISC处理器的指令集更加复杂,可以支持较为复杂的操作,一个指令可以执行多个低级操作。
  2. 硬件实现复杂: CISC处理器的硬件设计较为复杂,通常包含多个执行单元和微码控制。
  3. 多功能指令: 单条指令可以实现多个功能,包括内存访问、算术运算等。
  4. 少量寄存器: CISC处理器通常拥有较少的寄存器。

优点:

  • 高级语言代码紧凑:可以通过复杂的指令集直接支持高级语言的指令,减少了编译器的工作量。
  • 减少内存访问次数:一些复杂操作可以在一条指令内完成,减少了对内存的访问次数。

缺点:

  • 硬件设计复杂:由于指令集的复杂性,CISC处理器的硬件设计复杂,难以实现高速和低功耗。
  • 指令执行速度慢:复杂的指令可能需要多个时钟周期才能完成,导致执行效率不如RISC高。

🥥8.CPU时钟周期

流水线的时钟周期应以最长的执行时间为准,否则用时长的流水段的功能将不能正确完成。

🥥9.微程序控制器vs硬布线控制器

  • 微程序控制器采用了 存储程序 的原理, 每条机器指令对应 个微程序,因此修改和扩充容易,灵活性好,但每条指令的执行都要访问控制存储器,所以速度慢;
  • 硬布线控制器采用专门的逻辑电路实现,其速度主要取决于逻辑电路的延迟,因此速度快,但修改和扩展困难,灵活性差。

硬件普遍要比软件快,软件普遍要比硬件灵活

🥥10.总线带宽

总线带宽:单位时间内总线上传输数据的位数,通常用每秒钟传送信息的字节数来衡量, 单位Bis。

由题意可知,在1个总线周期(=2个时钟周期)内传输了4字节信息,时钟周期=1110MHz = 0.1µs, 故总线带宽为4B/(2x0.1µs) = 4B/(0.2x10^-6 s) = 20MB/s。

🥥11.cache命中率

命中率=Cache命中次数I总访问次数

🥥12.引起中断的事件

  • 外部中断指的是CPU执行指令以外的事件产生的中断,通常是指来自CPU与内存以外的中断。
  • A中键盘输入属于外部事件,每次键盘输入CPU都需要执行中断以读入输入数据,所以能引起外部中断。
  • B中除数为0属于异常,也就是内中断,发生在CPU内部。
  • C中浮点运算下将按机器零处理,不会产生中断
  • 而D访存缺页属于CPU执行指令时产生的中断,也不属于外部中断。

🥥13.处理机系统并行问题

单处理机系统(不包含多核的情况):同时刻只能有个进程占用处理机。

因此进程之间不能并行执行。 通道是独立于CPU的控制输入/输出的设备,两者可以并行,显然,设备与设备之间也是可以并行的。

🧊创作不易,点个赞吧~

🧊点赞收藏不迷路~

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值