10/7
用时 38+104=142min
选择-2-2-6-0,共计5个,10分
大题-13-9-0-4,共计26分
总分 114
小题
子程序调用保存PC
中断隐指令改PC和PSW,负责进内核
中断时系统复杂初始化中断向量表,保GRPS,保中断屏蔽字,提供中断服务例程。
2022年24、31都是考这个,历年也考过很多次,笔记也做了但是忘了。
大题
41.这道题是二叉树的顺序存储法,判断是否是二叉排序树。
- 一个小插曲是一开始以为是判断是否是线索二叉树,看了好大一会才反应过来是二叉搜索树。这点没法避免,一个经验就是在你感到不知所措时尝试从另外的角度重新读题或者检查是否有计算失误。
- 其次是发生了很严重的错误,导致这题一分没有,二叉排序树必须是根结点小于左子树全部结点,大于右子树全部结点。我只判断了单独每个结点是否是大于左小于右。树有关的定义和操作大多是递归定义和递归实现的,这点以后要特别注意。其次对于数据结构大题,根据定义尝试举一些反例有可能发现一些错误。
- 第三点就是代码有一些小问题,比如2i+1应该写成2*i+1
- 答案的做法是先建立一个递归的框架,然后左子树满足二叉排序树,右子树也满足二叉排序树,然后由于中序序列是一个升序序列,中序遍历的过程也即为判断是否是二叉搜索树的过程,这样在只需判断一个根结点是否是大于当前中序遍历过程中的已遍历结点的最大值,如果不大于,就不是二叉搜索树,如果大于,就递归下去。感觉不是很会表示最值。
- 暴力解的话,我觉得一开始直接进行一次中序遍历,然后看该遍历序列是否是一个升序序列也可以。空间复杂度O(n)
42
- 很奇怪的一道题,当初一看到题就想着直接简单选择排序选出10个最小的数不就行了。但之前听咸鱼讲过用堆排序还是说的是堆我记错了。
- 我的做法跟答案的做法都不同,答案一就是简单选择出10个数。答案二是利用堆的特点,先建立一个大根堆,然后每轮依旧是进行n次比较,每次剔除一个大根堆中最大的数,总共10轮,这里堆的作用就是保存每一轮内部以及各轮之间的比较状态。答案一数组的作用也是一样的,用堆反而有点多次一举了。
- 我的做法是用了堆排序,先建立一个小根堆,然后搞10轮,时间复杂度建堆肯定也是O(n),具体的比较次数不清楚。
43
- 溢出标志肯定是针对有符号数来讲的,这里我一开始就把OF的判断方法搞成CF的了(其实一开始想的是最高位产生进位和次高位产生进位异或,但是不知道次高位怎么处理,所以以为自己记错了,这道题更难了,模拟和考试时出现这种思路问题也正常),这个点可能记了不下十遍把,有符号数和无符号数的运算方法是一致的,相加都是直接相加,相减都是被减数加上减数按位取反加1,同时sub信号为1。然后OF的溢出判断是最高位进位异或次高位进位。这一问考察的更细致了,首先正加正或者负加负才会溢出,所以正加正结果为负,负加负结果为正表示溢出,溢出时标志为1。对于减法,正减负结果为负或者负减正结果为正为溢出。
- rs和rd是来自指令中地址码的,因此是IR。控制信号还有IR中的操作码字段。
44
- 柱面号位数应该看每个盘面有多少个磁道,这里直接写了有20000个磁道,因为有点模糊所以错误的把20000除以了每个磁道扇区数500。
- 卡了挺久的,以前总结好了三四遍,感觉又忘了,这道题最后想对了,但是我觉得8.33/500太小了应该舍去了直接没计算,实际了还是占了最后结果的1位小数并且还进了一位,感觉还是挺恶心的。
- 64位当成6B,脑子神志不清了。
常规做法,不应该卡的,不过今年可能不考这个了。
45
- 一个文件对应一个目录项,一个目录项对应一个索引结点,所以doc和course本质上其次是一个文件。这一点没反应过来,导致这题做的很晕,当时不知道磁盘块号是不是索引结点的块号还是什么。索引结点号应该是在固定区域不需要存储的。
- 不过卡的这一下对答案无影响。
46
送分题
47 :这道题的第2、4小问在之前真题选择中考察过,计网真题价值远高于其他三门。
- DHCP先发送DHCP发现报文。这个没办法,随缘记。
- 从AP来是先 B→AP→A,这个倒是记住了,但是一直在纠结AP的IP地址是啥,这个子网中还有三个主机能分配,具体是哪个呢
- 事实上802.11帧是以太网帧,是MAC地址