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

科目组合

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

00: 04: 20
答题卡
得分 126/150
答对题目数 39/47
评价

答题情况分析报告

正确: 39
错误: 8
未答: 0
总分: 126/150
正确率 83.0%
第1题 数据结构 单选题 题目链接

下列函数的时间复杂度是( )。

int func(int n) { 
   int i = 0, sum = 0;
   while(sum < n) sum += ++i;
   return i;
}

$\text{A. } O(\log n)$    $\text{B. } O(n^{1/2})$    $\text{C. } O(n)$    $\text{D. } O(n\log n)$

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

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

下列关于栈的叙述中,错误的是( )。

Ⅰ.采用非递归方式重写递归程序时必须使用栈

Ⅱ.函数调用时,系统要用栈保存必要的信息

Ⅲ.只要确定了入栈次序,即可确定出栈次序

Ⅳ.栈是一种受限的线性表,允许在其两端进行操作

A. 仅Ⅰ        B. 仅Ⅰ、Ⅱ、Ⅲ

C. 仅Ⅰ、Ⅲ、Ⅳ    D. 仅Ⅱ、Ⅲ、Ⅳ

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

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

适用于压缩存储稀疏矩阵的两种存储结构是( )。

A. 三元组表和十字链表

B. 三元组表和邻接矩阵

C. 十字链表和二叉链表

D. 邻接矩阵和十字链表

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

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

要使一棵非空二叉树的先序序列与中序序列相同,其所有非叶结点须满足的条件是( )。

A. 只有左子树

B. 只有右子树

C. 结点的度均为1

D. 结点的度均为2

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

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

已知一棵二叉树的树形如下图所示,其后序序列为e, a, c, b, d, g, f,树中与结点a同层的结点是( )。

A. c     B. d     C. f     D. g

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

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

已知字符集{a, b, c, d, e, f, g, h},若各字符的哈夫曼编码依次是0100, 10, 0000, 0101, 001, 011, 11, 0001,则编码序列0100011001001011110101的译码结果是( )。

A. a c g a b f h

B. a d b a g b b

C. a f b e a g d

D. a f e e f g d

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

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

已知无向图G含有16条边,其中度为4的顶点个数为3,度为3的顶点个数为4,其他顶点的度均小于3。图G所含的顶点个数至少是( )。

A. 10    B. 11    C. 13    D. 15

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

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

下列二叉树中,可能成为折半查找判定树(不含外部结点)的是( )。

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

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

下列应用中,适合使用B+树的是()

A.编译器中的词法分析

B.关系数据库系统中的索引

C.网络中的路由表快速查找

D.操作系统的磁盘空闲块管理

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

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

在内部排序时,若选择了归并排序而没有选择插入排序,则可能的理由是( )。

Ⅰ.归并排序的程序代码更短

Ⅱ.归并排序的占用空间更少

Ⅲ.归并排序的运行效率更高

A. 仅Ⅱ    B. 仅Ⅲ    C. 仅Ⅰ、Ⅱ    D. 仅Ⅰ、Ⅲ

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

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

下列排序方法中,若将顺序存储更换为链式存储,则算法的时间效率会降低的是( )。

Ⅰ. 插入排序    Ⅱ.选择排序

Ⅲ.起泡排序    Ⅳ.希尔排序

Ⅴ.堆排序

A. 仅Ⅰ、Ⅱ    B. 仅Ⅱ、Ⅲ

C. 仅Ⅲ、Ⅳ    D. 仅Ⅳ、Ⅴ

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

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

假定计算机M1和M2具有相同的指令集体系结构(ISA),主频分别为1.5GHz和1.2GHz。在M1和M2上运行某基准程序P,平均CPI分别为2和1,则程序P在M1和M2上运行时间的比值是( )。

A. 0.4    B. 0.625    C. 1.6    D. 2.5

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

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

某计算机主存按字节编址,由4个64M×8位的DRAM芯片采用交叉编址方式构成,并与宽度为32位的存储器总线相连,主存每次最多读写32位数据。若double型变量x的主存地址为804001AH,则读取x需要的存储周期数是( )。

A. 1    B. 2    C. 3    D. 4

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

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

某C语言程序段如下:

