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

评分及理由
(1)得分及理由(满分5分)
得分:2分
理由:学生第一次识别结果中的设计思想描述不完整且存在错误,第二次识别结果提到"中序遍历"和"括号"是正确的,但具体描述"对于每颗子树的叶子结点,左右不输出括号,其余的非叶结点左右输出括号"过于简单且不准确。标准答案强调需要根据深度判断是否添加括号,而学生的描述没有体现这个关键点。由于基本思想表述不完整,扣3分。
(2)得分及理由(满分10分)
得分:3分
理由:学生的代码实现存在严重逻辑错误:
1. 遍历顺序错误:第一次识别结果中先遍历右子树再遍历左子树,不符合中序遍历要求;第二次识别结果中遍历顺序混乱。
2. 括号添加逻辑错误:第一次识别中只在depth=1时添加左括号,逻辑不完整;第二次识别中括号添加位置和条件完全错误。
3. 操作符输出位置错误:没有按照中序遍历的"左-根-右"顺序输出。
4. 叶结点判断后缺少else分支,导致非叶结点也会执行后续代码。
由于存在多个严重逻辑错误,扣7分。
题目总分:2+3=5分

评分及理由
(1)得分及理由(满分4分)
学生给出的边依次为:(A,D)、(D,E)、(E,C)、(B,C)。标准答案为:(A,D)、(D,E)、(C,E)、(B,C)。学生答案中第三条边为(E,C),而标准答案为(C,E),但无向图中边的表示顺序不影响边的本质,因此(E,C)与(C,E)是等价的。四条边的选择顺序与标准答案完全一致,因此本题得满分4分。
(2)得分及理由(满分2分)
学生回答“是唯一的”,与标准答案一致。图G中所有边的权值均不相等,因此MST是唯一的。本题得满分2分。
(3)得分及理由(满分2分)
学生回答“图中权值都不相等时,MST是唯一的”。标准答案为“当带权连通图的任意一个环中所包含的边的权值均不相同时,其MST是唯一的”。学生的回答虽然不够严谨(因为权值都不相等是充分条件但不是必要条件),但考虑到这是常见的一种正确表述,且题目要求对思路正确的不扣分,因此本题得满分2分。
题目总分:4+2+2=8分

评分及理由
(1)得分及理由(满分4分)
学生正确解释了n=0时死循环的原因:n-1为全1(FFFFFFFFH),无符号比较条件永真。同时正确说明了若改为int型则不会死循环,因为n-1=-1,条件不成立。回答完整且正确,得4分。
(2)得分及理由(满分3分)
学生第一次识别结果认为返回值相等,第二次识别结果认为不相等,存在矛盾。但标准答案中f1(23)和f2(23)返回值相等,第一次识别正确,第二次识别错误。根据禁止扣分规则第3条,只要有一次识别正确则不扣分。但学生给出的机器数与标准答案不符:f1(23)应为00FFFFFFH,学生答007FFFFFH(可能误写);f2(23)应为4B7FFFFFH,学生答4AFFFFFEH(明显错误)。由于机器数回答错误,扣1分。得2分。
(3)得分及理由(满分1分)
学生回答“尾数全为1有特殊用途”不准确,标准答案原因是float只有24位有效位,需舍入处理。学生未正确解释原因,扣1分。得0分。
(4)得分及理由(满分2分)
学生未解释f1(31)返回-1的原因(int溢出补码表示),直接给出最大n=23,而标准答案为30。回答错误,扣2分。得0分。
(5)得分及理由(满分3分)
学生正确回答7F800000H对应无穷大,得1分。但未回答使f2(n)不溢出的最大n值(标准答案为126)和使结果精确的最大n值(标准答案为23),各扣1分。得1分。
题目总分:4+2+0+0+1=7分

