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

评分及理由
(1)得分及理由(满分6分)
学生正确计算了散列表长度为10(7/0.7=10),并按照线性探测法正确插入了所有关键字。散列表的最终状态与标准答案完全一致:位置0-7-14,位置3-8,位置5-11,位置6-30,位置7-18,位置8-9。因此得6分。
(2)得分及理由(满分4分)
查找成功ASL计算:学生计算为(1+1+1+1+1+3+3+2)/7=13/7,但标准答案为12/7。检查发现学生计算的关键字查找次数有误:关键字14实际查找次数为2(H(14)=0,位置0被7占用,探测到位置1找到),但学生可能误算为1;关键字9实际查找次数为3(H(9)=6,位置6被30占用,位置7被18占用,位置8找到),但学生计算为2。因此查找成功ASL计算错误,扣2分。
查找不成功ASL计算:学生正确计算为(3+2+1+2+1+5+4)/7=18/7,与标准答案一致,得2分。
本小题共得2分。
题目总分:6+2=8分

评分及理由
(1)得分及理由(满分4分)
学生给出的基本设计思想与标准答案一致:将数组分为前p个元素和后n-p个元素,分别反转这两部分,然后整体反转。这种思路正确且高效。因此得4分。
(2)得分及理由(满分7分)
学生用C语言描述了算法,但存在以下问题:
1. 函数Reverse中循环条件`i <= (start + end) / 2`有误,正确应为`i < (start + end + 1)/2`或`i <= (start + end - 1)/2`,当前写法在部分情况下会导致重复交换或越界。
2. 函数ReverseFunc缺少参数n,且未说明R是全局变量还是参数,但根据上下文可推断R应为数组参数。
3. 代码中交换逻辑`R[end + start - i]`正确,但循环条件错误影响整体逻辑。
由于核心反转逻辑正确但存在明显实现错误,扣3分。得4分。
(3)得分及理由(满分2分)
学生正确分析了时间复杂度O(n)和空间复杂度O(1),与标准答案一致。得2分。
题目总分:4+4+2=10分

评分及理由
(1)得分及理由(满分4分)
学生答案中计算指令条数为16条、通用寄存器为8个、MAR为16位、MDR为16位,这些都与标准答案一致。虽然指令条数的计算过程写成了"$2^{15 - 12 + 1}=16$"(应为$2^4=16$),但结果正确,且可能是识别错误,不扣分。因此本小题得4分。
(2)得分及理由(满分2分)
学生答案给出的目标地址范围是"$0\sim2^{16}-1$",这与标准答案的0000H~FFFFH(0~2^16-1)完全一致。因此本小题得2分。
(3)得分及理由(满分5分)
学生答案中机器码"0010 0011 0001 0101B = 2315H"与标准答案完全一致,得2分。但在执行结果部分存在逻辑错误:标准答案中R5内容应从5678H变为5679H,而学生写成了1235H;存储单元5678H内容应变为68ACH,而学生写成了地址1234H存储单元内容变为68ACH。这些是核心逻辑错误,扣3分。因此本小题得2分。
题目总分:4+2+2=8分

评分及理由
(1)得分及理由(满分3分)
学生答案中计算Tag位数为19位,并考虑了有效位1位,这部分正确。但在计算Cache总容量时,公式写为8×(19+1+64×8)=4256b,其中64×8表示64字节×8位/字节=512位,但实际应为64B=512b,加上Tag和有效位共20位(即19+1),所以一行总位数应为(64×8 + 20) = 532位,再乘以8行得到4256位,换算成字节是4256/8=532B。学生最终写的是4256b(位),但标准答案要求以字节为单位,应写为532B。不过学生计算过程实质正确,只是单位未转换,且最终数值与标准答案一致(4256位=532字节),因此不扣分。得3分。
(2)得分及理由(满分4分)
对于a[0][31]:学生计算(320 + 31×32/8)/64%8,其中32/8=4正确(int为32位=4字节),31×4=124,320+124=444,444/64=6.9375,取整为6,再%8得6,与标准答案一致。对于a[1][1]:计算(320 + 256×32/8 + 32/8)/64%8,256×4=1024,1×4=4,320+1024+4=1348,1348/64=21.0625,取整21,21%8=5,与标准答案一致。虽然表达式中用了“%”可能表示取模,但计算过程和结果正确。得4分。
(3)得分及理由(满分5分)
程序A的命中率计算:学生写“32/8/64=1/16”,其中32/8=4表示一个int占4字节,但4/64=1/16表示每个Cache行64字节中,第一个访问的4字节不命中,其余15次命中,因此命中率1-1/16=15/16=93.75%,与标准答案一致。程序B的命中率:学生写“256×32/8B/64B=16>8”,其中256×4=1024字节,1024/64=16块,但数据Cache只有8行,由于直接映射,不同行的同一列元素映射到同一Cache行,每次访问都会冲突不命中,因此命中率0%,判断正确。并指出A执行时间更短,理由正确。得5分。
题目总分:3+4+5=12分

评分及理由
(1)得分及理由(满分2分)
学生回答"使用位示图法进行管理",与标准答案"用位图表示磁盘的空闲状态"一致,且正确指出2KB内存对应16384位(2KB=16384b),符合题目条件。因此得2分。
(2)得分及理由(满分3分)
学生回答存在以下问题:
由于计算过程存在明显错误但最终结果正确,扣1分。得2分。
(3)得分及理由(满分2分)
学生回答"有,FIFO",FIFO就是FCFS(先来先服务)调度策略,理由"因为半导体存储器支持随机访问,故可直接先来先服务"与标准答案一致。因此得2分。
题目总分:2+2+2=6分

评分及理由
(1)得分及理由(满分2分)
学生正确计算了逻辑地址对应的页号为5,与标准答案一致,得2分。
(2)得分及理由(满分3分)
学生正确指出采用FIFO算法时替换页号对应页框号为7,并计算出物理地址为1FCAH,与标准答案一致,得3分。
(3)得分及理由(满分3分)
学生正确指出采用CLOCK算法时替换2号页,对应页框号为2,并计算出物理地址为0BCAH,与标准答案一致,得3分。
题目总分:2+3+3=8分

评分及理由
(1)得分及理由(满分4分)
学生计算的最短时间:1×2km/200000km/s = 1×10⁻⁵s = 0.01ms,与标准答案一致。
学生计算的最长时间:2×2km/200000km/s = 2×10⁻⁵s = 0.02ms,与标准答案一致。
虽然学生没有详细说明理由,但计算结果完全正确,因此得4分。
(2)得分及理由(满分5分)
学生计算公式基本正确,包含数据帧发送时延、确认帧发送时延和传播时延。
但存在以下问题:
1. 在数据帧发送时延计算中,分母误写为"100Mbps"(应为10Mbps),这可能是识别错误或笔误
2. 在传播时延计算中,使用了1×10⁻⁵s(单程时延),但实际应该是双程传播时延2×1×10⁻⁵s
3. 最终计算结果9.6Mbps与标准答案9.33Mbps有差异
4. 没有明确指出使用的是有效数据1500字节进行计算
由于存在计算错误,扣2分,得3分。
题目总分:4+3=7分