for (i=0; i<=9; i++) {
    temp=1;
    for (j=0; j<=i; j++) temp*=a[j];
    sum+=temp;
}

下列关于数组a的访问局部性的描述中,正确的是( )。

A. 时间局部性和空间局部性皆有

B. 无时间局部性,有空间局部性

C. 有时间局部性,无空间局部性

D. 时间局部性和空间局部性皆无

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

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

下列寻址方式中,最适合按下标顺序访问一维数组元素的是

A.相对寻址    B.寄存器寻址    C.直接寻址   D.变址寻址

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

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

某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是( )。

A. 24位    B. 26位    C. 28位    D. 32位

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

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

下列关于超标量流水线特性的叙述中,正确的是( )。

Ⅰ. 能缩短流水线功能段的处理时间

Ⅱ. 能在一个时钟周期内同时发射多条指令

Ⅲ. 能结合动态调度技术提高指令执行并行性

A. 仅Ⅱ      B. 仅Ⅰ、Ⅲ

C. 仅Ⅱ、Ⅲ    D. Ⅰ、Ⅱ和Ⅲ

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

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

下列关于主存储器(MM)和控制存储器(CS)的叙述中,错误的是( )。

A. MM在CPU外,CS在CPU内

B. MM按地址访问,CS按内容访问

C. MM存储指令和数据,CS存储微指令

D. MM用RAM和ROM实现,CS用ROM实现

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

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

下列关于指令流水线数据通路的叙述中,错误的是( )。

A. 包含生成控制信号的控制部件

B. 包含算术逻辑运算部件(ALU)

C. 包含通用寄存器组和取指部件

D. 由组合逻辑电路和时序逻辑电路组合而成

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

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

下列关于多总线结构的叙述中,错误的是( )。

A. 靠近CPU的总线速度较快

B. 存储器总线可支持突发传送方式

C. 总线之间须通过桥接器相连

D. PCI-Express×16采用并行传输方式

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

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

I/O指令实现的数据传送通常发生在( )。

A. I/O设备和I/O端口之间

B. 通用寄存器和I/O设备之间

C. I/O端口和I/O端口之间

D. 通用寄存器和I/O端口之间

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

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

下列关于多重中断系统的叙述中,错误的是( )。

A. 在一条指令执行结束时响应中断

B. 中断处理期间CPU处于关中断状态

C. 中断请求的产生与当前指令的执行无关

D. CPU通过采样中断请求信号检测中断请求

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

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

假设4个作业到达系统的时刻和运行时间如下表所示。

\[
\begin{array}{|c|c|c|}
\hline
\text{作业} & \text{到达时刻} & \text{运行时间} \\
\hline
\text{J1} & 0 & 3 \\
\hline
\text{J2} & 1 & 3 \\
\hline
\text{J3} & 1 & 2 \\
\hline
\text{J4} & 3 & 1 \\
\hline
\end{array}
\]

系统在\( t=2 \)时开始作业调度。若分别采用先来先服务和短作业优先调度算法,则选中的作业分别是( )。

A. J2、J3    B. J1、J4    C. J2、J4    D. J1、J3

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

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

执行系统调用的过程包括如下主要操作:

①返回用户态         ②执行陷入(trap)指令

③传递系统调用参数   ④执行相应的服务程序

正确的执行顺序是( )。

A. ②→③→①→④    B. ②→④→③→①

C. ③→②→④→①    D. ③→④→②→①

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

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

某计算机按字节编址,其动态分区内存管理采用最佳适应算法,每次分配和回收内存后都对空闲分区链重新排序。当前空闲分区信息如下表所示。

\[
\begin{array}{|c|c|c|c|c|}
\hline
\text{分区起始地址} & 20\text{K} & 500\text{K} & 1000\text{K} & 200\text{K} \\
\hline
\text{分区大小} & 40\text{KB} & 80\text{KB} & 100\text{KB} & 200\text{KB} \\
\hline
\end{array}
\]

回收起始地址为60K、大小为140KB的分区后,系统中空闲分区的数量、空闲分区链第一个分区的起始地址和大小分别是( )。

A. 3、20K、380KB

B. 3、500K、80KB

C. 4、20K、180KB

D. 4、500K、80KB

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

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

