2020年(408)计算机学科专业基础综合试题

科目组合

计算机: 数据结构 、计算机组成原理 、操作系统 、计算机网络

01: 41: 40
答题卡
得分 118/150
答对题目数 34/47
评价

答题情况分析报告

正确: 34
错误: 13
未答: 0
总分: 118/150
正确率 72.3%
第1题 数据结构 单选题 题目链接

将一个 10*10 对称矩阵 M 的上三角部分的元素 mij(1≤i≤j≤10),按列优先存入 C 语言的一维数组 N 中, 元素 m7,2在 N 中的下标是( )
A、15
B、16
C、22
D、23 

正确答案:C 你的答案: 正确 正确率:55%
点击此处查看本题答案

第2题 数据结构 单选题 题目链接

对空栈S进行Push和Pop操作入栈序列 a,b,c,d,e 经过 Push,Push,Pop,Push,Pop,Push,Push,Pop 操作后得到的出栈序列是:(  )

A、b,a,c    B、b,a,e    C、b,c,a    D、b,c,e
正确答案:D 你的答案: 正确 正确率:98%
点击此处查看本题答案

第3题 数据结构 单选题 题目链接

对与任意一棵高度为 5 且有 10 个节点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元数量至少是( )

A、31    B、16    C、15    D、10
正确答案:A 你的答案: 正确 正确率:64%
点击此处查看本题答案

第4题 数据结构 单选题 题目链接

已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a,b,c,d,e,f,后根遍历序列是 b,a,d,f,e,c 则 T 的后遍历序列是( )

A、b,a,d,f,e,c    B、b,d,f,e,c,a

C、b,f,e,d,c,a    D、f,e,d,c,b,a
 

正确答案:C 你的答案: D 正确率:78%
点击此处查看本题答案

第5题 数据结构 单选题 题目链接

下列给定的关键字输入序列中,不能生成如下二叉排序树的是:( )

A、4,5,2,1,3
B、4,5,1,2,3
C、4,2,5,3,1
D、4,2,1,3,5
正确答案:B 你的答案: 正确 正确率:89%
点击此处查看本题答案

第6题 数据结构 单选题 题目链接

修改递归方式实现的图的深度优先搜索(DFS)算法,将输出(访问)定点信息的语句移到退出递归前(即执行输出语句后立刻退出递归)。采用修改后的算法遍历有向无环图 G,若输出结果中包含 G 中的全部顶点, 则输出的顶点序列是 G 的:( )
A、拓扑有序序列
B、逆拓扑有序序列
C、广度优先搜索序列
D、深度优先搜索序列

正确答案:B 你的答案: 正确 正确率:78%
点击此处查看本题答案

第7题 数据结构 单选题 题目链接

已知无向图 G 如下所示,使用克鲁斯卡尔(Kruskal)算法求图 G 的最小生成树,加入到最小生成树中的边依次是( )

$
\begin{align*}
A&:\ \{(b,f),\ (b,d),\ (a,e),\ (c,e),\ (b,e)\} \\
B&:\ \{(b,f),\ (b,d),\ (b,e),\ (a,e),\ (e,c)\} \\
C&:\ \{(a,e),\ (b,e),\ (c,e),\ (b,d),\ (b,f)\} \\
D&:\ \{(a,e),\ (c,e),\ (b,e),\ (b,f),\ (b,d)\}
\end{align*}
$
正确答案:A 你的答案: 正确 正确率:93%
点击此处查看本题答案

第8题 数据结构 单选题 题目链接

若使 AOE 网估算工程进度则下列叙述中正确的是:( )
A、关键路径是从原点到汇点边数最多的一条路径
B、关键路径是从原点到汇点路径长度最长的路径
C、增加任一关键活动的时间不会延长工程的工期
D、缩短任一关键活动的时间将会缩短工程的工期

正确答案:B 你的答案: 正确 正确率:89%
点击此处查看本题答案

第9题 数据结构 单选题 题目链接

下列关于大根堆(至少含 2 个元素)的叙述中正确的是( )

I.可以将堆看成一颗完全二叉树; II、可采用顺序存储方式保存堆;

III、可以将堆看成一棵二叉排序树; IV、堆中的次大值一定在根的下一层。

A、I II III    B、II III IV    C、I II IV    D、I II III IV

正确答案:C 你的答案: 正确 正确率:84%
点击此处查看本题答案

第10题 数据结构 单选题 题目链接

依次将关键字 5,6,9,13,8,2,12,15 插入初始为空的 4 阶 B 树后,根节点中包含的关键字是( )

A、8    B、6,9    C、8,13    D、9,12

正确答案:B 你的答案: 正确 正确率:76%
点击此处查看本题答案

第11题 数据结构 单选题 题目链接

对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率更高,其原因是:( )

I、直接插入排序过程中元素之间的比较次数更少

II、直接插入排序过程中所需要的辅助空间更少

III、直接插入排序过程中元素的移动次数更少

A、I    B、III    C、I,II    D、I,II,III

正确答案:A 你的答案: 正确 正确率:66%
点击此处查看本题答案

第12题 计算机组成原理 单选题 题目链接

