计算机专业(基础综合)模拟试卷107 (题后含答案及解析)
题型有:1. 单项选择题 2. 综合应用题
单项选择题1-40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1. 下列叙述中,正确的是( )。 Ⅰ.非空循环单链表head的尾结点p满足p→next=head Ⅱ.带头结点的循环单链表的头指针为head,如果head→next→next→next=head成立,则该单链表的长度为3 Ⅲ.静态链表中的指针表示的是下一个元素在数组中的位置 Ⅳ.将长度为n的单链表链接在长度为m的单链表之后的算法时间复杂度为O(1)
A.仅Ⅰ、Ⅱ、Ⅲ
B.Ⅰ、Ⅱ、Ⅲ、Ⅳ
C.仅Ⅰ、Ⅲ
D.仅Ⅰ、Ⅲ、Ⅳ
正确答案:C
解析:Ⅰ:非空循环单链表的尾结点指针应该指向链表头,即p→next=head,故Ⅰ正确。 Ⅱ:head指向头结点,head→next就指向第一个结点。既然head→next→next→next=head,说明此循环链表共有3个结点(包含头结点),而单链表中增加头结点仅仅是为了更方便地进行插入和删除操作,它并不存储线性表的元素,故不能算为单链表结点,故此单链表的长度为2,故Ⅱ错误。 Ⅲ:静态链表中的指针所存储的不再是链表中的指针域,而是其下一个结点在数组中的位置,即数组下标,故Ⅲ正确。 Ⅳ:将链表连接起来只需O(1)的操作,但找到具有m个结点链表的尾结点需遍历该链表,所以时间复杂度应该为O(m),故Ⅳ错误。
2. 利用栈求表达式的值时,设立运算数栈S。假设栈S只有两个存储单元,在下列表达式中,不发生溢出的是( )。
A.A-B*(C-D)
B.(A-B)*C-D
C.(A-B*C)-D
D.(A-B)*(C-D)
正确答案:B
解析:利用栈求表达式的值时,需要设立运算符栈和运算数栈,下面仅举一例。例如,求2×(5-3)+6/2的过程如表6-2所示。 从上述的计算过程中,考生可以自行对A、B、C、D选项进行练习,运算数栈S的大小分别至少为4、2、3、3,只有B选项满足条件。
3. 设有一个n阶三对角线矩阵A[n][n],现把它的三条对角线上的非零元素按行存放到一个一维数组B[]中,A[1][1]存放到B[1]中(假定不用0下标),那么B[k]存放的元素的行号是( )。
A.[(k+1)/3]
B.[(k+1)/3]
C.[(k+2)/3]
D.[(k+2)/3]
正确答案:B
解析:这种题目最好采用特殊值法,推导过程可能比较繁琐,见表6-3。 从表6-3中的规律可得出答案。
4. 已知一棵5阶B-树有53个关键字,并且每个结点的关键字都达到最少状态,则它的深度是( )。
A.3
B.4
C.5
D.6
正确答案:B
解析:根据B-树定义,m阶B-树除根结点之外,所有非终端结点至少有[m/2]=3个子树,即至少有2个关键字。那么在每个结点的关键字最少的情况下,根结点关键字个数为1,其他的结点关键字个数都为2。又第一层有1个结点,第二层有2个结点,第三层有2×3个结点,第四层有2×3×3个结点。即:11+2×2+2×3×2+2×3×3×2=53,根结点加非终端刚好四层,叶子结点那一层不算,故树的深度为4。
5. 下列说法中,正确的是( )。 Ⅰ.具有10个叶子结点的二叉树中有9个度为2的结点 Ⅱ.设高度为5的二叉树上只有度为0和度为2的结点,则该二叉树巾所包含的结点数至少为9 Ⅲ.一棵完全二叉树上有1001个结点,则可知叶子结点的个数为501个 Ⅳ.高度为h的完全二叉树最少有2h个结点
A.仅Ⅰ、Ⅱ
B.仅Ⅱ、Ⅲ、Ⅳ
C.仅Ⅰ、Ⅲ、Ⅳ
D.仅Ⅰ、Ⅱ、Ⅲ
正确答案:D
解析:Ⅰ:二叉树叶子结点的个数比度为2的结点的个数多1,故I正确。 总结:这个性质在选择题中常有体现,并且需要灵活运用。比如题目可能问,二叉树中总的结点数为n,则树中空指针的个数是多少?我们可以将所有的空指针看作叶子结点,则图中原有的所有结点都成了双分支结点。因此可得空指针域的个数为树中所有结点个数加1,即n+1个。 这个性质还可以扩展,即在一棵度为m的树中,度为1的结点数为n1,度为2的结点数为n2……度为m的结点数为nm,则叶子结点数n0=1+n2+2n3+…+(m-1)nm。推导过程如下: 总结点=-n0+n1+n2+n3+…+nm ① 总分支数=1×n1+2×n2+…+m×nm(度为m的结点引出m条分支) ② 总分支数=总结点数-1 ③ 将式①和式②代入式③并化简得n0=1+n2+2n3+…+(m-1)nm Ⅱ:最少结点的情况应该是除根结点层只有1个结点外,其余4层都有2个结点,因此结点总数为2×(5-1)+1=9。如图6-4所示,故Ⅱ正确。 Ⅲ:由二叉树的性质可知:n0=n2+1,且完全二叉树度为1的结点个数要么为0,要么为1。又因为二叉树的总结点个数n=n0+n1+n2。将n0=n2+1代入,可得n=2n0+n1-1;由于n=1001,得到2n0=1002+n1。 ①当n1=1时,无解。 ②当n1=0时,可解得n0=501 故Ⅲ正确。 Ⅳ:高度为h的完全二叉树中,第1层~第h-1层构成一个高度为h-1的满二叉树,结点个数为2h-1-1。第h层至少有一个结点,所以最少的结点个数=(2h-1-1)+1=2h-1,故Ⅳ错误。
6. 在平衡二叉树中插入一个结点就造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则为使其平衡,应做( )型调整。
A.LL
B.RR
C.RL
D.LR
正确答案:D
解析:既然最低不平衡结点是A,则以A为根的子树不平衡的情况有4种,如图6-5所示。 又因为A的左孩子的平衡因子为-1,右孩子的平衡因子是0,只有第2个符合,所以应当做LR型调整。
7. 下列关于无向图的说法中,正确的是( )。Ⅰ.无向图中某个顶点的度是指图中与该顶点连通的顶点数Ⅱ.在一个具有n个顶点的无向图中,要连通全部顶点至少需要n-1条边Ⅲ.无向图的邻接矩阵是对称矩阵Ⅳ.具有n个顶点的无向图,最多有n个连通分量
A.仅Ⅰ、Ⅱ、Ⅲ
B.仅Ⅱ、Ⅲ、Ⅳ
C.仅Ⅲ
D.Ⅰ、Ⅱ、Ⅲ、Ⅳ
正确答案:B
解析:Ⅰ:无向图顶点的度即为一个顶点所引出边的条数,等价于一个顶点所含有的邻接顶点的个数,而不是与该顶点连通的顶点数(这样就会扩大范围,如图6-6所示),故Ⅰ错误。 顶点V2的度应该是1,而如果度是按照图6-6中与该顶点连通的顶点数来定义,顶点V2的度应该是3,明显错误。 Ⅱ:n个顶点的无向图要连通的话只需每个顶点做一个结点,构成一棵树即可(解题关键),并且此时是边最少的情况。对于树来说,顶点的个数比边要多1,故Ⅱ正确。 Ⅲ:显然,在无向图中,每条边(没有方向)对应于矩阵中与主对角线对称的两个“1”,因此无向图对应的邻接矩阵是对称的,故Ⅲ正确。 Ⅳ:无向图的连通分量最少只有一个,即其自身;最多有n个,即该图没有边,则每个顶点构成一个连通分量,故Ⅳ正确。
8. 下列关于强连通图的说法中,正确的是( )。Ⅰ.n个顶点构成的强连通图至少有n条边Ⅱ.强连通图是任何顶点到其他所有顶点都有边Ⅲ.完全有向图一定是强连通图
A.仅Ⅰ、Ⅱ
B.仅Ⅱ、Ⅲ
C.仅Ⅰ、Ⅲ
D.Ⅰ、Ⅱ、Ⅲ
正确答案:C
解析:Ⅰ:强连通图是相对于有向图而言的,即在有向图G中,任何两个顶点都存在路径。所以最少的情况应该是n个顶点构成一个首尾相连的环,共有n条边,故Ⅰ正确。 Ⅱ:这个选项不细心的话很容易误选。在有向图中,边和路径是不同的概念。有向图中顶点A和B之间存在边,不能说明A和B是互相连通的,所以说正确的表述应该是强连通图是任何顶点到其他所有顶点都有路径,故Ⅱ错误。 Ⅲ:完全有向图肯定是任何顶点到其他所有顶点都有路径,故Ⅲ正确。
9. 假设初始为空的散列表的地址空间为(0…10),散列函数为H(key)=key mod 11,采用线性探测再散列法处理冲突,若依次插入关键字37、95、27、14、48,则最后一个关键字值48的插入位置是( )。
A.4
B.5
C.6
D.8
正确答案:C
解析:首先通过散列函数H(key)=key mod 11的计算得知,37、95、27、14分别插入到散列表中的4、7、5、3的位置。而48 mod 11=4,但是此时4已经有元素了,根据线性探测再散列法处理冲突的原则,依次探测位置4的下一个地址,直到此地址为空,发现6为空则插入,故选C选项。
10. 设待排序元素序列所有元素的排序码都相等,则下列排序方法中排序速度最慢的是( )。
A.直接插入排序
B.起泡排序
C.简单选择排序
D.基数排序
正确答案:C
解析:当所有待排序元素的排序码都相等时,直接插入排序的排序码比较次数为n-1,元素移动次数为0;起泡排序的排序码比较次数为n-1,元素移动个数为0;简单选择排序的排序码比较次数为n(n-1)/2,元素移动次数为0;基数排序采用静态链表存储待排序元素,用于分配的桶亦采用链式队列,排序码比较次数为n×d(d是排序码位数),元素移动次数为0,故排序速度最慢的是简单选择排序。
11. 假设有5个初始归并段,每个归并段有20个记录,采用5路平衡归并排序,若采用败者树的方法,总的排序码比较次数不超过( )。
A.20
B.300
C.396
D.500
正确答案:B
解析:假设采用k路平衡归并排序算法,则败者树的高度为[log2k]+1。在每次调整后,找下一个具有最小排序码记录时,最多做[log2k]次排序码比较。由题意可知,总共有100个记录,所以总的比较次数不超过100×[log25]=300。
12. 下列说法中,错误的是( )。Ⅰ.设浮点数的基数为4,尾数用原码表示,则0.000010为规格化数Ⅱ.浮点数运算中,运算结果超出尾数表示范围则表示溢出Ⅲ.任何情况下,浮点数的右规操作最多只会进行一次
A.仅Ⅰ、Ⅲ
B.仅Ⅱ、Ⅲ
C.仅Ⅰ、Ⅱ
D.Ⅰ、Ⅱ和Ⅲ
正确答案:C
解析:Ⅰ:对于原码表示的基值为4的小数,规格化的形式是小数点后2位不全为0,故Ⅰ错误。 Ⅱ:浮点数的溢出并不是由尾数来判断的,而是规格化后阶码超出所能表示的范围时,才表示溢出,故Ⅱ错误。 Ⅲ:在浮点数的运算过程中,尾数如果出现01.XXX…X和10.XXX…X,则需要进行右规,并且只需进行一次右规尾数就会变成规格化数,但是左规操作可能不止一次,故Ⅲ正确。
13. 已知两个正浮点数,N1=2j1×S,N2=2j2×S2,当下列( )成立时,N1≥N2。
A.S1>S2
B.j1>j2
C.S1并S2均为规格化数,且j1>j2
D.S1和S2均为规格化数,且S1>S2
正确答案:C
解析:S1和S2均为规格化数,1/2≤S1≤1,1/2≤S2≤1,即S1≥1/2≥S2/2。 j1>j2,即j1≥j2+1。N1=2j1×S1≥2j2+1×S2/2=2j2×S2=N2。
14. 某容量为256MB的存储器由若干16M×8bitDRAM芯片构成,该DRAM芯片的地址引脚和数据引脚总数是( )。
A.20
B.24
C.32
D.36
正确答案:A
解析:很多不了解DRAM引脚结构的同学很可能会得出24+8=32的结果,其实这是不正确的,在《高分笔记》当中讲过半导体存储芯片的译码驱动方式,其中介绍了重合法,将存储单元分成行和列,然后分别通过行地址线和列地址线来确定行列地址从而确定一个单元,这里DRAM采用引脚复用,将行地址线和列地址线合用作一组,只不过在译码时,需要发送两次地址信号(相当于一次行地址,一次列地址),从而减少了DRAM的引脚总数,便于设计DRAM:因此这里地址空间是16M,需要24个地址位来标识,分为两次发送,则地址引脚数为12,故地址引脚和数据引脚总数为12+8=20。
15. 现有一64K×2bit的存储器芯片,欲设计具有同样存储容量的存储器,有( )种方法可以合理地安排地址线和数据线引脚的数目,且使两者之和最小。
A.2
B.3
C.4
D.5
正确答案:A
解析:不妨设地址线和数据线的数目分别为x和y。 只需要满足2x×y=64K×2,所以就有如下方案: 当y=1时,x=17; 当y=2时,x=16; 当y--4时,x=15; 当y=8时,x=14; 后面的就不要计算了,肯定比前面的引脚数目多。从以上分析可以出看,当数据线分别为1或2时,地址线和数据线引脚的数目之和为18,达到最小,并且有两种解答。
16. 某计算机有30个通用寄存器,采用32位定长指令字,操作码字段(不含寻址方式)为8位,Add指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Add指令中偏移量的取值范围是( )。
A.-4096~4095
B.-2048~2047
C.-1023~1024
D.-3071~3072
正确答案:B
解析:首先可以直接排出C、D选项,因为无论偏移量是多少位,由于偏移量是采用补码表示的,根据补码的特性,它比源码表示的数多一位,而且多出来的就是补码的最小值。因此偏移量的最小值一定是一个偶数。操作码占8位,两个操作数具有两种不同的寻址方式,则需要2位寻址特征位,另外一共有30个寄存器,故需要5位来标识选择哪个寄存器,所以偏移量的位数=32-8-2-5-5=12,而12位的带符号的补码所能表示的数的范围为-2048~2047。
17. 与本指令的地址有关的寻址方式是( )。
A.寄存器寻址
B.直接寻址
C.相对寻址
D.间接寻址
正确答案:C
解析:相对寻址本身就是相对于本指令地址进行上下浮动,所以相对寻址的区间范围和本指令的地址密切相关,其他3个选项都与本指令的地址无关。
18. 假定执行最复杂的指令需要完成6个子功能,分别由对应的功能部件A~F来完成,每个功能部件所花的时间分别为80ns、40ns、50ns、70ns、20ns、30ns,流水线寄存器延时为20ns,现把最后两个功能部件E和F合并,以产生一个五段流水线。该五段流水线的时钟周期至少是( )。
A.70ns
B.80ns
C.90ns
D.100ns
正确答案:D
解析:指令的各个子功能在不同的部件中是并行执行的,因此执行这条指令的时间一定是各个子功能中所花的最长时间,当前最长时间为80ns,当合并E和F这两个功能部件之后,合并子功能执行时间为50ns,因此最长的时间还是80ns,再加上20ns的寄存器延迟,所以五段流水线的时钟周期至少是100ns。
19. 在微程序控制器中,执行指令微程序的首条微指令地址是由( )得到的。
A.程序计数器PC
B.前条微指令
C.UPC+1
D.指令操作码映射
正确答案:D
解析:本题问的是微程序中首条微指令的地址,稍不注意就可能误选B,微程序是用来解释指令的,通过指令操作码的内容来区别指令,然后根据指令操作码映射找到对应解释这个指令的微程序段。因此首条微指令的地址是由指令操作码映射而来的。
20. 指令流水线中出现数据相关时流水线将受阻,( )可解决数据相关问题。
A.增加硬件资源
B.采用旁路电路技术
C.采用分支预测技术
D.A~C都可以
正确答案:B
解析:在流水线处理器中处理数据相关问题有两种方法:一种是暂停相关指令的执行,即暂停流水线,直到能够正确读出寄存器操作数为止:另一种是采用旁路电路技术,即采用专门的数据通路,直接把结果送到ALU的输入端,也就是把内部数据前推,即不必等待某条指令的执行结果写回到寄存器后,再从寄存器取出结果,而是直接将执行结果通过专用通路送至需要该结果的地方。
21. 在计数器定时查询方式下,若每次计数从[n/2]开始,则( )。
A.设备号小的优先级高
B.每个设备使用总线的机会相等
C.设备号大的优先级高
D.以上说法都不正确
正确答案:D
解析:当每次计数从[n/2]开始时,所有设备被分为两部分,设备号为[n/2]到n的设备优先级高于设备号为0到[n/2]-1的设备;且在这两部分内,却是设备小的优先级高,故A、B、C选项都是错误的。
22. 以下4个步骤在通道过程中的正确顺序是( )。Ⅰ.组织I/O操作Ⅱ.向CPU发出中断请求Ⅲ.编制通道程序Ⅳ.启动I/O通道
A.Ⅰ→Ⅱ→Ⅲ→Ⅳ
B.Ⅱ→Ⅲ→Ⅰ→Ⅳ
C.Ⅳ→Ⅲ→Ⅱ→Ⅰ
D.Ⅲ→Ⅳ→Ⅰ→Ⅱ
正确答案:D
解析:通道的工作过程如下: (1)用户程序中使用访管指令进入操作系统的管理程序,由CPU通过管理程序组织一个通道程序,并使用I/O指令启动通道(此后CPU就可以并行运行应用程序了)。 (2)通道并行执行CPU为它组织的通道程序(通道程序在主存中),完成指定的数据输入输出工作。 (3)通道程序结束后向CPU发出中断请求。CPU响应这个中断请求后,第二次调用管理程序对输入输出中断请求进行处理。 这样,每完成一次输入输出工作,CPU只需要两次调用管理程序,大大减少了对用户程序的打扰。
23. 下列关于批处理技术和多道程序设计技术说法中,正确的是( )。Ⅰ.批处理系统的最主要缺点是不能并发执行Ⅱ.所谓多道程序设计,是指每一个时刻有若干个进程在执行Ⅲ.引入多道程序设计的前提条件之一是系统具有中断功能Ⅳ.采用多道程序设计的系统中,系统的程序道数越多,系统的效率越高
A.仅Ⅰ、Ⅱ
B.仅Ⅱ、Ⅲ
C.仅Ⅲ
D.仅Ⅰ、Ⅳ
正确答案:C
解析:Ⅰ错误,批处理系统的最主要缺点是缺乏交互性。Ⅰ的表述肯定是错的,多道批处理系统就可以并发执行多个程序。这里多道是指允许多个进程同时驻留在主存中,按照某种原则分派处理机,逐个执行这些程序。 这里其实还考查了并发的概念。 并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。 Ⅱ错误,多道程序设计是指把多个程序同时存放在内存中,使它们同时处于运行状态。但是,在单处理机环境中,同一时刻只有一个进程在执行。 Ⅲ正确,有了中断后才能实现进程间并发,进程间并发才有可能把多个进程装入到内存实现多道程序技术。 Ⅳ错误,程序道数如果过多的话,会导致每个程序分配到的内存不够,很多程序所需的程序和代码需要临时从磁盘调入到内存,系统会频繁地处于I/O状态中,导致系统效率降低。
24. 假设系统中所有进程是同时到达,则最不利于短作业的进程调度算法是( )。
A.FCFS
B.SPF
C.RR
D.高响应比优先
正确答案:A
解析:本题可用排除法。 首先排除B选项。因为它是短作业优先算法,肯定是有利于短作业的。 然后继续排除C选项。RR兼顾长短作业,一般来说在时间片不是的太长的情况下,对于短作业还是比较公平的。(时间片设的无限长,即变成了FCFS算法。)最后排除D选项。响应比=作业响应时间/作业执行时间 =(作业执行时间+作业等待时间)/作业执行时间 =1+作业等待时间/作业执行时间在作业等待时间相同的情况下,短作业的响应比是更高的,所以高响应比优先有利于短作业。综上分析,本题选A选项。
25. Pi( ) { Lock(m mutex); //含义为获取互斥信号量 a=new int[100]; //开辟一个大小为100的整型数组空间, //并用全局指针变量a保存空间地址 UnLock(m_mutex); free(a); //释放数组空间,且a的值不改变 }有多个优先级相同的进程Pi。试问下列同时运行多个进程Pi,可能会出现的错误是( )。
A.内存泄露
B.内存越界访问
C.内存泄露和内存越界访问
D.无
正确答案:C
解析:由于a为全局指针变量,即属于临界资源,访问a的代码都属于临界区,临界区应该在Lock(m_mutex)和UnLock(m_mutex)之间,使各个进程互斥访问a。但由于本题free(a)在Lock(m_mutex)和UnLock(m_mutex)之外,所以是会出现错误的。
26. 生产者进程和消费者进程代码如下,生产者进程有一个局部变量nextProduced,以存储新产生的新项:while(1){ /*produce an item in nextProduced*/ while((in+1)%BUFFER SIZE==out);/*do nothing*/ buffer[in]=nextProduced; in=(in+1)%BUFFER_SIZE; }消费者进程有一个局部变量nextConsumed,以存储所要使用的项:while(1){ while(in==out);/*do nothing*/ nextConsumed=buffer[out]; out=(out+1)%BUFFER SIZE; /*consume the item in nextConsumed*/ } 当in==out和(in+1)%BUFFER_SIZE==out条件成立的时候,缓冲区中item数目各是( )。
A.0,BUFFER_SIZE
B.0,BUFFER_SIZE-1
C.BUFFER_SIZE-1,0
D.BUFFER_SIZE,0
正确答案:B
解析:通过阅读代码可知,变量in指向缓冲区中下一个空位,变量out指向缓冲区中的第一个非空位。BUFFER_SIZE是缓冲区最大能容纳的item数目。buffer中,非空的位置范围是[out,in-1]或者[out,BUFFER_SIZE-1]∪[0,in-1],即有如图6-7所示的两种情况。 当in==out时,前一个操作肯定是运行了消费者进程(out追上了in),因为生产者进程中,当遇到(in+1)%BUFFER_SIZE==out时就忙等,即生产进程无法使in==out,所以此时缓冲区中itern数目应该是0。 当(in+1)%BUFFER_SIZE==out时,即in差一个空位就追上out了,此时缓冲区中itern数目应该是BUFFER_SIZE-1。 所以本题正确答案是B选项。
27. 某操作系统采用可变分区分配存储管理方法,操作系统占用低地址部分的126KB。用户区大小为386KB,且用户区始址为126KB,用空闲分区表管理空闲分区。若分配时采用分配空闲区高地址的方案,且初始时用户区的386KB空间空闲,对下述申请序列:作业1申请80KB,作业2申请56KB,作业3申请120KB,作业1完成并释放空间,作业3完成并释放空间,作业4申请156KB,作业5申请80KB。如果用首次适应算法处理上述序列,最后的空闲分区的首地址为( )。
A.126
B.432
C.256
D.220
正确答案:A
解析:本题需要注意的有,一般首次适应算法是要求空闲分区链以地址递增的次序链接,本题相反,是以地址递减的顺序链接的。为描述方便,本题用“(分区首址,分区长度)”的形式描述系统中的分区。由题中所给条件可知,最初系统中只有一个空闲区,大小为386KB,始址为126KB,即(126KB,386KB)。 采用首次适应算法的操作流程如表6-5所示。
28. 在分页式系统中,分页由( )实现。
A.程序员
B.编译器
C.系统调用
D.系统
正确答案:D
解析:分页由操作系统自动实现,对用户透明。
29. 在页式虚拟管理系统中,假定驻留集为m个页帧(初始所有页帧均为空),在长为p的引用串中具有n个不同页号(n>m),对于FIFO、LRU两种页面替换算法,其缺页中断的次数的范围分别为( )。
A.[m,p]和[n,p]
B.[m,n]和[n,p]
C.[n,p]和[m,n]
D.[n,p]和[n,p]
正确答案:D
解析:缺页中断的原因是当前访问的页不在内存,需将该页调入主存。此时不管主存是否己满(已满则先调出一页),都要发生一次缺页中断。即无论怎么安排,n个不同的页号在首次进入主存时必须要发生一次缺页中断,总共发生n次,这就是缺页中断的下限。虽然不同页号数位n,小于或等于总长度p(访问串可能会有一些页重复出现),但驻留集m<n,所以可能会有某些页进入主存后又被调出主存,当再次访问时又发生一次缺页中断的现象,即有些页可能会出现多次缺页中断。极端情况是每访问一个页号时,该页都不在主存,这样共发生了p次故障。所以无论对于FIFO或者LRU替换算法,其缺页中断的上限均为p,下限均为n。 例如:当m=3,p=12,n=4时,有如下访问串: 1 1 1 2 2 3 3 3 4 4 4 4则缺页中断数为4,恰好是不同页号数,即缺页中断下限。 又如:访问串为 2 3 4 1 2 3 4 1 2 3 4则缺页中断为12,恰好是引用串长度值,即缺页中断上限。
30. 设有一个记录式文件,采用链接分配方式,逻辑记录的固定长度为100B,记录类型是英文文本(例如:WelcOmE to TiaNqin!),在磁盘上存储时采用成组分解技术。盘块长度为512B。如果该文件的目录项已经读入内存,用户现在需要规范第22个逻辑记录中的大小写格式,该操作共需启动硬盘的次数为( )。
A.1
B.2
C.5
D.6
正确答案:D
解析:第22个逻辑记录对应第4(22×100/512=4余152)个物理块,即读入第5个物理块的数据,由于文件采用的物理结构是链接文件,因此需要从目录项所指的第一个物理块开始读取,依次读到第4块才得到第5块的物理地址,然后读入第5块的内容到内存(启动了5次),处理完后,写回磁盘(启动了6次)。
31. 考虑一个有如下参数的磁盘:估计访问一个磁盘扇区的平均时间Taccess约为( )。
A.4ms
B.8ms
C.13ms
D.17ms
正确答案:C
解析:对于这个磁盘,平均旋转延迟(以ms为单位)为 Tavg rotation=1/2×Tmax rotation =1/2×(60/7200r/min)×1000ms/s ≈4ms 平均传送时间为 Tavg transfer=60/7200r/min×1/400扇区/磁道×1000ms/s ≈0.02ms 综上所述,整个估计的访问时间为 Taceess=Tavg seek+Tavg rotaion+Tavg transfer =9ms+4ms+0.02ms =13.02ms
32. 如果I/O所花费的时间比CPU的处理时间短得多,则缓冲区( )。
A.最有效
B.几乎无效
C.均衡
D.以上都不是
正确答案:B
解析:缓冲区主要就是解决I/O速度比CPU处理的速度慢而造成数据积压的矛盾,所以,如果I/O花费的时间比CPU的处理时间短得多,则缓冲区没有必要设置。
33. 透明网桥的MAC地址表要记录的信息有( )。Ⅰ.目的站MAC地址 Ⅱ.源站MAC地址Ⅲ.端口号Ⅳ.帧到达时间Ⅴ.帧转发标记
A.仅Ⅰ、Ⅱ、Ⅲ
B.仅Ⅰ、Ⅱ、Ⅴ
C.仅Ⅱ、Ⅲ、Ⅳ
D.仅Ⅱ、Ⅲ、Ⅴ
正确答案:C
解析:网桥转发数据的依据是MAC地址表,透明网桥的MAC地址表要记录3类信息,即源站MAC地址、端口号和帧到达时间。 透明网桥刚接入局域网时,其MAC地址表是空的。当透明网桥接收到一个帧时,它将记录所接收帧的源MAC地址、帧进入该网桥的端口号以及该帧进入网桥的时间,然后将该帧向所有其他端口转发。网桥在转发过程中逐渐建立起MAC地址表。 之所以要记录帧到达网络的时间,是因为局域网的拓扑经常会发生变化。为了使MAC地址表能反映整个网络的最新拓扑,需要记录每个帧到达网桥的时间,以便在MAC地址表中保留网络拓扑的最新状态信息。网桥中的端口管理软件周期性地扫描MAC地址表,只要是在一定时间(例如几分钟)以前登记的都要删除,从而使得MAC地址表能反映当前网络的拓扑状态。
34. 下列说法中,错误的是( )。Ⅰ.假设帧序号有3位,采用连续ARQ协议,发送窗口的最大值为4Ⅱ.对于窗口大小为n的滑动窗口,最多可以有n帧已发送但没有确认Ⅲ.在后退N帧协议中,如果发送窗口的大小是16,那么至少需要4位的序列号才能保证协议不出错
A.仅Ⅰ、Ⅱ
B.仅Ⅲ
C.仅Ⅱ、Ⅲ
D.Ⅰ、Ⅱ、Ⅲ
正确答案:D
解析:Ⅰ:连续ARQ协议包括后退N帧协议和选择重传协议。如果帧序号为3位,当采用后退N帧协议时,发送窗口的最大值为23-1=7;当采用选择重传协议时,发送窗口的最大值为23-1=4,故Ⅰ错误。 Ⅱ:在连续ARQ协议中,如果总的窗口大小为n,发送窗口的大小最大为n-1(当采用后退N帧协议时可以达到)。例如:假设窗口大小为8(0~7),如果发送窗口大小为8,则当0~7号帧都发出去时,接收方已经收到了,并且发出确认。但是发送方却没有收到确认,导致0~7号帧超时重传,而此时接收方就判断不出这个是重传的还是新一轮的帧,导致错误,故Ⅱ错误。 Ⅲ:首先需要清楚后退N帧协议的最大发送窗口为2n-1(其中n为帧号的位数),题目中已经说明发送窗口的大小为16,也就是说如果要使得协议不出错,必须满足16≤2n-1,所以n至少要等于5,故Ⅲ错误。
35. 假设某网络最远的两个站点长度为10km,数据传输率为10Mbit/s的CSMA/CS以太网,信号传播速度为200m/μs。那么该网络的最小帧长为( )。
A.20bit
B.200bit
C.100bit
D.1000bit
正确答案:D
解析:要求最小帧长,首先得求出争用期。来回往返的路程为20km,而信号传播速度为200m/gs(2×108m/s),所以争用期=2×104/2×108s=104s,故最小帧长=数据传输率×争用期=107×10-44bit=1000bit,故选D选项。
36. 图6-1是网络地址转换NAT的一个实例,根据图6-1中的信息,标号为④的方格中的内容应为( )。
A.S=135.2.1.1,80
B.S=135.2.1.1,80D=202.0.1.1,5001 D=192.168.1.1,3342
C.S=202.0.1.1,5001
D.S=192.168.1.1,3342D=135.2.1.1,80 D=135.2.1.1,80
正确答案:B
解析:在图6-1中,Web服务器给地址为192.168.1.1的源主机返回响应结果时,进入NAT路由器之前的IP分组的源IP地址为135.2.1.1,源端口号为80,目的IP地址为202.0.1.1,目的端口号为5001,即在图6-1中标号为③的方格中的内容应为“S=135.2.1.1,80;D=202.0.1.1,5001”。该IP分组经过查询路由器中NAT转换表可知,目的IP地址202.0.1.1应转换为192.168.1.1,目的端口号5001应转换成3342,而源IP地址、源端口号不变。可见,在图6-1中标号为④的方格中的内容应该为“S=135.2.1.1,80;D=192.168.1.1,3342”。
37. 对于193.100.60.0网络,若子网掩码设置成255.255.255.192,则每个子网最多可接入( )台主机。
A.256
B.254
C.62
D.30
正确答案:A
解析:在一条点对点的链路上,存在两台主机,即只需要给这个网络分配2位主机位(22-2=2)即可,所以说子网掩码应该为11111111.11111111.11111111.11111100,即255.255.255.252。
38. 在IP分组的传输过程中,以下IP分组首部中的字段保持不变的是( )。Ⅰ.总长度Ⅱ.头部检验和Ⅲ.生存时间Ⅳ.源IP地址
A.仅Ⅰ、Ⅱ、Ⅳ
B.仅Ⅳ
C.仅Ⅰ、Ⅲ、Ⅳ
D.仅Ⅱ、Ⅳ
正确答案:B
解析:Ⅰ:当此时IP分组的长度超过该网络的最大分组传输单元的时候,需要分片,此时总长度将改变,故Ⅰ错误。 Ⅱ:IP分组每经过一个跳段都会改变其头部检验和,故Ⅱ错误。 Ⅲ:这个比较容易判断,生存时间是不断在减少的,比如使用RIP协议,每经过一个路由器,生存时间减1,故Ⅲ错误。 Ⅳ:其实这个问题很多考生都有疑问,如果在题目没有说明NAT的情况下,到底要不要考虑NAT?个人认为还是不要考虑,因为一些经典教材的习题以及各大名校的考研试题中都不考虑。
39. 有一个TCP连接,当其拥塞窗口为64个分组大小时超时。假设网络的RTT是固定的3s,不考虑比特开销,即分组不丢失,则系统在超时后处于慢启动阶段的时间是( )。
A.12s
B.15s
C.18s
D.21s
正确答案:B
解析:拥塞阈值为64/2=32,在慢启动阶段,每次RTT时间拥塞窗口加倍,我们不妨用W(t)来表示t时刻的拥塞窗口,这样W(0)=1,W(RTT)=2,W(2RTT)=4,W(3RTT)=8,W(4RTT)=16,W(5RTT)=32,因此系统处于慢启动阶段的时间为5个RTT,即15s。
40. 某网络允许的最大报文段的长度为128B,序号用8bit表示,报文段在网络中的寿命为30s,则每一条TCP连接所能达到的最高数据率为( )。
A.4.6kbit/s
B.18.9kbit/s
C.8.7kbit/s
D.25.6kbit/s
正确答案:C
解析:首先,具有相同编号的报文段不应该同时在网络中传输,必须保证当序列号循环回来重复使用的时候,具有相同序列号的报文段已经从网络中消失。其次,由于最大传送协议数据单元的序号为8bit,根据滑动窗口原理,发送方最多只能发送255个最大传送协议数据单元,这样才能避免协议出错。那么在30s的时间内发送方发送的报文段的数目不能多丁255个。 可求得最大发送速率为(255×128×8bit)/30s≈8.7kbit/s。
综合应用题41-47小题,共70分。
设哈希函数为:H(key)=key mod 13,其中key为关键字,mod为取模运算,试用关键字序列{39,25,15,54,26,24,14,21,37,38}构造哈希表。
41. 用链地址法处理冲突,画出该哈希表的存储结构图,假定每个记录的查找概率相等,计算查找成功时的平均查找长度。
正确答案:对关键字序列进行取模运算,得到表2-9。则该哈希表的存储结构图如图2-10所示。查找成功时的查找长度为:(6+2×4)/10=1.4
42. 设表地址范围为0~13,用线性探测再散列法处理冲突,画出该哈希表的存储结构图,假定每个记录的查找概率相等,计算查找成功时的平均查找长度。
正确答案:用线性探测再散列法处理冲突得到的哈希表如表2-10所示(下面一行为Key值)。查找成功时的平均查找长度为(1+1+1+2+2+1+2+1+3+8)/10=2.2。
输入一整数数组{5,7,6,9,11,10,8},该整数序列为图2-2所示的二叉排序树的后序遍历序列。请实现一个时间上尽可能高效率的算法,判断某一输入整数数组是否为某二叉排序树的后序遍历的结果。如果是返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。要求:
43. 给出算法的基本设计思想。
正确答案:基本设计思想:首先,使用后序遍历得到的序列的最后一个结点一定是根结点的值。而根结点前面的整数序列可分为两部分:第一部分是左子树结点的值,它们都比根结点的值小;第二部分是右子树结点的值,它们都比根结点的值大。 以数组{5,7,6,9,11,10,8}为例,后序遍历结果的最后一个数字8就是根结点的值。在这个数组中,前3个数字5、7和6都比8小,是值为8的根结点的左子树特点;后3个数字9、11和10都比8大,是值为8的根结点的右子树结点。接下来需要用同样的方法确定与数组每一部分对应的子树结构。很明显,这是一个递归的过程。对于整数序列5、7和6,最后一个数字6是左子树的根结点的值。数字5比6小,是值为6的结点的左子结点,而7则是它的右子结点。同样,在序列9、11和10中,最后一个数字10是右子树的根结点的值,数字9比10小,是值为10的结点的左子结点,而11则是它的右子结点。 再举一个反例。例如整数数组{8,1,6,5},后序遍历的最后一个数是根结点,因此根结点的值是5。由于第一个数字8大于5,因此可以肯定此二叉排序树的根结点上没有左子树,数字8、1和6都是右子树结点的值。但发现在右子树中有一个结点的值是1,比根结点的值5小,这就违背了二叉排序树的定义。因此,不存在一棵二叉排序树,它的后序遍历的结果是8、1、 6、 5。 以上分析足以看出规律所在。接下来写代码吧!
44. 根据设计思想,采用C、C++或Java语言描述算法,关键之处给出注释。
正确答案:算法实现如下:bool verifySquenceofBST(int squence[],int length){//判断非法输入数组if(squence==NULL || length<=0) return false; //将数组的最后一个值赋值给根结点的值 int root=squence[1ength-1]; //在二叉排序树中左子树的结点值小于根结点的值 int i=0; for(;i<length-1;i++) { if(squence[i]>root) break; } //在二叉捧序树中右子树的结点值大于根结点的值 int j=i; for(;j<length-1;j++) { if{squence[j]<root) return false; } //判断左子树是不是二叉排序树 booi left=true; if(i>0) left=verifySquenceOfBST(squence,i); //判断右子树是不是二叉排序树 bool right=true; if(i<length-i) right=verifySquenceOfBST(squence+i,length-i-1); return(1eft&&right);}
45. 说明你所设计算法的时间复杂度。
正确答案:算法每次确定当前数组中的最后一个为子树的根,然后对数组进行扫描,把数组分成两部分,前面一部分是比根小的,作为左子树,后面一部分比根大的,作为右子树。这个扫描的过程为O(n)。然后递归地构造出整棵树,并判断构造出来的树是否合法。同样地考虑一个递增的数组,每次只能分离出最后一个作为树根,然后往下递归。在这个过程中,第i层的数组里有n-i+1个数,这样总的扫描的次数为n(n-1)/2,所以时间复杂度为O(n2)。 扩展:输入一个整数数组,判断该数组是不是某二叉排序树的前序遍历的结果。该题与前面分析的后序遍历非常类似,只是在前序遍历得到的序列中,第一个数字是根结点的值。
某字长为8位的计算机中,带符号整数采用补码表示,x=-68,y=-80,x和v分别存放在寄存器A和B中,请回答下列问题(最终要求用十六进制表示二进制序列)。
46. 寄存器A和B中的内容分别是什么?
正确答案:[-68]补=[-1000100B]补=10111100B=BCH;[-80]补=[-1010000B]补=10110000B=BOH。所以寄存器A和寄存器B中的内容分别为BCH和BOH。
47. 若x和y相加后的结果存放在寄存器C中,则寄存器C中的内容是什么?运算结果是否正确?此时,溢出标志OF、符号标志SF和零标志ZF各是什么?加法器最高位的进位Cn是什么?
正确答案:[x+y]补=[x]补+[y]补=10111100B+10110000B=(1)01101100B=6CH,最高位前面的一位1被丢弃,因此,寄存器C中的内容为6CH,对应的真值为+108,结果不正确。溢出标志位OF可采用以下任意一条规则。 规则一:若两个加数的符号位相同,但与结果的符号位相异,则溢出。 规则二:若最高位的进位和次高位的进位不同,则溢出。 通过这两个规则都能判断结果溢出,即溢出标志位OF为1,说明寄存器C中的内容不是正确的结果。x+y的正确结果应是-68+(-80)=-148,而运算结果是108,显然两者不等。其原因是x+y的值(即-148)小于8位补码可表示的最小值(即-128),也即结果发生了溢出。 结果的第一位0为符号标志SF,表示结果为正数。但因为溢出标志位1,所以符号标志实际上也是错的。 因为结果不为0,所以零标志ZF=0。 加法器最高位向前的进位Cn为1。
48. 若x和y相减后的结果存放在寄存器D中,则寄存器D中的内容是什么?运算结果是否正确?此时,溢出标志OF、符号标志SF和零标志ZF各是什么?加法器最高位的进位Cn是什么?
正确答案:[x-y]补=[x]补+[-y]补=10111100B+01010000B=(1)00001100B=0CH,最高位前面的一位1被丢弃,因此,寄存器D中的内容为OCH,对应的真值为+12,结果正确。 两个加数的符号位相异一定不会溢出,因此溢出标志OF为0,说明寄存器D中的内容是真正的结果。 结果的第一位0为符号标志SF,表示结果为正数;因为结果不为0,所以零标志ZF=0;加法器最高位向前的进位C。为1。
49. 若将加法器最高位的进位Cn作为进位标志CF,能否直接根据CF的值对两个带符号整数的大小进行比较?
正确答案:若将加法器最高位的进位Cn作为进位标志CF,则无法直接根据CF的值判断两个带符号整数的大小,因此带符号加减运算中不考虑CF标志。
假定一个计算机系统中有1个TLB和1个L1 Data Cache。该系统按字节编址,虚拟地址16位,物理地址12位,页大小为128B,TLB为4路组相连,共有16个页表项,L1 Data Cache采用直接映射方式,块大小为4B,共16行。在系统运行到某一时刻时,TLB、页表和L1 Data Cache中的部分内容如图2-3所示。 试回答下列问题:
50. 虚拟地址中哪几位表示虚拟页号?哪几位表示页内偏移量?虚拟页号中哪几位表示TLB标记?哪几位表示TLB索引?
正确答案:16位虚拟地址中低7位为页内偏移量,高9位为虚页号;虚页号中高7位为TLB标记,低2位为TLB组索引。
51. 物理地址中哪几位表示物理页号?哪几位表示页内偏移量?
正确答案:12位物理地址中低7位为页内偏移量,高5位为物理页号。
52. 主存(物理),地址如何划分成标记字段、行索引字段和块内地址字段?
正确答案:12位物理(主存)地址中,低2位为块内地址,中间4位为Cache行索引,高6位为标记。
53. CPU从地址067.AH中取出的值为多少?说明CPU读取地址067AH中内容的过程。
正确答案:地址067AH=0000 0110 01111010B,所以,虚页号为0000011 00B,映射到TLB的第0组。将0000011B=03H与TLB第0组的4个标记比较,虽然和其中一个相等,但对应的有效位为0,其余都不等,所以TLB缺失,访问主存中的页表。直接查看000001100B=00CH处的页表项,有效位为1,取出物理页号19H=11001B,与页内偏移1111010B拼接成物理地址:110011111010B。根据中间4位1110直接找到Cache第14行(行号从0开始),即第E行,有效位为1,且标记为33H=110011B,正好等于物理地址高6位,所以命中。根据物理地址最低两位10,所以应该取出该块的第2字节,即4AH=01001010B。
在单CPU和两台输入/输出设备(11,12)的多道程序设计环境下,同时投入3个作业J1、J2和J3运行。这3个作业对CPU和输入/输出设备的使用顺序和时间如下所示。 J1:12(30ms);CPU(10ms);11(30ms);CPU(10ms);12(20ms) J2:11(20ms);CPU(20ms);12(40ms) J3:CPU(30ms);11(20ms);CPU(10ms);11(10ms) 假定CPU、11、12都能并行工作,J1优先级最高,J2次之,J3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU,但不抢占11和12。试求:
54. 3个作业从投入到完成分别需要的时间。
正确答案:3个作业的运行情况如表2-11所示。J1、J2、J3从投入到完成分别需要110ms、90ms、110ms。
55. 从投入到完成的CPU利用率。
正确答案:从作业的投入到完成,CPU的利用率为(20+10×6)/110,即72.7%。
56. I/O设备利用率。
正确答案:设备I1的利用率为(20+30+20+10)/110,即72.7%;I2的利用率为(30+40+20)/110,即81.8%。
下列程序实现了矩阵乘法。int A[100][150];int B[150][200];int C[i00][200];for(i=0;i<100,i++) for(j=0;j<200;j++) for(k=0;k<150;k++) C[i][j]+=A[i][k]*B[k][j]; 假设矩阵A和矩阵B的初值已经初始化过,矩阵C初始化为0,各矩阵均以页为单位连续存放(且假定是行优先存储)。又假定一个整数占用1个字,代码以及变量i、j和k存放在其他页面里,并且存取变量i、j和k时不存在缺页问题。主存初始为空,在请求分页存储管理中,页面淘汰算法为FIFO。
57. 作业分配10个页面,每个页面为100字,给矩阵A、B和C使用。问执行上面的程序时,缺页次数是多少?当执行完程序时,留在内存的10个页面各属于哪些矩阵?
正确答案:矩阵是按行存储的,且每页均从页面首址开始存放,则矩阵A、B、C的存储情况如表2-12所示。 程序执行中对存储器的访问顺序为读A、读B、读C和写C。由于每页可存放100个字,由表2.12可知,矩阵A占用150页、矩阵B占用300页、矩阵C占用200页。假设矩阵A占用的页面为1~150,矩阵B占用的页面为151~450,矩阵C占用的页面为451~650。其存储示意图如图2-11所示。 程序对矩阵A和C的访问是按行访问,即矩阵A和C的存放顺序与访问顺序相同。程序对矩阵B的访问是按列访问,矩阵B的存放顺序与访问顺序不一致,即访问顺序是访问某列的第1个元素后,再访问该列的第2个元素、第3个元素……并且,由于矩阵B每行必须用两页存储,所以一列第1个元素与第2个元素存储在不同的页中,也即按列顺序访问时,每次对矩阵B的访问实际上都要访问与前一页访问不同的页。 程序中的三重for循环执行的次数为100×200×150=3000000次,每次需要一次访问矩阵A、B和C。只要不跨页,每次访问矩阵A和C时无需调入新页,但每次访问矩阵B中的元素都需要调入新页。由于系统只有10个页面,所以每次访问矩阵B,被访问元素所在页面都不在内存中。 采用FIFO算法,当循环次数为n1×9+1或n2×100+1时,读A、读B与读C或写C都会出现缺页,而其他情况只有在读B时会出现缺页。 n1×9+1时的情况是由于矩阵B需要占用页面,而把矩阵A、C换出,造成下次访问矩阵A、C时出现缺页。 第9次循环结束时 A B C B B B B B B B B 此时根据FIFO,A页面被换出。 第10次循环结束时(即n1=1的情况) A B C B B B B B B B B A B C 需要访问A,根据FIFO,B页面被换出,需要访问B,C页面也被换出,最后又要访问C,C页面又被换入。 n2×100+1时的情况则是需要读A或C新的一页数据造成的缺页。 n1×9+1的取值范围为[1,10,19,28,37,…,901,…,333333×9+1] n2×100+1的取值范围为[1,101,201,…,901,…,29999×100+1] 当n2为9的倍数时,会有共同项出现,如901、1801… 这种共同项个数为[30000/9]=3333。去掉重复项后,A和C的缺页总次数为(333333+29999-3333)×2。 根据上述规律可得出缺页的次数为 [100×200×150+(333333+29999-3333)×2]次=3719998(次) 最后留在内存中的10个页面,其中1个页面属于矩阵A,8个页面属于矩阵B,1个页面属于矩阵C。
58. 当作业分配两个页面,每个页面为500字,给矩阵A、B和C使用。问执行上面的程序时,缺页次数是多少?当执行完程序时,留在内存的10个页面各属于哪些矩阵? (注:c+=c+a*b的执行顺序为:读a、读b、计算a×b、读c、计算c+a×b、写c)
正确答案:若每个页面为500字时,则矩阵A占用30页,矩阵B占用60页,矩阵C占用40页。由于内存中仅两个页面,所以每次访问都将出现缺页,即缺页次数为3000000×3次=9000000(次)
假设主机1(在图2-4中网络1以太网上)是可以运行IE浏览器的某客户机,主机4(在图2-4中网络3以太网上)为天勤论坛Web服务器(IP地址为202.197.11.5),主机5(在图2-4中网络2的FDDI主干网上)为天勤论坛DNS服务器,该DNS服务器上有天勤论坛Web站点的域名地址到IP地址解析。其中,路由器1以太网端口(a端口)的MAC地址是E3,IP地址是202.197.12.3,子网掩码是255.255.255.0;路由器1的FDDI端口(c端口)的MAC地址是F1,IP地址是202.197.10.1,子网掩码是255.255.255.0。路由器2的以太网端口(b端口)的MAC地址是E4,IP地址是202.197.11.4,子网掩码是255.255.255.0;路由器2的FDDI端口(c端口)的MAC地址是F3,IP地址是202.197.10.2,子网掩码是255.255.255.0,其他站点的IP地址和MAC地址如图2-4所示。试问:
59. 为了使主机1能够通过域名访问天勤论坛Web服务器,主机1上的IP地址、子网掩码、默认网关IP地址、DNS服务器地址应该如何配置?
正确答案:由于路由器1的a端口连接的是网络1,且网络1的网络号为202.197.12.0,所以主机1的IP地址可在202.197.12.1~202.197.12.254(除了202.197.12.3)中随机选择一个IP地址,当然还要与主机2的IP地址不一样。假设选择202.197.12.1作为主机1的IP地址。此时,主机1的子网掩码为255.255.255.0。网关的IP地址为路由器的端口地址(记住即可),即202.197.12.3,DNS服务器的IP地址就是主机5的IP地址,即202.197.10.3。
60. 假设主机1使用的1234的UDP端口与DNS服务器通信,使用的1235的TCP端口与Web服务器通信,请写出主机1发给DNS服务器和Web服务器的UDP报文和TCP报文中的源端口号和目的端口号、IP报文中的源IP地址和目的IP地址以及在3个物理网络中发送的MAC帧中的源MAC地址和目的MAC地址。
正确答案:分述如下: 1)从主机1到DNS服务器。 UDP报文:目的端口号53(DNS协议的默认端口号),源端口号为1234。 IP报文:目的地址为202.197.10.3,源地址为202.197.12.1。 MAC帧: ①以太网段(网络1)的目的地址是路由器1中a端口的物理地址:E3,源地址为主机1的MAC地址E1。 ②FDDI段(网络2)的目的地址为DNS服务器的MAC地址F4,源地址为路由器1中c端口的物理地址F1。 2)从主机1到Web服务器。 TCP报文:目的端口号80(HTTP协议的默认端口号),源端口号为1235。 IP报文:目的地址为202.197.11.5,源地址为202.197.12.1。 MAC帧: ①以太网段(网络1)的目的地址是路由器1中a端口的物理地划:E3,源地址为主机1的MAC地址E1。 ②FDDI段(网络2)的目的地址是路由器2中c端口的MAC地址F3,源地址为路由器1中c端口的物理地址F1。 ③以太网段(网络3)的目的地址是Web服务器的物理地址E6,源地址为路由器2中b端口的MAC地址E4。
61. 从(2)的分析中,得出了什么结论?请阐述。
正确答案:从(2)的分析中,可以很明确地得出一个结论:在经过不同网络时,源IP地址与目的IP地址都是不变的,而源MAC地址与目的MAC地址在不断地变化。
《计算机专业(基础综合)模拟试卷107(题后含答案及解析)》相关文档:
计算机专业实习报告范文(5篇)09-13
计算机专业毕业实习报告7篇09-13
计算机专业实习报告7篇09-13
计算机专业实习报告范文1500字09-14
计算机专业实习总结3000字范文09-14
计算机专业实习报告范文3000字09-14
计算机专业社会实习报告范文(7篇)09-14
计算机专业应用实习报告(通用10篇)09-14
计算机专业校友邦实习报告精选【10篇】09-14
计算机专业实习心得体会优秀范文5篇09-15