2013 408选择题错题

1

已知三叉树T中6个叶节点的权分别是2,3,4,5,6,7,T的带权(外部)路径长度最小是:
这道题一开始让我摸不到头脑,原因在于没有构建过三叉树的哈夫曼树。
在本题中啊,我觉得可以先构造根的孩子

				Node
			a	6	7
		   4	   5		b
		   构建到这里的时候,我有一个问题,为什么2和3不能放在第二层,哈夫曼树的构造方法出错了,应该先构建最小的。

就是先选2和3,他们的父节点是5,再和4,5构成父节点14,,14再和6,7称为孩子。

2

在任意一棵非空二叉排序树T1中,删除结点v之后形成二叉排序树T2,再将v插入T2形成二叉排序树T3,下列关于T1和T3的叙述中,正确的是

写这种题吧,还得靠举例子。
啥玩意是二叉排序树,我好像有点记不清了。我说咋回事,原来我把二叉排序树和平衡二叉树弄混了。平衡二叉树有平衡因子的存在,平衡因子必须小于等于1,否则树会左倒右倒。
而二叉排序树就不一样,没有硬性规定树的形状。
二叉排序树:它是左子树结点值<根结点值<右子树结点值
它的特性就是进行中序遍历的话,会得到一个递增的有序序列。
二叉排序树的非递归查找算法:
BSTNode *BST_Search(BiTree T,ElemType key){
while(T!=NULL && key!=T->data){
if(key< T->data) T=T->lchild;
else T=T->rchild;
}
return T;
}
&&表示与,T!=NULL && key!=T->data这句的意思是
当T不为空和节点的值不等于根结点的值时,它为true,while循环里面的代码就能进行循环。
而当T为空,也就是树里没有任何东西时,直接就跳出循环了。
同样的,当key=T->data时,也就是结点的值等于根结点的值时,不用将它分给孩子。
为什么二叉排序树使用递归算法的效率就要低呢?
这一点我也没有弄懂,可能需要写代码然后运行吧。
二叉排序树的删除:
1:若被删除节点z是叶节点,则直接删除,不会破坏二叉排序树的性质。
2:若结点z只有一棵左子树或右子树,则让z的子树成为z父节点的子树,替代z的位置。
3:若结点z有左,右两棵子树,则令z的直接后继替代z,然后从二叉排序树中删去这个直接后继。
这里要解释一下直接后继,直接后继是说在中序遍历中后面的元素。

二叉排序树的查找效率分析:
二叉排序树的查找效率,主要取决于树的高度,若二叉排序树的左,右子树的高度之差的绝对值不超过1,则这样的二叉排序树称为平衡二叉树,它的平均查找长度为O(log2n)。若二叉排序树是一个只有右(左)孩子的单支树(类似于有序的单链表),则其平均查找长度为O(n)。
就维护表的有序性而言,二叉排序树无须移动结点,只需修改指针即可完成插入和删除操作,平均执行时间是O(log2n)。二分查找的对象是有序顺序表,若有插入和删除结点的操作,所花的代价是O(n)。若有序表是静态查找表,宜用顺序表作为其存储结构,而采用二分查找实现其查找操作;若有序表是动态查找表,则应选择二叉排序树作为其逻辑结构。

3

AOE网:
我忘了什么是AOE网。在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销(如完成活动所需的时间),称之为用边表示活动的网络,简称AOE网。
DAG图:有向无环图,若一个有向图中不存在环,则称为有向无环图。
AOV,那么什么又是AOV网。
若用DAG图表示一个工程,其顶点表示活动,用有向边表示活动Vi必须先于活动Vj进行的这样一种关系,则将这种有向图称为顶点表示活动的网络,即为AOV网。
从源点到汇点的所有路径中,具有最大路径长度的路径称为关键路径,而把关键路径上的活动称为关键活动。
对于关键路径,有几点要说一下。
1可以通过加快关键活动来缩短整个工程的工期。但也不能任意缩短关键活动,因为一旦缩短到一定的程度,该关键活动就可能会变成非关键活动。
2网中的关键路径并不唯一,且对于有几条关键路径的网,只提高一条关键路径上的关键活动速度并不能缩短整个工程的工期,只有加快那些包括在所有关键路径上的关键活动才能达到缩短工期的目的。

4

若某数采用IEEE754单精度浮点数格式表示为C640 0000H,则该数的值是
1100 0110 0100 0000 0000 0000 0000 0000
IEEE单精度浮点数格式,阶码为前8位,那就是 1010 0110,就是128+32+4+2=166
166-127=39所以阶码为39
但是我为什么还记着有符号位呢?
所以阶码应该是 0100 1100,就是64+8+4=76
阶码应该是用补码表示的吧,第一位应该是符号位。
1010 0110的原码形式是1101 1001 +1 = 1101 1010也就是64+16+8+2=90
我的记忆有些零碎。排在后面的23位是小数位,隐藏了首位1
所以0100 0000 0000 0000 0000 000,数符就是1.25
但是阶码不太对1000 1100就是 128+8+4=140 140-127 = 13
我看了一下答案,有几点我记错了,首先是第一位是数符,它代表整个数的正负,0为正,1为负。
其次阶码不是补码,不用补求原。