下列给出的部件中,其位数(宽度)一定与机器字长相同的是( )。

I. ALU    II. 指令寄存器

III. 通用寄存器    IV. 浮点寄存器

A. 仅 I、II    B. 仅 I、III    C. 仅 II、III    D. 仅 II、III、IV

正确答案:B 你的答案: 正确 正确率:67%
点击此处查看本题答案

第13题 计算机组成原理 单选题 题目链接

已知带符号整数用补码表示,float 型数据用 IEEE 754 标准表示,假定变量 x 的类型只能是 int 或 float。 当 x 的机器数为 C800 0000H 时,x 的值可能是:( )

A、-7×2^27;
B、-2^16;
C、2^17
D、25×2^27 ;
 
正确答案:A 你的答案: 正确 正确率:83%
点击此处查看本题答案

第14题 计算机组成原理 单选题 题目链接

在按字节编址,采用小端方式的32位计算机中,按边界对齐方式为以下C语言结构型变量a分配存储空间。

struct record{
    short x1;
    int x2;
}a;

若a的首地址为2020FE00H,a的成员变量x2的机器数为12340000H,则其中34H所在存储单元的地址是:

A、2020FE03H;   B、2020FE04H;

C、2020FE05H;   D、2020FE06H;

正确答案:D 你的答案: 正确 正确率:73%
点击此处查看本题答案

第15题 计算机组成原理 单选题 题目链接

下列关于TLB和Cache的叙述中,错误的是( )。

A. 命中率都与程序局部性有关

B. 缺失后都需要去访问主存

C. 缺失处理都可以由硬件实现

D. 都由DRAM存储器组成

正确答案:D 你的答案: 正确 正确率:76%
点击此处查看本题答案

第16题 计算机组成原理 单选题 题目链接

某计算机采用16位定长指令字格式,操作码位数和寻址方式位数固定,指令系统有48条指令,支持直接、间接、立即、相对4种寻址方式。单地址指令中,直接寻址方式的可寻址范围是( )。

A. 0~255    B. 0~1023    C. -128~127    D. -512~511

正确答案:A 你的答案: C 正确率:72%
点击此处查看本题答案

第17题 计算机组成原理 单选题 题目链接

下列给出的处理器类型中理想情况下CPI为1的是:

I、单周期CPU; II、多周期CPU;

III、基本流水线CPU; IV超标量流水线CPU

A、I,II; B、I,III;

C、II,IV;   D、III,IV;

正确答案:B 你的答案: 正确 正确率:82%
点击此处查看本题答案

第18题 计算机组成原理 单选题 题目链接

下列关于“自陷”(Trap,也称陷阱)的叙述中错误的是:

A、自陷是通过陷阱指令预先设定的一类外部中断事件;

B、自陷可用于实现程序调试时的断点设置和单步跟踪;

C、自陷发生后CPU将转去执行操作系统内核相应程序;

D、自陷处理完成后返回到陷阱指令的下一条指令执行。

正确答案:A 你的答案: 正确 正确率:77%
点击此处查看本题答案

第19题 计算机组成原理 单选题 题目链接

QPI总线是一种点对点全工双周同步串行总线,总线上的设备可同时接收和发送信息,每个方向可同时传输20位信息(16位数据+4位校验位),每个QPI数据包有80位信息,分2个时钟周期传送,每个时钟周期传递2次,因此QPI总线带宽为每秒传送次数*2B*2。若QPI时钟频率为2.4GHz,则总线带宽为:

A、4.8      B、9.6      C、19.2      D、38.4 (单位GB/s)

正确答案:C 你的答案: 正确 正确率:68%
点击此处查看本题答案

第20题 计算机组成原理 单选题 题目链接

下列事件中属于外部中断事件的是:

I、访存时缺页;

II、定时器延时;

III、网络数据包到达选项暂无

A、I II       B、I III      C、II III        D、I II III

正确答案:C 你的答案: 正确 正确率:79%
点击此处查看本题答案

第21题 计算机组成原理 单选题 题目链接

外部中断包括不可屏蔽中断(NMI)和可屏蔽中断,下列关于外部中断的叙述中错误的是:

A、CPU处于关中断状态时也能响应NMI请求;

B、一旦可屏蔽中断请求信号有效,CPU将立即响应;

C、不可屏蔽中断的优先级比可屏蔽中断的优先级高;

D、可通过中断屏蔽字改变可屏蔽中断的处理优先级。

正确答案:B 你的答案: 正确 正确率:85%
点击此处查看本题答案

第22题 计算机组成原理 单选题 题目链接

若设备采用周期挪用DMA方式进行输入输出,每次DMA传送的数据块大小为512字节,相应的I/O接口中有一个32位数数据缓冲寄存器,对于数据输入过程,下列叙述中错误的是:

A、每准备好32位数据,DMA控制器就发出一次总线请求;

B、相对于CPU,DMA控制器的总线使用权的优先级更高;

C、在整个数据块的传送过过程中,CPU不可以访问主存储器;

D、数据块传送结束时,会产生“DMA传送结束”的中断请求。

正确答案:C 你的答案: 正确 正确率:66%
点击此处查看本题答案