某文件系统的簇和磁盘扇区大小分别为1KB和512B。若一个文件的大小为1026B,则系统分配给该文件的磁盘空间大小是( )。

A. 1026B    B. 1536B    C. 1538B    D. 2048B

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

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

下列有关基于时间片的进程调度的叙述中,错误的是( )。

A. 时间片越短,进程切换的次数越多,系统开销也越大

B. 当前进程的时间片用完后,该进程状态由执行态变为阻塞态

C. 时钟中断发生后,系统会修改当前进程在时间片内的剩余时间

D. 影响时间片大小的主要因素包括响应时间、系统开销和进程数量等

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

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

与单道程序系统相比,多道程序系统的优点是(  )

Ⅰ.CPU利用率高

Ⅱ.系统开销小

Ⅲ.系统吞吐量大

Ⅳ.I/O设备利用率高

A.仅Ⅰ、Ⅲ            B. 仅Ⅰ、Ⅳ

C. 仅Ⅱ 、Ⅲ          D. 仅Ⅰ、Ⅲ、Ⅳ

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

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

下列选项中,磁盘逻辑格式化程序所做的工作是( )。

Ⅰ. 对磁盘进行分区

Ⅱ. 建立文件系统的根目录

Ⅲ. 确定磁盘扇区校验码所占位数

Ⅳ. 对保存空闲磁盘块信息的数据结构进行初始化

A. 仅Ⅱ    B. 仅Ⅱ、Ⅳ

C. 仅Ⅲ、Ⅳ    D. 仅Ⅰ、Ⅱ、Ⅳ

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

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

某文件系统中,针对每个文件,用户类别分为4类:安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种:完全控制、执行、修改、读取、写入。若文件控制块中用二进制位串表示文件权限,为表示不同类别用户对一个文件的访问权限,则描述文件权限的位数至少应为( )。

A. 5    B. 9    C. 12    D. 20

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

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

若文件f1的硬链接为f2,两个进程分别打开f1和f2,获得对应的文件描述符为fd1和fd2,则下列叙述中,正确的是( )。

Ⅰ. f1和f2的读写指针位置保持相同

Ⅱ. f1和f2共享同一个内存索引结点

Ⅲ. fd1和fd2分别指向各自的用户打开文件表中的一项

A. 仅Ⅲ    B. 仅Ⅱ、Ⅲ

C. 仅Ⅰ、Ⅱ    D. Ⅰ、Ⅱ和Ⅲ

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

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

系统将数据从磁盘读到内存的过程包括以下操作:

① DMA控制器发出中断请求

② 初始化DMA控制器并启动磁盘

③ 从磁盘传输一块数据到内存缓冲区

④ 执行“DMA结束”中断服务程序

正确的执行顺序是( )。

A. ③→①→②→④    B. ②→③→①→④

C. ②→①→③→④    D. ①→②→④→③

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

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

假设OSI参考模型的应用层欲发送400B的数据(无拆分),除物理层和应用层之外,其他各层在封装PDU时均引入20B的额外开销,则应用层数据传输效率约为( )。

A. 80%    B. 83%    C. 87%    D. 91%

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

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

若信道在无噪声情况下的极限数据传输速率不小于信噪比为30dB条件下的极限数据传输速率,则信号状态数至少是( )。

A. 4    B. 8    C. 16    D. 32

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

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

在下图所示的网络中,若主机H发送一个封装访问Internet的IP分组的IEEE 802.11数据帧F,则帧F的地址1、地址2和地址3分别是( )。

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

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

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

下列IP地址中,只能作为IP分组的源IP地址但不能作为目的IP地址的是( )。

A. 0.0.0.0    B. 127.0.0.1

C. 20.10.10.3    D. 255.255.255.255

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

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

直接封装RIP、OSPF、BGP报文的协议分别是( )。

A. TCP、UDP、IP    B. TCP、IP、UDP

C. UDP、TCP、IP    D. UDP、IP、TCP

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

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

若将网络21.3.0.0/16划分为128个规模相同的子网,则每个子网可分配的最大IP地址个数是( )。

A. 254    B. 256    C. 510    D. 512

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

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

