k = 0;
while (k < n 且 A[k] < x) k = k + 3;
if (k < n 且 A[k] == x) 查找成功;
else if (k - 1 < n 且 A[k - 1] == x) 查找成功;
else if (k - 2 < n 且 A[k - 2] == x) 查找成功;
else 查找失败;
本算法与折半查找算法相比,有可能具有更少比较次数的情形是()
查看答案与解析
正确答案:B
此题为送分题。该程序采用跳跃式的顺利查找法查找升序数组中的 X, 显然是 x 越靠前,比较次数才会越少。
选择题
第 10 题
B+ 树不同于 B 树的特点之一是()
查看答案与解析
正确答案:A
由于 B+ 树 的所有叶结点中包含了全部的关键字信息,且叶结点本身依关键字从小到大顺序
链接,可以进行顺序查找,而 B 树不支持顺序查找(只支持多路查找)。
中断 是指来自 CPU 执行指令以外事件的发生,如设备发出的 I/O 结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。异常 也称内中断、例外或陷入(Trap),指源自 CPU 执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。A 错误。
选择题
第 23 题
下列关于批处理系统的叙述中,正确的是( )
Ⅰ.批处理系统允许多个用户与计算机直接交互
Ⅱ.批处理系统分为单道批处理系统和多道批处理系统
Ⅲ.中断技术使得多道批处理系统和 I/O 设备可与 CPU 并行工作
查看答案与解析
正确答案:A
本题考察操作系统 发展历程。批处理系统中,作业执行时用户无法干预其运行,只能通过事先配置作业控制来间接干预,缺少交互能力,也因此才发展出分时系统,I 错误。批处理系统按发展历程又分为单道批处理系统、多道批处理系统,II 正确。多道程序设计技术允许同时把多个程序放入内存,并允许它们交替在 CPU 中运行,它们共享系统中的各种硬、软件资源,当 一道程序因 1/0 请求而暂停运行时,CPU 便立即转去运行另 一道程序,即多道批处理系统的 1/0 设备可与 CPU 并行工作,这都是借助于中断技术实现的,III 正确。
P1 中对 a 进行赋值,并不影响最终的结果,故 a = l 与 a = 2 不需要互斥执行;a = x 与 b = x 执行先后不影响 a 与 b 的结果,无须互斥执行;x+=1 与 x+=2 执行先后会影响 x 的结果,需要互斥执行;P1 中的 x 和 P2 中的 x 是不同范围中的 X,互不影响,不需要互斥执行。
管程 是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。管程不仅能实现进程间的互斥,而且能实现进程间的同步,故 A 错误、B 正确。管程具有特性:①局部于管程的数据只能被局部于管程内的过程所访问;②一个进程只有通过调用管程内的过程才能进入管程访问共享数据;③每次仅允许一个进程在管程内执行某个内部过程,故 C 和 D 正确。
假设所有域名服务器均采用迭代查询方式进行域名解析。当 H4 访问规范域名为 www.abc.xyz.com 的网站时,域名服务器 201.1.1.1 在完成该域名解析过程中,可能发出 DNS 查询的最少和最多次数分别是( )。
查看答案与解析
正确答案:C
最少情况下:当本机 DNS 缓存 中存有该域名的 DNS 信息时,则不 需要查询任何域名服务器,这样最少发出 0 次 DNS 查询。最多情况下:因为均采用迭代查询的方式,在最坏的情况下,需要依次迭代地向本地域名服务器、根域名服务器 (.com)、顶级域名服务器 (xyz.com)、权限域名服务器 (abc.xyz.com) 发出 DNS 查询 请求,因此 最多发出 4 次 DNS 查询。
选择题答案速对
1
D
2
D
3
C
4
B
5
C
6
D
7
B
8
B
9
B
10
A
11
D
12
C
13
D
14
A
15
C
16
C
17
C
18
B
19
B
20
A
21
A
22
A
23
A
24
B
25
C
26
A
27
B
28
D
29
A
30
C
31
D
32
A
33
C
34
C
35
D
36
B
37
B
38
D
39
C
40
C
选择题
数据结构
1
已知表头元素为 c 的单链表在内存中的存储状态如下表所示。现将 f 存放于 1014H 处并插入单链表,若 f 在逻辑上位于 a 和 e 之间,则 a,e,f 的 “链接地址” 依次是( )。
查看答案与解析
正确答案:D
正确答案:D
根据存储状态,单链表的结构如下图所示。
其中“链接地址”是指结点 next 所指的内存地址。当结点 f 插入后,a 指向 f, f 指向 e, e 指向 b。显然 a、e 和 f 的“链接地址”分别是 f、b 和 e 的内存地址,即 1014H、1004H 和 1010H。
收藏
2
已知一个带有表头结点的双向循环链表 L,结点结构为 prev|data|next,prev 和 next 分别是指向其直接前驱和直接后继结点的指针。现要删除指针 p 所指的结点,正确的语句序列是( )。
k = 0;
while (k < n 且 A[k] < x) k = k + 3;
if (k < n 且 A[k] == x) 查找成功;
else if (k - 1 < n 且 A[k - 1] == x) 查找成功;
else if (k - 2 < n 且 A[k - 2] == x) 查找成功;
else 查找失败;
本算法与折半查找算法相比,有可能具有更少比较次数的情形是()
查看答案与解析
正确答案:B
正确答案:B 此题为送分题。该程序采用跳跃式的顺利查找法查找升序数组中的 X, 显然是 x 越靠前,比较次数才会越少。
收藏
10
B+ 树不同于 B 树的特点之一是()
查看答案与解析
正确答案:A
正确答案:A 由于 B+ 树 的所有叶结点中包含了全部的关键字信息,且叶结点本身依关键字从小到大顺序
链接,可以进行顺序查找,而 B 树不支持顺序查找(只支持多路查找)。
正确答案:C P1 中对 a 进行赋值,并不影响最终的结果,故 a = l 与 a = 2 不需要互斥执行;a = x 与 b = x 执行先后不影响 a 与 b 的结果,无须互斥执行;x+=1 与 x+=2 执行先后会影响 x 的结果,需要互斥执行;P1 中的 x 和 P2 中的 x 是不同范围中的 X,互不影响,不需要互斥执行。
正确答案:A 管程 是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。管程不仅能实现进程间的互斥,而且能实现进程间的同步,故 A 错误、B 正确。管程具有特性:①局部于管程的数据只能被局部于管程内的过程所访问;②一个进程只有通过调用管程内的过程才能进入管程访问共享数据;③每次仅允许一个进程在管程内执行某个内部过程,故 C 和 D 正确。
假设所有域名服务器均采用迭代查询方式进行域名解析。当 H4 访问规范域名为 www.abc.xyz.com 的网站时,域名服务器 201.1.1.1 在完成该域名解析过程中,可能发出 DNS 查询的最少和最多次数分别是( )。
查看答案与解析
正确答案:C
正确答案:C 最少情况下:当本机 DNS 缓存 中存有该域名的 DNS 信息时,则不 需要查询任何域名服务器,这样最少发出 0 次 DNS 查询。最多情况下:因为均采用迭代查询的方式,在最坏的情况下,需要依次迭代地向本地域名服务器、根域名服务器 (.com)、顶级域名服务器 (xyz.com)、权限域名服务器 (abc.xyz.com) 发出 DNS 查询 请求,因此 最多发出 4 次 DNS 查询。
4)通信结束后,H3 向 S 发送连接释放报文段。S 收到 H3 的连接释放报文段后,马上发出确认报文段。此时 S 已经没有数据需要传输,于是它也马上发出连接释放报文段。H3 在收到 S 的连接释放报文段后,发出确认报文段。S 在收到这份确认后就释放 TCP 连接。因此从 t 时刻起,S 释放该连接的最短时间是:H3 的连接释放报文段传送到 S 的时间+S 的连接释放报文段传送到 H3 的时间+H3 的确认报文段传送到 S 的时间 = 1.5×200ms = 300ms。(1 分)
数据结构
42
如果一棵非空
k
(
k≥2
) 叉树
T
中每个非叶结点都有
k
个孩子,则称
T
为正则
k
叉树。请回答下列问题并给出推导过程。
(1) 若
T
有
m
个非叶结点,则
T
中的叶结点有多少个?
(2) 若
T
的高度为
h
(单结点的树
h=1
),则
T
的结点数最多为多少个?最少为多少个?
查看答案与解析
1)根据定义,正则
k
叉树中仅含有两类结点;叶结点(个数记为
n0
)和度为
k
的分支结点(个数记为
n1
)。树
T
中的结点总数
n=n0+nk=n0+m
。树中所含的边数
e=n−1
,这些边均为
m
个度为
k
的结点发出的,即
e=mk
。整理得
n0+m=mk+1
,故
n0=(k−1)m+1
。
2)高度为
h
的正则
k
叉树
T
中,含最多结点的树形为:除第
h
层外,第
1
层到第
h−1
层的结点都是度为
k
的分支结点;而第
h
层均为叶结点,即树是“满”树。此时第
j
(
1≤j≤h
)层结点数为
kj−1
,结点总数
M1
为
M1=i=0∑hkj−1=k−1kh−1
含最少结点的正则
K
叉树的树形为:第
1
层只有根结点,第
2
层到第
h−1
层仅含
1
个分支结点和
k−1
个叶结点,第
h
层有
K
个叶结点。即除根外第
2
层到第
h
层中每层的结点数均为
k
,故
T
中所含结点总数
M2
为
intpartition(inta[],intlow,inthigh){intl=low;intr=high;intpivot=a[l];while(l<r){while(l<r&&a[r]>=pivot){r--;}a[l]=a[r];while(l<r&&a[l]<=pivot){l++;}a[r]=a[l];}a[l]=pivot;returnl;}// 按照第 k 个元素进行分区
voidquickSelect(inta[],intlow,inthigh,intk){if(low<high){intpivotIndex=partition(a,low,high);if(pivotIndex==k){return}elseif(pivotIndex<k){quickSelect(a,pivotIndex+1,high,k);}else{quickSelect(a,low,pivotIndex-1,k);}}}// 空间复杂度:O(1)
// 时间复杂度:O(n)
voidsolve(inta[],intn){quickSelect(a,0,n-1,n/2);intS1=0;intS2=0;for(inti=0;i<n/2;i++){S1+=a[i];}for(inti=n/2;i<n;i++){S2+=a[i];}returnS2-S1;}
3)本参考答案给出的算法平均时间复杂度是
O(n)
, 空间复杂度是
O(1)
。
组成原理
44
假定 CPU 主频为 50MHz,CPI 为 4。设备 D 采用异步串行通信方式向主机传送 7 位 ASCII 字符,通信规程中有 1 位奇校验位和 1 位停止位,从 D 接收启动命令到字符送入 I/O 端口需要 0.5ms。请回答下列问题,要求说明理由。
(1) 每传送一个字符,在异步串行通信线上共需传输多少位?在设备 D 持续工作过程中,每秒钟最多可向 I/O 端口送入多少个字符?
(2) 设备 D 采用中断方式进行输入/输出,示意图如下∶
请
求
响
应
启
动
CPU
外设 D
工作
工作
完
成
完
成
启
动
启
动
工作
完
成
返
回
请
求
响
应
返
回
请
求
响
应
I/O 端口每收到一个字符申请一次中断,中断响应需 10 个时钟周期,中断服务程序共有 20 条指令,其中第 15 条指令启动 D 工作。若 CPU 需从 D 读取 1000 个字符,则完成这一任务所需时间大约是多少个时钟周期?CPU 用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段 CPU 进行了哪些操作?