第23题 操作系统 单选题 题目链接

若多个进程共享同一个文件F,则下列叙述中,正确的是( )。

A. 各进程只能用“读”方式打开文件F

B. 在系统打开文件表中仅有一个表项包含F的属性

C. 各进程的用户打开文件表中关于F的表项内容相同

D. 进程关闭F时,系统删除F在系统打开文件表中的表项

正确答案:B 你的答案: C 正确率:70%
点击此处查看本题答案

第24题 操作系统 单选题 题目链接

下列选项中,支持文件长度可变、随机访问的磁盘存储空间分配方式是()。

A、索引分配    B、链接分配

C、连续分配    D、动态分区分配

正确答案:A 你的答案: 正确 正确率:76%
点击此处查看本题答案

第25题 操作系统 单选题 题目链接

下列与中断相关的操作中,由操作系统完成的是()。

Ⅰ、保存被中断程序的中断点
Ⅱ、提供中断服务
Ⅲ、初始化中断向量表
Ⅳ、保存中断屏蔽字

A、仅Ⅰ、Ⅱ

B、仅Ⅰ、Ⅱ、Ⅳ

C、仅Ⅲ、Ⅳ

D、仅Ⅱ、Ⅲ、Ⅳ

正确答案:D 你的答案: 正确 正确率:74%
点击此处查看本题答案

第26题 操作系统 单选题 题目链接

下列与进程调度有关的因素中,在设计多级反馈队列调度算法时需要考虑的是( )。

Ⅰ. 就绪队列的数量

Ⅱ. 就绪队列的优先级

Ⅲ. 各就绪队列的调度算法

Ⅳ. 进程在就绪队列间的迁移条件

A. 仅Ⅰ、Ⅱ

B. 仅Ⅲ、Ⅳ

C. 仅Ⅱ、Ⅲ、Ⅳ

D. Ⅰ、Ⅱ、Ⅲ和Ⅳ

正确答案:D 你的答案: 正确 正确率:94%
点击此处查看本题答案

第27题 操作系统 单选题 题目链接

某系统中有A、B两类资源各6个,t时刻资源分配及需求情况如下表所示。

$$
\begin{array}{|c|c|c|c|c|}
\hline
\text{进程} & \text{A已分配数量} & \text{B已分配数量} & \text{A需求总量} & \text{B需求总量} \\
\hline
\text{P1} & 2 & 3 & 4 & 4 \\
\hline
\text{P2} & 2 & 1 & 3 & 1 \\
\hline
\text{P3} & 1 & 2 & 3 & 4 \\
\hline
\end{array}
$$

t时刻安全性检测结果是( )。

A. 存在安全序列P1、P2、P3

B. 存在安全序列P2、P1、P3

C. 存在安全序列P2、P3、P1

D. 不存在安全序列

正确答案:B 你的答案: 正确 正确率:82%
点击此处查看本题答案

第28题 操作系统 单选题 题目链接

下列因素中,影响请求分页系统有效(平均)访存时间的是( )。

Ⅰ. 缺页率

Ⅱ. 磁盘读写时间

Ⅲ. 内存访问时间

Ⅳ. 执行缺页处理程序的CPU时间

A. 仅Ⅱ、Ⅲ

B. 仅Ⅰ、Ⅳ

C. 仅Ⅰ、Ⅲ、Ⅳ

D. Ⅰ、Ⅱ、Ⅲ和Ⅳ

正确答案:D 你的答案: 正确 正确率:83%
点击此处查看本题答案

第29题 操作系统 单选题 题目链接

下列关于父进程与子进程的叙述中,错误的是( )。

A. 父进程与子进程可以并发执行

B. 父进程与子进程共享虚拟地址空间

C. 父进程与子进程有不同的进程控制块

D. 父进程与子进程不能同时使用同一临界资源

正确答案:B 你的答案: 正确 正确率:69%
点击此处查看本题答案

第30题 操作系统 单选题 题目链接

对于具备设备独立性的系统,下列叙述中,错误的是( )。

A. 可以使用文件名访问物理设备

B. 用户程序使用逻辑设备名访问物理设备

C. 需要建立逻辑设备与物理设备之间的映射关系

D. 更换物理设备后必须修改访问该设备的应用程序

正确答案:D 你的答案: A 正确率:81%
点击此处查看本题答案

第31题 操作系统 单选题 题目链接

某文件系统的目录项由文件名和索引结点号构成。若每个目录项长度为64字节,其中4字节存放索引结点号,60字节存放文件名。文件名由小写英文字母构成,则该文件系统能创建的文件数量的上限为()。

A. \(2^{26}\)    B. \(2^{32}\)    C. \(2^{60}\)    D. \(2^{64}\)

正确答案:B 你的答案: 正确 正确率:76%
点击此处查看本题答案

第32题 操作系统 单选题 题目链接

下列准则中,实现临界区互斥机制必须遵循的是()。

Ⅰ、两个进程不能同时进入临界区
Ⅱ、允许进程访问空闲的临界资源
Ⅲ、进程等待进入临界区的时间是有限的
Ⅳ、不能进入临界区的执行态进程立即放弃CPU