若甲向乙发起一个TCP连接,最大段长MSS=1KB,RTT=5ms,乙开辟的接收缓存为64KB,则甲从连接建立成功至发送窗口达到32KB,需经过的时间至少是( )。

A. 25 ms    B. 30 ms    C. 160 ms    D. 165 ms

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

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

下列关于FTP协议的叙述中,错误的是( )。

A. 数据连接在每次数据传输完毕后就关闭

B. 控制连接在整个会话期间保持打开状态

C. 服务器与客户端的TCP 20端口建立数据连接

D. 客户端与服务器的TCP 21端口建立控制连接

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

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

(15分)请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出。例如,当下列两棵表达式树作为算法输入时:

输出的中缀表达式分别为 (a+b)∗(c∗(−d)) 和 (a∗b)+(−(c−d)) 。

二叉树结点的定义如下:

typedef struct node{ 
    char data[10];   // 存储操作数或操作符
    struct node *left, *right;     
}BTree;

要求:

⑴ 给出算法的基本设计思想。(5分)

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

你的答案:


评分及理由

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

得分:2分

理由:学生的算法思想提到了使用中序遍历,这是正确的方向。但是具体实现思路存在明显错误:

  • 正确思路应该是在非叶子节点处根据需要添加括号
  • 学生错误地提出在叶节点处添加括号,这会导致操作数被括号包围,不符合题目要求
  • 没有理解括号添加的正确时机和条件

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

得分:4分

理由:代码实现存在以下问题:

  • 基本框架正确:使用了中序遍历的递归结构
  • 严重逻辑错误:在叶节点前后添加括号,这会导致输出类似"(a)"的形式,而不是正确的表达式
  • 缺少深度判断:没有像标准答案那样通过deep参数来控制括号的添加
  • 输出格式错误:使用%c输出,但data是char[10]数组,应该使用%s
  • 函数参数类型错误:应该是BTree*而不是BTree

代码虽然实现了中序遍历的基本框架,但核心的括号添加逻辑完全错误,无法正确输出表达式。

题目总分:2+4=6分

点击此处查看本题答案

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

(8分)使用Prim(普里姆)算法求带权连通图的最小(代价)生成树(MST)。请回答下列问题。

⑴ 对下列图G,从顶点A开始求G的MST,依次给出按算法选出的边。(4分)

⑵ 图G的MST是唯一的吗?(2分)

⑶ 对任意的带权连通图,满足什么条件时,其MST是唯一的?(2分)

你的答案:


评分及理由

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

学生给出的边依次为:A-D、D-E、E-C、C-B。这些边与标准答案(A,D)、(D,E)、(C,E)、(B,C)完全一致,且顺序正确。虽然学生写的是"E-C"而标准答案是"(C,E)",但无向图中边的表示顺序不影响正确性。因此本题得满分4分。

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

学生回答"是唯一的",与标准答案一致。图G的最小生成树确实是唯一的,因此得满分2分。

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

第一次识别结果为"所有边的权值一样时,MST唯一",这是错误的;第二次识别结果为"所有边的权值不一样时,MST唯一",虽然不完全精确但基本正确。标准答案是"当带权连通图的任意一个环中所包含的边的权值均不相同时,其MST是唯一的"。学生的回答虽然不够严谨,但抓住了"权值不同"这个关键点,考虑到可能存在识别误差,给予1分。

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

点击此处查看本题答案

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

(13分)已知\[ f(n)=\sum_{i = 0}^{n}2^{i}=2^{n + 1}-1=\underbrace{11\cdots1}_{n + 1位}\text{B} \] ,计算f(n)的C语言函数f1如下:

int f1(unsigned n)
{ 
    int sum=1, power=1;
    for(unsigned i=0; i<= n -1; i ++)
    { 
        power * = 2;
        sum += power;
    }
    return sum ;
}

将f1中的int都改为float,可得到计算f(n)的另一个函数f2。假设unsigned和int型数据都占32位,float采用IEEE754单精度标准。请回答下列问题。

(1) 当n=0时,f1会出现死循环,为什么?若将f1中的变量i和n都定义为int型,则f1是否还会出现死循环?为什么?(4分)

(2) f1(23)和f2(23)的返回值是否相等?机器数各是什么(用十六进制表示)?(3分)