5

某字长为8位的计算机,已知整型变量x和y的机器数分别为[x]补=1111 0100,[y]补=1011 0000,若整型变量z=2x+y/2,则z的机器数为
x补求原 1 000 1011 +1 = 1000 1100即为-12
y补求原 1100 1111 + 1 = 1101 0000即为-80
z=2x+y/2=-24+(-40)=-64 = 1100 0000
其实通过观察我们也可以发现,原码*2就是符号位不动,其他位左移一位
原码/2九四符号位不同,其他位右移一位。

6

题中说虚拟地址空间大小为4GB,意思就是说虚拟地址共32位;
页面大小为4KB,意思就是说页内地址为12位。

7

某磁盘的转速为10000rpm,平均寻道时间是6ms,磁盘传输速率是20MB/s,磁盘控制器延迟为0.2ms,读取一个4KB的扇区所需的平均时间是
4KB/20MB/s=0.2ms
0.2+0.2+6=6.4
60/10000=6ms
平均时间,那就是6.4+3=9.4ms

8

中断IO方式和DMA方式。
程序中断方式包括三个步骤,分别是:中断请求,中断判优,中断响应。
内中断皆为不可屏蔽中断。啥意思,就是内中断发生了必须立刻进行处理,比如除0了,这拖着就没办进行运算。
通过INTR信号线发出的外中断是可屏蔽中断,啥意思,就是这个事没有那么重要,比如把u盘给拔了什么的,等一等处理也无妨。所以它在关中断(IF=0)的情况下不会被响应。而通过NMI信号发出的是不可屏蔽中断,说明这个中断非常紧急,比如电源掉电了,存储器读写出错了,这时候压根就等不得,所以它即使在关中断(IF=0)的情况下也会被响应。
不可屏蔽中断的处理优先级最高,任何时候只要发生不可屏蔽中断,都要中止现行程序的执行,转到不可屏蔽中断处理程序执行。
中断判优这块我之前没有了解过,大致看了一下,就是硬件故障中断属于最高级,其次是软件中断,不可屏蔽中断优于可屏蔽中断,DMA请求优于I/O设备传送的中断请求,高速设备优于低速设备,输入设备优于输出设备,实时设备优于普通设备。
中断判优既可以用硬件实现,又可以用软件实现。硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,又可以分散在各个中断域中,软件实现是通过查询程序实现的。
I/O设备的就绪时间是随机的,而CPU在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。这里说的中断仅指外中断,内中断不属于此类情况。
中断响应要用到中断隐指令,我以前对中断隐指令的理解不到位。现在我有了更深的理解,中断隐指令首先是指令,但这条指令很特殊,它不能为用户所用。而且,我们通常说的指令,比如IF,ID之类的指令,都是由软件来执行的,中断隐指令很特殊,它是由硬件执行的。
隐指令完成三个操作,关中断,保存断点,引出中断服务程序。
首先为什么要关中断?因为隐指令要保存现场信息,这样才能在处理完中断后返回原先执行的地方。
这时候如果有其他的事情来打扰,转头一处理,结果把这边的事忘了,那不就故障了吗。
这里保存断点,什么叫断点?就是PC和PSWR,PC是程序计数器,PSW是程序状态字寄存器,它们内部都保存着程序执行时所需要的地址,数据状态等信息,所以需要保存。
引出中断服务程序,这个就比较简单了,就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
中断向量是中断服务程序的入口地址,中断向量地址是指中断服务程序的入口地址。
把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就叫中断向量表。
在中断中,除了要保存断点,还要保存现场;这一点有时候会拿过来考,需要谨慎。
现场和断点,这两类信息都不能被中断服务程序破坏。现场信息因为用指令可直接访问,所以通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现;而断点信息由CPU在中断响应开始时自动保存到栈或专门的寄存器中,即由硬件实现。

我发现一件有趣的事情,那就是在中断处理过程中,要进行两次关中断和两次开中断。
中断返回由中断服务程序的最后一条中断返回指令完成。

多重中断和中断屏蔽技术
中断屏蔽技术主要用于多重中断。CPU要具备多重中断的功能,必须满足以下条件:
1在中断服务程序中提前设置开中断指令。
2优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

程序中断方式和DMA方式因为都被用来传送数据,所以常常被比较,我们来看一下其区别。
1:中断方式是程序的切换,需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源。
2:对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期后);而对DMA请求的响应可以发生在每个机器周期结束时(在取值周期,间址周期,执行周期后均可),只要CPU不占用总线就可被响应。
3:中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,因此数据传输率非常高,适合于高速外设的成组数据传送。
4:DMA请求的优先级高于中断请求。
5:中断方式具有对异常事件的处理能力,而DMA方式仅局限于传送数据块的I/O操作。
6:从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送。
中断I/O方式请求的是CPU处理时间,DMA方式请求的是总线使用权
中断响应发生在一条指令执行结束后,DMA响应发生在一个总线事物完成后。
中断I/O方式不适用于快速外部设备,如果==因为它会不断打扰CPU,导致CPU没有时间处理其他事物。