A、仅Ⅰ、Ⅳ

B、仅Ⅱ、Ⅲ

C、仅Ⅰ、Ⅱ、Ⅲ

D、仅Ⅰ、Ⅲ、Ⅳ

正确答案:C 你的答案: 正确 正确率:85%
点击此处查看本题答案

第33题 计算机网络 单选题 题目链接

下图描述的协议要素是(  )

I. 语法    II. 语义    III. 时序

A. 仅I    B. 仅II    C. 仅III    D. I、II和III

正确答案:C 你的答案: 正确 正确率:86%
点击此处查看本题答案

第34题 计算机网络 单选题 题目链接

下列关于虚电路网络的叙述中错误的是:

A、可以确保数据分组传输顺序;

B、需要为每条虚电路预分配带宽;

C、建立虚电路时需要进行路由选择;

D、依据虚电路号(VCID)进行数据分组 转发。

正确答案:B 你的答案: 正确 正确率:66%
点击此处查看本题答案

第35题 计算机网络 单选题 题目链接

下图所示的网络冲突域和广播域的个数分别是:

A. 2,2    B. 2,4    C. 4,2    D. 4,4

正确答案:C 你的答案: 正确 正确率:91%
点击此处查看本题答案

第36题 计算机网络 单选题 题目链接

假设主机采用停-等协议向主机乙发送数据帧,数据帧长与确认帧长均为 1000B。数据传输速率是 10kbps, 单项传播延时是 200ms。则甲的最大信道利用率:

A、80%;     B、66.7%;     C、44.4%;     D、40%

正确答案:D 你的答案: A 正确率:64%
点击此处查看本题答案

第37题 计算机网络 单选题 题目链接

某 IEEE 802.11 无线局域网中主机 H 与 AP 之间发送或接收 CSMA/CA 帧的过程如下图所示,在 H 或 AP 发送帧前所等待的帧间间隔时间(IFS)中最长的是:

A. IFS1    B. IFS2    C. IFS3    D. IFS4

正确答案:A 你的答案: 正确 正确率:76%
点击此处查看本题答案

第38题 计算机网络 单选题 题目链接

若主机甲与主机乙已建立一条 TCP 连接,最大段长(MSS)为 1KB,往返时间(RTT)为 2ms,则在 不出现拥塞的前提下,拥塞窗口从 8kB 增长到 20KB 所需的最长时间是:

A、4ms;     B、8ms;     C、24ms;     D、48ms;

正确答案:C 你的答案: A 正确率:68%
点击此处查看本题答案

第39题 计算机网络 单选题 题目链接

若主机甲与主机乙建立 TCP 连接时发送的 SYN 段中的序号为 1000,在断开连接时,甲发送给乙的 FIN 段中的序号为 5001,则在无任何重传的情况下,甲向乙已经发送的应用层数据的字节数为:

A、4002;     B、4001;     C、4000;     D、3999;

正确答案:C 你的答案: 正确 正确率:79%
点击此处查看本题答案

第40题 计算机网络 单选题 题目链接

假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名服务器均只提供迭代查询服务;局域网内主机访问Internet上各服务器的往返时间 (RTT) 均为10ms,忽略其他各种时延。若主机H通过超链接 http://www.abc.com/index.html 请求浏览纯文本Web页index.html,则从点击超链接开始到浏览器接收到index.html页面为止,所需的最短时间与最长时间分别是( )。

A. 10 ms,40 ms    B. 10 ms,50 ms    C. 20 ms,40 ms    D. 20 ms,50 ms

正确答案:D 你的答案: 正确 正确率:49%
点击此处查看本题答案

第41题 数据结构 综合题 题目链接

(13分)定义三元组(a,b,c)(a,b,c 均为正数)的距离 D=|a-b|+|b-c|+|c-a|.给定 3 个非空整数集合 S1,S2,S3,按升序分别存储在 3 个数组中。请设计一个尽可能高效的算法,计算并输出所有可能的三元组(a,b,c)(a∈S1,b∈S2,c∈S3)中的最小距离。例如 S1={-1,0,9}, S2={-25,-10,10,11},S3={2,9,17,30,41}。则最小距离为 2,相应的三元组为(9,10,9)。

要求:

(1)给出算法的基本设计思想;(3分)

(2)根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释;(8分)

(3)说明你所设计算法的时间复杂度和空间复杂度。(2分)

你的答案:

1):定义三个下标分别表示s1,s2,s3当前遍历下标,然后定义sum=|a-b|+|b-c|+|c-a|,以及minnum=sum,mini=i,minj=j,mink=k;(a∈S1,b∈S2,c∈S3)初始值为INT_MAX;接着我们怎么将s1[i],s2[j],s3[k]中最小值的下标加一,比较当前sum与minnum的大小如果minnum<sum则进行更新mini,minj,mink否则继续上面操作,直到

i==s1.length,j=s2.length,k=s3.length;

2): 