评分及理由
(1)得分及理由(满分2分)
学生回答正确指出计算机M是CISC,理由是"指令长度不相同",这与标准答案"指令长短不一"一致。理由充分且正确,得2分。
(2)得分及理由(满分2分)
学生正确计算出f1的机器指令代码占96字节,计算过程完整:0040107FH - 00401020H = 5FH,再加1得到60H,最后转换为96字节。计算过程与标准答案完全一致,得2分。
(3)得分及理由(满分3分)
学生正确得出CF=1的结论,理由基本正确:当n=0时,n-1=FFFFFFFFH,i-(n-1)需要借位。虽然学生没有像标准答案那样详细描述补码运算器的具体计算过程,但核心逻辑正确,结论准确。考虑到题目要求给出计算过程,学生给出了关键的计算步骤,得3分。
(4)得分及理由(满分3分)
学生正确回答"不可以",理由充分:指出f2中power是float类型,机器中存放的二进制位不直接表示数值大小,格式为1位符号、8位阶码、23位尾数,因此左移实现不了power*2。这与标准答案的核心思想完全一致,得3分。
题目总分:2+2+3+3=10分

评分及理由
(1)得分及理由(满分1分)
学生回答正确,得1分。理由:学生正确计算出页面大小为4KB,并判断函数f1的机器指令代码大小小于一页,因此占用1页。
(2)得分及理由(满分2分)
学生回答部分正确,得1分。理由:学生正确识别了虚拟地址00401020H,但在计算页目录号和页表索引时出现错误。正确计算应为:
- 00401020H = 0000 0000 0100 0000 0001 0000 0010 0000
- 页目录号(高10位):0000000001 = 1
- 页表索引(中间10位):0000000001 = 1
学生错误地计算为第2个表项,但思路正确,因此扣1分。
(3)得分及理由(满分4分)
学生回答基本正确,得4分。理由:
- 正确描述了进程状态变化:执行态→阻塞态→就绪态
- 正确指出CPU会进入内核态
- "堵塞态"识别为"阻塞态"的误写,不扣分
题目总分:1+1+4=6分

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了三个信号量:mutex_y=1, mutex_z=1, mutex_x=1。其中mutex_x用于保护x变量,但题目中x变量是只读的,不需要互斥保护,因此mutex_x是多余的(1分扣分)。mutex_y用于保护y变量,但标准答案需要两个独立的信号量mutex_y1和mutex_y2来分别保护thread1与thread3、thread2与thread3对y的访问,学生只用一个mutex_y会导致不必要的互斥,降低了并发度(1分扣分)。mutex_z定义正确(1分得分)。本部分得分:1分
(2)thread1实现得分及理由(满分1.5分)
thread1中使用了p(mutex_x)和p(mutex_y),其中mutex_x是不必要的,但mutex_y的使用基本正确。由于学生只用一个mutex_y保护y,虽然能保证互斥,但并发度不如标准答案高。考虑到基本实现了对y的保护,给1分。
(3)thread2实现得分及理由(满分1.5分)
thread2中使用了p(mutex_y)和p(mutex_z),基本正确。同样由于只用一个mutex_y保护y,并发度不如标准答案,但能保证互斥。给1分。
(4)thread3实现得分及理由(满分2分)
thread3中使用了p(mutex_y)和p(mutex_z)来保护对z和y的修改。这里的问题是:对y的修改需要同时与thread1和thread2互斥,但学生只用一个mutex_y,虽然能保证互斥,但在thread3执行y=add(y,w)时会阻塞其他所有需要访问y的线程,降低了并发度。标准答案使用两个独立的信号量可以允许thread1和thread2在某些情况下并发执行。给1分。
题目总分:1+1+1+1=4分

评分及理由
(1)得分及理由(满分3分)
学生回答正确接收了3个数据帧,且正确列出了S0,0、S1,0、S2,0,与标准答案完全一致。得3分。
(2)得分及理由(满分3分)
学生回答最多还可以发送4个帧,第一个帧是S3,2,最后一个帧是S6,2。但标准答案为最多发送5个帧,第一个帧是S5,2,最后一个帧是S1,2。学生的答案在发送帧数量和帧序号上均存在错误,属于逻辑错误。由于发送窗口大小计算错误导致此问题,扣2分。得1分。
(3)得分及理由(满分2分)
学生回答需要重发3个帧,第一个帧是S2,3,与标准答案完全一致。得2分。
(4)得分及理由(满分1分)
学生计算的信道利用率约为31%,但标准答案为50%。学生的错误在于使用了错误的窗口大小(n=4)进行计算,而实际上最大发送窗口应为7。这是逻辑错误,扣1分。得0分。
题目总分:3+1+2+0=6分