returni;
}
A.O(logn)
B.O(n1/2)
C.O(n)
D.O(nlogn)
2.下列关于栈的叙述中,错误的是2。
I.采用非递归方式重写递归程序时必须使用栈
II.函数调用时,系统要用栈保存必要的信息
III.只要确定了入栈的次序,即可确定出栈次序
IV.栈是一种受限的线性表,允许在其两端进行操作
A.仅I
B.仅I、II、III
C.仅I、III、IV
D.仅II、III、IV
3.适用于压缩存储稀疏矩阵的两种存储结构是3。
A.三元组表和十字链表
B.三元组表和邻接矩阵
C.十字链表和二叉链表
D.邻接矩阵和十字链表
4.要使一棵非空二叉树的先序序列与中序序列相同,其所有非叶结点须满足的条件是4。
A.只有左子树
B.只有右子树
C.结点的度均为1
D.结点的度均为2
5.已知一棵二叉树的树形如下图所示,其后序序列为e,a,c,b,d,g,f,树中与结点a同层的结点是5。
A.c
B.d
C.f
D.g
6.已知字符集{a,b,c,d,e,f,g,h},若各字符的哈夫曼编码依次是0100,10,0000,0101,001,011,11,0001,则编码序列0100011001001011110101的译码结果是6。
A.acgabfh
B.adbagbb
C.afbeagd
D.afeefgd
7.已知无向图G含有16条边,其中度为4的顶点个数为3,度为3的顶点个数为4,其他顶点的度均小于3。
图G所含的顶点个数至少是7。
A.10
B.11
C.13
D.15
8.下列二叉树中,可能成为折半查找判定树(不含外部结点)的是8。
A.
B.
C.
D.
9.下列应用中,适合使用B+树的是9。
A.编译器中的词法分析
B.关系数据库系统中的索引
C.网络中的路由表快速查找
D.操作系统的磁盘空闲块管理
10.在内部排序中,若选择了归并排序而没有选择插入排序,则可能的理由是10。
I.归并排序的程序代码更短
II.归并排序的占用空间更少
III.归并排序的运行效率更高
A.仅II
B.仅III
C.仅I、II
D.仅I、III
11.下列排序方法中,若将顺序存储更换为链式存储,则算法的时间效果会降低的是11。
I.插入排序
II.选择排序
III.起泡排序
IV.希尔排序
V.堆排序
A.仅I、II
B.仅II、III
C.仅III、IV
D.仅IV、V
12.假定计算机M1和M2具有相同的指令集体系结构(ISA),主频分别为1.5GHz和1.2GHz。
在M1和M2上运行某基准程序P,平均CPI分别为2和1,则程序P在M1和M2上运行时间的比值是12。
A.0.4
B.0.625
C.1.6
D.2.5
13.某计算机主存按字节编址,由4个64M*8位的DRAM芯片采用交叉编址方式构成,并与宽度为32位的存储器总线相连,主存每次最多读写32位数据。
若double型变量x的主存地址为804001AH,则读取x需要的存储周期是13。
A.1
B.2
C.3
D.4
14.某C语言程序段如下:
for(i=0;i<=9;i++)
{lemp=1;
for(j<0;j<=I;j++)temp*=a[j];
sum+=temp;
}
下列关于数组a的访问局部性的描述中,正确的是14。
A.时间局部性和空间局部性皆有
B.无时间局部性,有空间局部性
C.有时间局部性,无空间局部性
D.时间局部性和空间局部性皆无
15.下列寻址方式中,最适合按下标顺序访问一维数组元素的是15。
A.相对寻址
B.寄存器寻址
C.直接寻址
D.变址寻址
16.某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是16。
A.24位
B.26位
C.28位
D.32位
17.下列关于超标量流水线特性的叙述中,正确的是16。
I.能缩短流水线功能段的处理时间
II.能在一个时钟周期内同时发射多条指令
III.能结合动态调度技术提高指令执行并行性
A.仅II
B.仅I、III
C.仅II、III
D.I、II和III
18.下列关于主存储器(MM)和控制存储器(CS)的叙述中,错误的是18。
A.MM在CPU外,CS在CPU内
B.MM按地址访问,CS按内存访问
C.MM存储指令和数据,CS存储微指令
D.MM用RAM和ROM实现,CS用ROM实现
19.下列关于指令流水线数据通路的叙述中,错误的是19。
A.包含生成控制信号的控制部件
B.包含算法逻辑运算部件(ALU)
C.包含通用寄存器组和取指部件
D.由组合逻辑电路和时序逻辑电路组合而成
20.下列关于多总线结构的叙述中,错误的是20。
A.靠近CPU的总线速度较快
B.存储器总线可支持突发传送方式
C.总线之间须通过桥接器相连
D.PCI_Express*16采用并行传输方式
21.I/O指令实现的数据传送通常发生在21。
A.I/O设备和I/O端口之间
B.通用寄存器和I/O设备之间
C.I/O端口和I/O端口之间
D.通用寄存器和I/O端口之间
22.下列关于多重中断系统的叙述中,错误的是22。
A.在一条指令执行结束时响应中断
B.中断处理期间CPU处于关中断状态
C.中断请求的产生与当前指令的执行无关
D.CPU通过采样中断请求信号检测中断请求
23.假设4个作业到达系统的时刻和运行时间如下表所示。
作业
到达时间t
运行时间
J1
0
3
J2
1
3
J3
1
2
J4
3
1
系统在t=2时开始作业调度。
若分别采用先来先服务和短作业优先调度算法,则选中的作业分别是23
A.J2、J3
B.J1、J4
C.J2、J4
D.J1、J3
24.执行系统调用的过程包括如下主要操作:
1)返回用户态
2)执行陷入(trap)指令
3)传递系统调用参数
4)执行相应的服务程序
正确的执行顺序是24。
A.2)→3)→1)→4)
B.2)→3)→3)→1)
C.3)→2)→4)→1)
D.3)→4)→2)→1)
25.某计算机按字节编址,其动态分区内存管理采用最佳适应算法,每次分配和回收内存后都对空闲分区链重新排序。
当前空闲分区信息如下所示。
分区起始地址
20K
500K
1000K
200K
分区大小
40KB
80KB
100KB
200KB
回收起始地址为60K、大小为140KB的分区后,系统中空闲分区的数量、空闲分区链第一个分区的起始地址和大小分别是25。
A.3、20K、380KB
B.3、500K、80KB
C.4、20K、180KB
D.4、500K、80KB
26.某文件系统的簇和磁盘扇区大小分别为1KB和512B。
若一个文件的大小为1026B,则系统分配给该文件的磁盘空间大小是26。
A.1026B
B.1536B
C.1538B
D.2048B
27.下列有关基于时间片的进程调度的叙述中,错误的是27。
A.时间片越短,进程切换的次数越多,系统开销也越大
B.当前进程的时间片用完后,该进程状态由执行态变为阻塞态
C.时钟中断发生后,系统会修改当前进程在时间片内的剩余时间
D.影响时间片大小的主要因素包括响应时间、系统开销和进程数量等。
28.与单道程序系统相比,多道程序系统的优先是28。
I.CPU利用率高
II.系统开销小
III.系统吞吐量大
IV.I/O设备利用率高
A.仅I、III
B.仅I、IV
C.仅II、III
D.仅I、III、IV
29.下列选项中,磁盘逻辑格式化程序所做的工作是29。
I.对磁盘进行分区
II.建立文件系统的根目录
III.确定磁盘扇区校验码所占位数
IV.对保存空闲磁盘块信息的数据结构进行初始化
A.仅II
B.仅II、IV
C.仅III、IV
D.仅I、II、IV
30.某文件系统中,针对每个文件,用户类别分为4类:
安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种:
完全控制、执行、修改、读取、写入。
若文件控制块中用二进制位串表示文件权限,为表示不同类别用户对一个文件的访问权限,则描述文件权限的位数至少应为30。
A.5
B.9
C.12
D.20
31.若文件f1的硬链接为f2,两个进程分别打开f1和f2,获得对应的文件描述符为fd1和fd2,则下列叙述中,正确的是31。
I.f1和f2的读写指针位置保持相同
II.f1和f2共享同一个内存索引结点
III.fd1和fd2分别指向各自的用户打开文件表中的一项
A.仅III
B.仅II、III
C.仅I、II
D.I、II和III
32.系统将数据从磁盘读到内存的过程包括以下操作:
1)DMA控制器发出中断请求
2)初始化DMA控制器并启动磁盘
3)从磁盘传输一块数据到内存缓冲区
4)执行“DMA结束”中断服务程序
正确的执行顺序是32。
A.3)→1)→2)→4)
B.2)→3)→1)→4)
C.2)→1)→3)→4)
D.1)→2)→4)→3)
33.假设OSI参考模型的应用层欲发送400B的数据(无拆分),除物理层和应用层之处,其他各层在封装PDU时均引入20B的额外开销,则应用层数据传输效率约为33。
A.80%
B.83%
C.87%
D.91%
34.若信道在无噪声情况下的极限数据传输速率不小于信噪比为30dB条件下的极限数据传输速率,则信号状态至少是34。
A.4
B.8
C.16
D.32
35.在下图所示的网络中,若主机H发送一个封装访问InternetIP分组的IEEE802.11数据帧F,则帧F的地址1、地址2和地址3分别是35。
A.00-12-34-56-78-9a,00-12-34-56-78-9b,00-12-34-56-78-9c
B.00-12-34-56-78-9b,00-12-34-56-78-9a,00-12-34-56-78-9c
C.00-12-34-56-78-9b,00-12-34-56-78-9c,00-12-34-56-78-9a
D.00-12-34-56-78-9a,00-12-34-56-78-9c,00-12-34-56-78-9b
36.下列IP地址中,只能作为IP分组源IP地址但不能作为目的IP地址是36。
A.0.0.0.0
B.127.0.0.1
C.200.10.10.3
D.255.255.255.255
37.直接封装RIP,OSPF,BGP报文的协议分别是37。
A.TCP、UDP、IP
B.TCP、IP、UDP
C.UDP、TCP、IP
D.UDP、IP、TCP
38.若将网络21.3.0.0/16划分为128个规模相同的子网,则每个子网可分配的最大IP地址个数是38。
A.254
B.256
C.510
D.512
39.若甲向乙发起了一个TCP连接,最大段长MSS=KB,RTT=5ms,乙开辟的接收缓存为64KB,则甲从连接建立蒽至发送窗口达到32KB,需经过的时间至少是38。
A.25ms
B.30ms
C.160ms
D.165ms
40.下列关于FTP协议的叙述中,错误的是40。
A.数据连接在每次数据传输完毕后就关闭
B.控制连接在整个会话期间保持打开状态
C.服务器与客户端的TCP20端口建立数据连接
D.客户端与服务器的TCP21端口建立控制连接
二、综合应用题
41.请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出。
例如,当下列两棵表达式作为算法的输入时:
输出的等价中缀表达式分别为(a+b)*(c+(-d))和(a*b)+(-(-c-d))。
二叉树结点定义如下:
Typedefstructnode
{chardata[10];//存储操作数或操作符
Structnode*left,*right;
}BTree;
要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
42.使用Prim(普里姆)算法求带权连通图的最小(代价)生成树(MST)。
请回答下列问题。
(1)对下列图G,从顶点A开始求G的MST,依次给出按算法选出的边。
(2)图G的MST是唯一的吗?
(3)对任意的带权连通图,满足什么条件时,其MST是唯一的?
43.已知
,计算f(n)的C语言函数f1如下:
1intf1(unsignedn)
2{intsum=1,power=1;
3for(unsignedi=0;i<=n-1;i++)
4{power*=2;
5sum+=power;
6}
7returnsum;
8}
将f1中的int都改为float,可得到计算f(n)的另一个函数f2。
假设unsigned和int型数据都占32位,float采用IEEE754单精度标准。
请回答下列问题。
(1)当n=0时,f1会出现死循环,为什么?
若将f1中的变量i和n都定义为int型,则f1是否还会出现死循环?
为什么?
(2)f1(23)和f2(23)的返回值是否相等?
机器数各是什么(用十六进制表示)?
(3)F1(24)和f2(24)的返回值分别为33554431和33554432.0,为什么不相等?
(4)f(31)=232-1,而f1(31)的返回值却为-1,为什么?
若使f1(n)的返回值与f(n)相等,则最大的n是多少?
(5)F2(127)的机器数为7F800000H,对应的值是什么?
若使f2(n)的结果不溢出,则最大的n是什么?
若使f2(n)的结果精确(无舍入),则最大的n是多少?
44.在按字节编址的计算机M上,题43中f1的部分源程序(部分)与对应的机器级代码(包括指令的虚拟地址)如下:
intf1(unsignedn)
10040102055pushebp
………………
for(unsignedi=0;i<=n-1;i++)
…..…………
200040105E394DF4cmpdwordptr[ebp-0Ch],ecx
………………
{power*=2;
………………
2300401066D1E2shledx,l
………………
returnsum;
………………
350040107FC3ret
其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令。
请回答下列问题。
(1)计算机M是RISC还是CISC?
为什么?
(2)f1的机器指令代码共占多少字节?
要求给出计算过程。
(3)第20条指令cmp通过i减n-1实现对i和n-1的比较。
执行f1(0)过程中,当i=0时,cmp指令执行后,进/借位标志CF的内容是什么?
要求给出计算过程。
(4)第23条指令shl通过左移操作实现了power*2运算,在f2中能否也用shl指令实现power*2?
为什么?
45.假定题44给出的计算机M采用二级分布虚拟存储管理方式,邪气地址格式如下:
页目录号(10位)
页表索引(10位)
页内偏移量(12位)
请针对题43的函数f1和题44中的机器指令代码,回答下列问题。
(1)函数f1的机器指令代码占多少页?
(2)取第1条指令(pushebp)时,若在进行地址变换的过程中需要访问内存中的页目录和页表,而会分别访问它们各自的第几个表项(编号从0开始)?
(3)M的I/O采用中断控制方式。
若进程P在调用f1之前通过scanf()获取n的值,则在执行scanf()的过程中,进程P的状态会如何变化?
CPU是否会进入内核态?
46.某进程中有3个并发执行的线程thread1、thread2和thread3,其伪代码如下所示。
//复数的结构类型定义
typedefstruct
{
floata;
floatb;
}cnum;
cnumx,y,z;//全局变量
//计算两个复数之和
cnumadd(cnump,cnumq)
{
cnums;
s.a=p.a+q.a;
s.b=p.b+q.b;
returns;
}
thread1
{
cnumw;
w=add(x,y);
……
}
thread2
{
cnumw;
w=add(y,z);
……
}
thread3
{
cnumw;
w.a=1;
w.b=1;
z=add(z,w);
y=add(y,w);
……
}
请添加必要的信号量和P、V(或wait()、signal())操作,要求确保线程互斥访问临界资源,并且最大程序地并发执行。
47.甲乙双方均采用后退N帧协议(GBN)进行持续的双向数据传输,且双方始终采用捎带确认,帧长均为1000B。
Sx,y和Rx,y分别表示甲方和乙方发送的数据帧,其中:
x是发送序号;y是确认序号(表示希望接收对方的下一帧序号);数据帧的发送序号和确认序号字段均为3比特。
信道传输速率为100Mbps,RTT=0.96ms。
下图给出了甲方发送数据帧和接收数据帧的两种场景,其中t0为初始时刻,此时甲方的发送和确认序号均为0,t1时刻甲方有足够多的数据待发送。
请回答下列问题。
(1)对于图(a),t0时刻期间,甲方可以断定乙方已正确接收的数据帧数是多少?
正确接收的是哪几个帧(请用Sx,y形式给出)?
(2)对于图(a),从t1时刻起,甲方在不出现超时且未收到乙方新的数据帧之前,最多还可以发送多少个数据帧?
其中第一个帧和最后一个帧分别是哪个(请用Sx,y形式给出)?
(3)对于图(b),从t1时刻起,甲方在不出现新的超时且未收到乙方新的数据帧之前,需要重发多少个数据帧?
重发的第一个帧是哪个(请用Sx,y形式给出)?
(4)甲方可以达到的最大信道利用率是多少?