// 全局变量(注意:在多线程或多次调用时可能有副作用,建议改为局部变量+返回结构体)
6int sum = INT_MAX;
7int minnum = INT_MAX;  // 初始最小值设为最大整数
8int mini = 0;
9int minj = 0;
10int mink = 0;
11
12/**
13 * 辅助函数:返回三个整数中的最小值
14 */
15int min3(int a, int b, int c) {
16    int min_val = a;
17    if (b < min_val) min_val = b;
18    if (c < min_val) min_val = c;
19    return min_val;
20}
21
22/**
23 * 函数功能:
24 * 在三个**已升序排序**的整型数组 s1, s2, s3 中,
25 * 寻找下标 (i, j, k),使得三元组 (s1[i], s2[j], s3[k]) 的
26 * 两两绝对差之和最小:
27 *     |s1[i] - s2[j]| + |s2[j] - s3[k]| + |s3[k] - s1[i]|
28 *
29 * 参数:
30 *   s1, s2, s3 —— 三个已排序的数组
31 *   len1, len2, len3 —— 各自的长度
32 */
33void minlenth(int s1[], int s2[], int s3[], int len1, int len2, int len3) {
34    int i = 0, j = 0, k = 0;  // 三个指针,初始都指向各自数组开头
35
36    // 循环条件:只要有一个指针越界就停止(避免访问非法内存)
37    while (i < len1 && j < len2 && k < len3) {
38        // 计算当前三元组的距离总和
39        sum = abs(s1[i] - s2[j]) + abs(s2[j] - s3[k]) + abs(s3[k] - s1[i]);
40
41        // 如果当前总和更小,更新全局最小值和对应下标
42        if (sum < minnum) {
43            minnum = sum;
44            mini = i;
45            minj = j;
46            mink = k;
47        }
48
49        // 找出当前三个元素中的最小值
50        int current_min = min3(s1[i], s2[j], s3[k]);
51
52        // 贪心策略:将指向最小值的指针前移,以尝试缩小差距
53        if (s1[i] == current_min) {
54            i++;
55        } else if (s2[j] == current_min) {
56            j++;
57        } else {
58            k++;
59        }
60    }
61
62    // 输出结果(注意:应输出 minnum,不是 sum)
63    printf("最小总距离: %d\n", minnum);
64    printf("对应的下标: (%d, %d, %d)\n", mini, minj, mink);
65    printf("对应的元素: (%d, %d, %d)\n", s1[mini], s2[minj], s3[mink]);
66}
67      

  3):时间复杂度是o(n),空间复杂度是o(1);


评分及理由

(1)得分及理由(满分3分)

学生给出了算法的基本设计思想:使用三个指针分别遍历三个数组,每次移动指向最小元素的指针,并计算当前三元组的距离,更新最小值。这一思路与标准答案中的“同向多指针(滑动窗口变体)”方法一致,是正确的。但描述中“直到 i==s1.length,j=s2.length,k=s3.length”存在歧义(应为三个指针中任意一个到达末尾即终止),且未明确说明循环终止条件。由于核心思想正确,但表述不够严谨,扣1分。
得分:2分

(2)得分及理由(满分8分)

学生用C语言实现了算法,关键部分有注释,整体结构清晰。但存在以下逻辑错误和问题:
1. 代码中使用了全局变量(sum、minnum等),这会导致函数不可重入,且题目要求输出最小距离,而函数直接打印结果,不符合通常的函数设计规范(应返回最小距离值)。
2. 在指针移动策略中,使用`min3`函数找出当前三个元素的最小值,然后移动指向该最小值的指针。这一策略在多数情况下有效,但存在缺陷:当有多个指针指向相同的最小值时,只移动其中一个指针(代码中按顺序判断,先移动s1的指针),可能导致错过某些三元组。例如,若s1[i]和s2[j]相等且均为最小值,代码会移动i而固定j,这可能导致最优解被跳过。标准答案通过比较三个值的大小关系来移动指针,避免了这一问题。
3. 循环结束后,输出结果时直接使用全局变量minnum和下标,但若输入数组长度为零(题目已说明非空,可忽略),或从未更新minnum(初始为INT_MAX),则输出可能不正确。但根据题目数据,此问题不影响结果。
4. 函数名为`minlenth`,但未返回最小距离值,不符合算法题通常要求返回结果的惯例。
基于以上逻辑错误,尤其是第2点指针移动策略的缺陷,扣3分。
得分:5分

(3)得分及理由(满分2分)

学生正确说明了时间复杂度为O(n)(即O(n1+n2+n3)),空间复杂度为O(1)。但未具体说明n的含义。由于分析正确,不扣分。
得分:2分

题目总分:2+5+2=9分

点击此处查看本题答案

第42题 数据结构 综合题 题目链接

(10分)若任一个字符的编码都不是其它字符编码的前缀,则称这种编码具有前缀特性。现有某字符集(字符个数≥2)的不等长编码,每个字符的编码均为二进制的0、1序列,最长为L位,且具有前缀特性。请回答下列问题:

⑴ 哪种数据结构适宜保存上述具有前缀特性的不等长编码?(4分)

⑵ 基于你所设计的数据结构,简述从0/1串到字符串的译码过程。(3分)

⑶ 简述判定某字符集的不等长编码是否具有前缀特性的过程。(3分)

你的答案:

1):哈夫曼树

 