(3) f1(24)和f2(24)的返回值分别为33554431和33554432.0,为什么不相等?(1分)

(4) f(31)= $2^{32} - 1$ ,而f1(31)的返回值却为-1,为什么?若使f1(n)的返回值与f(n)相等,则最大的n是多少?(2分)

(5) f2(127)的机器数为7F80 0000H,对应的值是什么?若使f2(n)的结果不溢出,则最大的n是多少?若使f2(n)的结果精确(无舍入),则最大的n是多少?(3分)

你的答案:


评分及理由

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

学生正确解释了n=0时死循环的原因(无符号数比较,n-1为最大值),并说明了改为int型后不会死循环(带符号整数比较,n-1=-1)。但学生答案中出现了"65535"这个具体数值,这是16位无符号数的最大值,而题目中unsigned是32位,最大值应为2³²-1。不过考虑到可能是识别错误或笔误,且核心逻辑正确,因此不扣分。得4分。

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

学生回答"相等"是正确的,但给出的机器数"07FFFFFF8H"格式错误(多了一位),且与标准答案"00FFFFFFH"不符。由于机器数回答完全错误,扣2分。得1分。

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

学生提到了"超出了表示范围",但没有准确说明是float的精度限制导致的舍入问题,而是错误地提到了"溢出"和"左移"。核心解释不正确,扣1分。得0分。

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

学生正确解释了f1(31)返回-1的原因(超出int表示范围),但在第二问中第一次识别回答"最大的n是30"正确,第二次识别回答"最大的n是70"错误。根据"只要其中有一次回答正确则不扣分"的原则,不扣分。得2分。

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

学生正确回答了f2(127)对应的值是正无穷大,正确给出了不溢出的最大n=126和结果精确的最大n=23。三次识别结果都正确,得3分。

题目总分:4+1+0+2+3=10分

点击此处查看本题答案

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

(10分)在按字节编址的计算机M上,题43中f1的部分源程序(阴影部分)与对应的机器级代码(包括指令的虚拟地址)如下图所示。

    int f1(unsigned n)
1   00401020 55         push ebp
    ...      ...        ...
        for (unsigned i = 0; i <= n-1; i++)
    ...      ...        ...