9

文件数据块组织方式这个东西是不考了吗?我感觉挺奇怪的,没有找到有关它的内容。
磁盘结构(Boot Control Block)包括系统从该分区引导操作系统所需要的信息,若磁盘没有操作系统,则这块的内容为空。它通常为分区的第一块,UFS称为引导块,NTFS称为分区引导扇区。
分区控制块包括分区详细信息,如分区的块数,块的大小,空闲块的数量和指针,空闲FCB的指针和数量。
内存结构:
内存分区表包含所有安装分区的信息。
内存目录结构用来保存进来访问过的目录信息。对安装分区的目录,可以包括一个指向分区表的指针。
系统范围的打开文件表,包括每个打开文件的FCB复制和其他信息。
单个进程的打开文件表,包括一个指向系统范围内已打开文件表中合适条目和其他信息的指针。

文件系统实现概述:
为了创建一个文件,应用程序调用逻辑文件系统。逻辑文件系统知道文件目录结构,它将为文件分配一个新的PCB,把相应目录读入内存,用新的文件名更新该目录和FCB,并将结果写回磁盘。

10

计算机网络中有好几种编码实在是太讨厌了,为什么要发明这么多编码呢?
直接就用归零编码不好吗?高电平代表1,低电平代表0,这很符合人性/。(RZ)
但是我以前不知道,因为归零编码归零需要占据一部分带宽,因此传输效率收到了一定影响。
操,非归零编码这不是更简单,连归零都不用,一个周期可以全部用来传输数据,我爱死它了。
但是这玩意也有缺点,那就是NRZ编码无法传递时钟信号,双方难以同步,因此若想传输高速同步数据,则需要都带有时钟线,要不传着传着就都混乱了。
卧槽卧槽,来了个集合以上两种编码的编码,你们真牛逼,是真能发明。反向非归零编码(NRZI)
直接用信号的翻转代表0,信号保持不变代表1,妙啊!既能传输时钟信号,又能尽量不损失系统带宽。USB2.0通信的编码方式就是NRZI编码。
既然都有了NRZI那为什么要有曼彻斯特编码。曼彻斯特编码将一个码元分成两个相等的间隔,前一个间隔为高电平而后一个间隔为低电平表示码元1;位中间的跳变可以用作时钟信号来同步,又作为数据信号,但它所占的频带宽度是原始基带宽度的两倍。以太网使用的编码方式就是曼彻斯特编码。

11HDLC协议

HDLC协议对01111100 01111110组帧后对应的比特串为

(1)什么是HDLC协议

HDLC即high-level Data Link Control,即高级数据链路控制协议

(2)HDLC协议特点

1面向比特(bit)
2使用“0“插入法,易于硬件实现
3全双工通信,有较高的数据链路传输效率
4所有帧采用CRC校验,对信息帧进行顺序编号,可防止漏发或重发,传输可靠性高;
5传输控制功能与处理功能分离,具有较大的灵活性。

(3)“0”比特传输法

标志字段F有8位,是0111 1110。在接收端只要找到标志字段就可却当一个帧的位置。HDLC协议采用比特填充的首尾标志法实现透明传输。在发送端,当一串比特流数据中有5个连续的1时,就立即在其后填入一个0.接受帧时,先找到F字段以确定帧的边界,接着对比特流进行扫描,每当发现五个连续的1时,就将其后的一个0删除,以还原成原来的比特流。

每有5个连续的1就增加一个0

12

对于一个100Mbps的以太网交换机,当输出端口无排队,以直通交换(cut-through switching)方式转发一个以太网帧(不包括前导码)时,引入的转发延迟至少是?
我这里不是很清楚以太网帧,因此要补补课。

(1)

MAC地址即为物理地址,其长度为6字节。比如02-60-8c-e4-b1-21就是一个MAC地址

(2)以太网V2的MAC帧格式

它包括两部分,即前导码和以太网MAC帧
前导码的作用是使接收端与发送端时钟同步。它有8个字节,前7个字节为前同步码,用来快速实现MAC帧的比特同步;最后一个字节为帧开始定界符,表示后面的信息就是MAC帧。

(3)为什么MAC帧没有帧结束符

因为以太网在传送帧时,各帧之间必须有一定的间隙。因此,接收端只要找到帧开始定界符,其后面连续到达的比特流就都属于同一个MAC帧。

(4)为什么CSMA/CD规定最小以太网帧长64B

因为以太网规定51.2us为争用期的长度,对于10Mb/s的以太网,在争用期内可发送512bit数据,即64B。

直通交换方式只检查帧的目的地址,共6B,所以最短的传输延迟是6*8bit/100Mbps=0.48us

13

主机甲和主机乙之间建立一个TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到一个来自乙的TCP段,该段的序号为1913,确认序号为2046,有效载荷为100字节,则甲立即发送给乙的TCP段的序号和确认号分别是2046,2013。

你可能感兴趣的:(408真题选择错题,408)