2):从树根到叶子结点从上到下,遇到分支结点向左走标注0,向右走标注1,直到到达了叶子结点为止;

 

3):根据遍历某个字符编码从根结点开始如果遇到0就向左走或者构造左孩子结点;遇到1就向右走后者构造右孩子结点,

          如果遍历完成后仍然是在非终端结点,那么就是前缀特性,或者没有遍历完成到达了叶子结点,也是前缀特性;

          否则就不具备前缀特性;


评分及理由

(1)得分及理由(满分4分)

学生回答“哈夫曼树”,这本质上是正确的,因为哈夫曼树是前缀编码的一种典型二叉树实现。数据结构应更准确地表述为“二叉树”或“哈夫曼树/前缀编码树”。考虑到“哈夫曼树”直接对应了前缀编码的常用数据结构,且题目并未要求更具体的名称,故给满分。
得分:4分

(2)得分及理由(满分3分)

学生描述了从根到叶子的路径遍历过程,并说明了根据0/1选择左/右分支,直到叶子结点。这基本描述了译码的单字符解码过程。但译码过程是针对整个0/1串,需要反复从根开始,直到处理完所有输入。学生答案只描述了解一个字符的过程,未明确“重复此过程”或“处理整个串”,表述不完整。
扣1分。
得分:2分

(3)得分及理由(满分3分)

学生描述了根据编码构造树的过程,但判断逻辑表述存在严重错误。学生说“如果遍历完成后仍然是在非终端结点,那么就是前缀特性,或者没有遍历完成到达了叶子结点,也是前缀特性”,这与前缀特性的定义相悖。前缀特性要求任何字符的编码不能是另一个字符编码的前缀,因此编码必须对应到叶子结点,且构造过程中不能重复使用或提前到达已有字符的结点。学生的判断条件恰好说反了(到达叶子结点说明可能是其他编码的前缀,不具备前缀特性)。逻辑错误,扣3分。
得分:0分

题目总分:4+2+0=6分

点击此处查看本题答案

第43题 计算机组成原理 综合题 题目链接

(13分)有实现x×y的两个C语言函数如下:

unsigned umul (unsigned x, unsigned y) { return x*y; }
int imul (int x, int y) { return x * y; }

假定某计算机M中ALU只能进行加减运算和逻辑运算。请回答下列问题。

(1) 若M的指令系统中没有乘法指令,但有加法、减法和移位等指令,则在M上也能实现上述两个函数中的乘法运算,为什么?(2分)

(2) 若M的指令系统中有乘法指令,则基于ALU、移位器、寄存器以及相应控制逻辑实现乘法指令时,控制逻辑的作用是什么?(2分)

(3) 针对以下三种情况:①没有乘法指令;②有使用ALU和移位器实现的乘法指令;③有使用阵列乘法器实现的乘法指令,函数umul()在哪种情况下执行时间最长?哪种情况下执行的时间最短?说明理由。(4分)

(4) n位整数乘法指令可保存2n位乘积,当仅取低n位作为乘积时,其结果可能会发生溢出。当n=32、x= 2^31−1 、y=2时,带符号整数乘法指令和无符号整数乘法指令得到的x×y的2n位乘积分别是什么(用十六进制表示)?此时函数umul()和imul()的返回结果是否溢出?对于无符号整数乘法运算,当仅取乘积的低位作为乘法结果时,如何用2n位乘积进行溢出判断?(5分)

你的答案:

1):乘法指令可以用加法指令和移位指令替代完成;

2):控制逻辑的作用是控制循环次数以及控制移位;

3):没有乘法指令执行时间最长,使用阵列乘法器实现的乘法指令执行的时间最短;

4):两者的结果均是:00 00 00 00 FF FF FF FE,此时函数umul()没有溢出,imul()的返回结果溢出,我们可以根据前n项是否全为0来判断,如果不是则溢出否则不溢出;

    


评分及理由

(1)得分及理由(满分2分)

学生回答“乘法指令可以用加法指令和移位指令替代完成”,正确指出了乘法运算可以通过加法和移位操作实现,与标准答案核心思想一致。但答案较为简略,未提及“编译器转换”或“循环代码段”等更具体的实现方式。考虑到问题为2分,且核心观点正确,扣1分。得1分。

(2)得分及理由(满分2分)

学生回答“控制逻辑的作用是控制循环次数以及控制移位”,基本正确。标准答案还提到了“根据操作表控制加法和移位操作”,学生的答案“控制移位”可以理解为包含了移位的控制,但未明确提及对“加法”的控制。表述不够完整,扣1分。得1分。

(3)得分及理由(满分4分)

学生回答“没有乘法指令执行时间最长,使用阵列乘法器实现的乘法指令执行的时间最短”,结论完全正确。但缺少对三种情况执行时间差异的具体理由分析,例如未说明①是通过软件模拟、②是通过多周期硬件指令、③是单周期硬件实现等关键区别。因此,结论正确但解释不足,扣2分。得2分。

(4)得分及理由(满分5分)