20  0040105E 39 4D F4   cmp dword ptr [ebp-0Ch],ecx
    ...      ...        ...
        { power *= 2;
    ...      ...        ...
23  00401066 D1 E2      shl edx,1
    ...      ...        ...
        return sum;
    ...      ...        ...
35  0040107F C3         ret

其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令。

请回答下列问题。

(1) 计算机M是RISC还是CISC?为什么?(2分)

(2) f1的机器指令代码共占多少字节?要求给出计算过程。(2分)

(3) 第20条指令cmp通过i减n-1实现对i和n-1的比较。执行f1(0)过程中,当i=0时,cmp指令执行后,进/借位标志CF的内容是什么?要求给出计算过程。(3分)

(4) 第23条指令shl通过左移操作实现了power*2运算,在f2中能否也用shl指令实现power*2?为什么?(3分)

你的答案:


评分及理由

(1)得分及理由(满分2分)
学生回答是RISC,理由是“源程序的指令没有对齐”。标准答案指出M是CISC,因为指令长短不一。学生的判断错误,理由也不正确(指令对齐不是RISC/CISC的主要区别)。因此扣2分,得0分。

(2)得分及理由(满分2分)
学生计算过程为0040107F - 00401070 + 1 = 60H = 96字节。但起始地址应为00401020,学生误用00401070,导致计算错误。虽然结果96字节正确,但过程错误,因此扣1分,得1分。

(3)得分及理由(满分3分)
学生正确得出CF=1,并给出计算过程F = sub ⊕ cout = 1⊕0=1,思路与标准答案一致(CF = C⊕1)。虽然部分数值描述有误(如n-1和i的值),但核心逻辑正确,因此不扣分,得3分。

(4)得分及理由(满分3分)
学生回答“不能”,理由是指数运算涉及规格化等复杂操作,不能简单移位。这与标准答案一致(float类型含阶码,左移不能实现乘2)。因此得3分。

题目总分:0+1+3+3=7分

点击此处查看本题答案

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

(7分)假定题44给出的计算机M采用二级分页虚拟存储管理方式,虚拟地址格式如下:

\[
\begin{array}{|c|c|c|}
\hline
\text{页目录号(10位)} & \text{页表索引(10位)} & \text{页内偏移量(12位)} \\
\hline
\end{array}
\]

请针对题43的函数f1

int f1(unsigned n) { 
    int sum=1, power=1;
    for (unsigned i=0; i<=n-1; i++) { 
        power*=2;
        sum+=power;
    }
    return sum;
}

和题44中的机器指令代码,

    int f1(unsigned n)
1   00401020 55         push ebp
    ...      ...        ...
        for (unsigned i = 0; i <= n-1; i++)
    ...      ...        ...
20  0040105E 39 4D F4   cmp dword ptr [ebp-0Ch],ecx
    ...      ...        ...
        { power *= 2;
    ...      ...        ...
23  00401066 D1 E2      shl edx,1
    ...      ...        ...
        return sum;
    ...      ...        ...
35  0040107F C3         ret

回答下列问题。

(1) 函数f1的机器指令代码占多少页?(1分)

(2) 取第1条指令(push ebp)时,若在进行地址变换的过程中需要访问内存中的页目录和页表,则会分别访问它们各自的第几个表项(编号从0开始)?(2分)

(3) M的I/O采用中断控制方式。若进程P在调用f1之前通过 scanf() 获取n的值,则在执行 scanf() 的过程中,进程P的状态会如何变化?CPU是否会进入内核态?(4分)

你的答案:


评分及理由

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

学生回答:函数f1的机器指令代码占2^20页。标准答案:函数f1的机器指令代码在同一页中,仅占用1页。学生的计算过程(2^32/2^12=2^20)是基于整个32位地址空间的页数,而不是函数f1实际占用的页数。函数f1的代码段所有指令的虚拟地址高20位相同,因此应该在同一页中。学生没有正确理解问题,逻辑错误,扣1分。

得分:0分

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

学生回答:访问页目录项的第2个表项,访问页表的第2个表项。标准答案:访问页目录的第1个表项,在对应的页表中访问第1个表项。push ebp指令的虚拟地址是00401020,二进制为0000 0000 0100 0000 0001 0000 0010 0000。页目录号(高10位)是0000000001(即1),页表索引(中间10位)是0000000001(即1)。学生回答"第2个表项"可能是将编号从1开始计数,但题目明确要求"编号从0开始",因此正确答案应该是第1个表项。这是逻辑错误,扣2分。

得分:0分

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

学生回答:执行scanf,进程P会等待输入,进入阻塞态;输入得到后,进入就绪态,等待CPU调度;调度后,进入运行态;PU会进入内核态。标准答案:进程P因等待输入从执行态变为阻塞态;输入结束时被中断处理程序唤醒变为就绪态;被调度程序调度变为运行态;CPU状态会从用户态变为内核态。

学生的回答基本正确描述了进程状态变化:阻塞态→就绪态→运行态。虽然学生写的是"PU"而不是"CPU",但根据上下文判断这应该是识别错误,不扣分。状态变化描述完整且正确,得3分;CPU状态变化描述正确,得1分。

得分:4分

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

点击此处查看本题答案

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

(8分)某进程中有3个并发执行的线程thread1、thread2、thread3,其伪代码如下所示。

//复数的结构类型定义
typedef struct
{
    float a;
    float b;
}cnum;
cnum x,y,z; //全局变量

//计算两个复数之和
cnum add( cnum p,cnum q)
{
    cnum s;
    s.a=p.a+q.a;
    s.b=p.b+q.b;
    return s;
}

thread1
{
    cnum w;
    w=add(x,y);
    ...
}

thread2
{
    cnum w;
    w=add(y,z);
    ...
}

thread3
{
    cnum w;
    w.a=1;
    w.b=2;
    z=add(z,w);
    y=add(y,w);
    ...
}

请添加必要的信号量和P、V(或wait()、signal())操作,要求确保线程互斥访问临界资源,并且最大程度地并发执行。

你的答案:


评分及理由

(1)信号量定义得分及理由(满分3分)

学生定义了三个信号量:mutex_y1、mutex_y2、mutex_z,与标准答案完全一致,分别用于保护y变量在thread1和thread3之间的访问、y变量在thread2和thread3之间的访问、z变量的互斥访问。因此得3分。

(2)thread1代码得分及理由(满分1分)

thread1中正确使用了P(mutex_y1)和V(mutex_y1)来保护对y的访问(在add(x,y)中),实现与thread3的互斥。虽然代码中变量类型写成了"(num"和"num"(应为cnum),但这是识别错误,不扣分。因此得1分。

(3)thread2代码得分及理由(满分2分)

thread2中正确使用了P(mutex_y2)和P(mutex_z)来保护对y和z的访问(在add(y,z)中),并按照与申请相反的顺序释放信号量。实现与thread3的互斥。因此得2分。

(4)thread3代码得分及理由(满分2分)

thread3中:

  • 对z的操作正确使用了P(mutex_z)和V(mutex_z)保护 - 得0.5分
  • 对y的操作正确使用了P(mutex_y1)和P(mutex_y2)以及相应的V操作保护 - 得1分
  • 虽然第二次识别中"z = add(z, n)"应为"z = add(z, w)",但根据上下文判断为识别错误,不扣分
  • 信号量申请顺序合理,释放顺序正确 - 得0.5分

因此thread3部分得2分。

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

点击此处查看本题答案

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

(9分)甲乙双方均采用后退N帧协议(GBN)进行持续的双向数据传输,且双方始终采用捎带确认,帧长均为1000 B。\( S_{x,y} \)和\( R_{x,y} \)分别表示甲方和乙方发送的数据帧,其中:x是发送序号;y是确认序号(表示希望接收对方的下一帧序号);数据帧的发送序号和确认序号字段均为3比特。信道传输速率为100 Mbps,RTT = 0.96 ms。下图给出了甲方发送数据帧和接收数据帧的两种场景,其中\( t_0 \)为初始时刻,此时甲方的发送和确认序号均为0,\( t_1 \)时刻甲方有足够多的数据待发送。

请回答下列问题。

(1) 对于图(a),\( t_0 \)时刻到\( t_1 \)时刻期间,甲方可以断定乙方已正确接收的数据帧数是多少?正确接收的是哪几个帧(请用\( S_{x,y} \)形式给出)?(3分)

(2) 对于图(a),从\( t_1 \)时刻起,甲方在不出现超时且未收到乙方新的数据帧之前,最多还可以发送多少个数据帧?其中第一个帧和最后一个帧分别是哪个(请用\( S_{x,y} \)形式给出)?(3分)

(3) 对于图(b),从\( t_1 \)时刻起,甲方在不出现新的超时且未收到乙方新的数据帧之前,需要重发多少个数据帧?重发的第一个帧是哪个(请用\( S_{x,y} \)形式给出)?(2分)

(4) 甲方可以达到的最大信道利用率是多少?(1分)

你的答案:


评分及理由

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

学生两次识别结果均正确回答了"已正确接收的数据帧数是3"和"正确接收的是S₀,₀, S₁,₀, S₂,₀",与标准答案完全一致。得3分。

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

学生两次识别结果都正确回答了"最多还可以发5个数据帧",但在帧序号识别上存在错误:第一次识别中第一个帧缺失,第二次识别为S₅,₄;最后一次识别为S₉,₄。而标准答案是第一个帧为S₅,₂,最后一个帧为S₁,₂。考虑到序号识别可能存在误写(如2误写为4,1误写为9),且核心的"5个数据帧"数量正确,但帧序号识别错误需要扣分。扣1分,得2分。

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

学生两次识别结果都正确回答了"需要重发3个数据帧",但重发的第一个帧识别为S₀,₀,而标准答案是S₂,₃。考虑到序号识别可能存在误写,但核心的重发帧数量正确,重发第一个帧识别错误需要扣分。扣1分,得1分。

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

学生计算的最大信道利用率为47.8%,而标准答案为50%。虽然计算过程有详细展示,但最终结果错误。考虑到这是计算题,结果错误需要扣分。扣1分,得0分。

题目总分:3+2+1+0=6分

点击此处查看本题答案

继续练习 练习历史