第一问:学生回答“两者的结果均是:00 00 00 00 FF FF FF FE”。对于无符号乘法,该结果是正确的64位乘积。但对于有符号乘法(imul),标准答案指出其64位乘积的补码表示也是“00000000FFFFFFFEH”,学生答案“两者均是”在数值上正确,但未明确这是补码表示,表述不够严谨,此处不扣分。得2分(此问分值需根据整体分配估算,此处按部分正确给分)。
第二问:学生回答“umul()没有溢出,imul()的返回结果溢出”,判断完全正确。得1分。
第三问:学生回答“我们可以根据前n项是否全为0来判断,如果不是则溢出否则不溢出”,其中“前n项”表述不精确,应为“乘积的高n位”。但核心思想(高n位全0则不溢出,否则溢出)正确。扣1分。得1分。
本小题总计得4分。

题目总分:1+1+2+4=8分

点击此处查看本题答案

第44题 计算机组成原理 综合题 题目链接

(10分)假定主存地址为32位,按字节编址,指令Cache和数据Cache与主存之间均采用8路组相联映射方式,直写(WriteThrough)写策略和LRU替换算法,主存块大小为64B,数据区容量各为32KB。开始时Cache均为空。请回答下列问题。

(1) Cache每一行中标记(Tag)、LRU位各占几位?是否有修改位?(3分)

(2) 有如下C语言程序段:

for(k = 0; k < 1024; k++)
    s[k] = 2 * s[k];

若数组s及其变量k均为int型,int型数据占4B,变量k分配在寄存器中,数组s在主存中的起始地址为008000C0H,则该程序段执行过程中,访问数组s的数据Cache缺失次数为多少?(3分)

(3) 若CPU最先开始的访问操作是读取主存单元00010003H中的指令,简要说明从Cache中访问该指令的过程,包括Cache缺失处理过程。(4分)

你的答案:

1):标记(Tag):20,LRU位:3位,不需要修改位;

2):64次

3):根据6~11位,来判断该地址是位于cache第0组,访问cache第0组发现cache缺失,于是转向主存查找,读地址的高26位来确定块号,将该块调入cache中并将有效位设置为1,最后将根据后六位确定的快内偏移量将所需内容调入cpu;


评分及理由

(1)得分及理由(满分3分)

学生答案:标记(Tag):20, LRU位:3位, 不需要修改位。

标准答案:标记占20位,LRU位占3位,采用直写方式故没有修改位。

评分:学生答案与标准答案完全一致,且表述清晰。得3分。

(2)得分及理由(满分3分)

学生答案:64次。

标准答案:64次。

评分:答案正确。虽然学生未给出计算过程,但最终结果与标准答案一致。在考试中,若题目仅要求给出最终缺失次数,且答案正确,应给满分。得3分。

(3)得分及理由(满分4分)

学生答案:根据6~11位,来判断该地址是位于cache第0组,访问cache第0组发现cache缺失,于是转向主存查找,读地址的高26位来确定块号,将该块调入cache中并将有效位设置为1,最后将根据后六位确定的快内偏移量将所需内容调入cpu。

标准答案:组号为地址中间6位(第6-11位),计算得0,映射到组0。Cache初始为空,访问缺失。访问主存获取数据送入CPU,同时更新Cache:将主存块存入组0某一行,填入高20位标记,设置有效位,修改LRU位。

评分分析:学生答案基本描述了过程,包括判断组号、发现缺失、访问主存、调入Cache、设置有效位、根据块内偏移取数据。但存在两处不准确或错误: 1. “读地址的高26位来确定块号”:此描述错误。主存地址高20位是标记(Tag),用于与Cache行中的标记比较以判断是否命中,并非“块号”。主存块地址由“标记+组号”构成(或理解为高26位是主存块地址,但标准描述中更强调“标记”字段的作用)。此表述不严谨,可能引起混淆。 2. 遗漏了更新“LRU位”这一关键步骤。 由于存在一处关键描述错误(高26位为块号)和一处遗漏(LRU位更新),需扣分。

扣分:本题满分4分。描述中存在实质性错误(主存地址高26位的作用描述不当)扣1分,遗漏LRU位更新扣1分。得2分。

题目总分:3+3+2=8分

点击此处查看本题答案

第45题 操作系统 综合题 题目链接

(7分)现有5个操作A、B、C、D和E,操作C必须在A和B完成后执行,操作E必须在C和D完成后执行,请使用信号量的wait()、signal()操作(P、V操作)描述上述操作之间的同步关系,并说明所用信号量及其初值。

你的答案:

Semaphore AC=0,BC=0,CE=0,DE=0;//确定C与A和B,E与C和D同步信号量机制;

 PA(){ 

           //执行操作A

          signal(AC);

   }

 PB(){ 

           //执行操作B

          signal(BC);

   }

 PC(){ 

           wait(AC);

           wait(BC);

           //执行操C

          signal(CE);

   }

 PD(){

         //执行操作D;

          signal(DE)

}

 PE(){

          wait(CE);

           wait(DE):

         //执行操作E

}

           


评分及理由

(1)得分及理由(满分7分)

学生答案与标准答案在核心逻辑上完全一致:

  1. 正确定义了四个信号量AC、BC、CE、DE,并正确地将初值设为0。
  2. 在进程A和B中,分别执行操作后signal(AC)和signal(BC),正确释放了C的等待条件。
  3. 在进程C中,通过wait(AC)和wait(BC)确保A和B都完成后才执行C,执行后signal(CE)通知E。
  4. 在进程D中,执行操作后signal(DE)通知E。
  5. 在进程E中,通过wait(CE)和wait(DE)确保C和D都完成后才执行E。

因此,该答案正确实现了题目要求的同步关系。虽然代码在格式和个别标点符号(如PD中的中文括号、PE中wait(DE)后的冒号)上存在笔误,但这些并不影响同步逻辑的正确性,属于非关键性书写错误,不扣分。

得分:7分。

题目总分:7分

点击此处查看本题答案

第46题 操作系统 综合题 题目链接

(8分)某32位系统采用基于二级页表的请求分页存储管理方式,按字节编址,页目录项和页表项长度均为4字节,虚拟地址结构如下所示。

某C程序中数组a[1024][1024]的起始虚拟地址为1080 0000H,数组元素占4字节,该程序运行时,其进程的页目录起始物理地址为0020 1000H,请回答下列问题。

(1) 数组元素a[1][2]的虚拟地址是什么?对应的页目录号和页号分别是什么?对应的页目录项的物理地址是什么?若该目录项中存放的页框号为00301H,则a[1][2]所在页对应的页表项的物理地址是什么?(4分)

(2) 数组a在虚拟地址空间中所占区域是否必须连续?在物理地址空间中所占区域是否必须连续?(2分)

(3) 已知数组a按行优先方式存放,若对数组a分别按行遍历和按列遍历,则哪一种遍历方式的局部性更好?(2分)

你的答案:

1):a[1][2]的虚拟地址是1080 0000H+4*(1024+2)=1080 0000H+1008H=10801008H 

   页目录号:00  0100  0010=042H,页号:  000 0000 000=000H 

   对应的页目录项的物理地址是  0020 1000H

页表项的物理地址是:00301008H

2):数组a在虚拟地址空间中所占区域是连续的,在物理地址空间中所占区域不一定连续;

3):对数组进行按行存储会更好;

    


评分及理由

(1)得分及理由(满分4分)

① 虚拟地址计算正确,得1分。
② 页目录号计算正确(042H),得0.5分;页号计算错误(应为001H,学生答000H),扣0.5分。
③ 页目录项物理地址计算错误(应为0020 1000H+4×042H=0020 1108H,学生直接给出页目录起始地址),扣1分。
④ 页表项物理地址计算错误(应为00301H<<12 + 4×001H = 00301004H,学生计算为00301008H),扣1分。
本小题共扣2.5分,得1.5分。

(2)得分及理由(满分2分)

① 虚拟地址空间必须连续,回答正确,得1分。
② 物理地址空间不必连续,回答正确,得1分。
本小题得2分。

(3)得分及理由(满分2分)

回答“按行存储会更好”,虽然表述不精确(应为“按行遍历”),但意思正确,得2分。

题目总分:1.5+2+2=5.5分

点击此处查看本题答案

第47题 计算机网络 综合题 题目链接

(9分)某校园网有两个局域网,通过路由器 R1、R2 和 R3 互联后接入 Internet, S1 和 S2 为 以太网交换机,局域网采用静态 IP 地址配置,路由器部分接口以及各主机的 IP 地址如图所示:

假设 NAT 转换表结构为:

请回答下列问题:

(1)为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置?(3分)

(2)若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送,则 H2 发送 P 的源 IP 地址和目的 IP 地址分别是?经过 R3 转发后,P 的源 IP 地 址和目的 IP 地址分别是?经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是?(6分)

你的答案:

1):需要进行R3NAT转换表

    203.10.2.6   80       192.168.1.2   80

    203.10.2.6   80         192.168.1.3   80

2):源 IP 地址:192.168.1.2,目的 IP 地址:203.10.2.2

经过 R3 转发后,P 的源 IP 地 址和目的 IP 地址分别是203.10.2.6,203.10.2.2

经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是203.10.2.6     192.168.1.2


评分及理由

(1)得分及理由(满分3分)

学生回答需要进行R3的NAT转换表配置,并给出了具体的转换条目。标准答案要求配置在路由器R2上,因为R2是连接内网(192.168.1.0/24)和外网(203.10.2.0/24)的边界路由器,NAT功能通常在边界路由器上启用。学生将NAT配置在R3上,R3是连接两个局域网(192.168.1.0/24和192.168.2.0/24)的内部路由器,这不符合典型的网络拓扑和NAT部署原则。虽然学生给出的转换表内容(IP和端口映射)本身是正确的,但配置位置错误,这是一个关键的逻辑错误。因此扣2分,得1分。

(2)得分及理由(满分6分)

学生回答的H2发送P时的源IP和目的IP完全正确,得2分。
学生回答的经过R3转发后的源IP和目的IP完全正确,得2分。
学生回答的经过R2转发后的源IP和目的IP完全正确,得2分。
该部分答案与标准答案一致,没有错误,因此得满分6分。

题目总分:1+6=7分

点击此处查看本题答案

继续练习 练习历史