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

评分及理由
(1)得分及理由(满分4分)
得2分。学生的基本设计思想是双重循环遍历,对每个A[i]与所有j≥i的A[j]相乘并比较得到最大值。这一思路正确但效率较低,未达到题目要求的“尽可能高效”。标准答案采用O(n)的算法,而学生给出的是O(n²)的暴力解法,因此扣2分。
(2)得分及理由(满分7分)
得4分。学生的代码实现了暴力解法,逻辑正确,能够正确计算res数组。但算法效率低,不符合“尽可能高效”的要求。代码中存在函数名与题目要求不完全一致(第一次识别为cdMul,第二次为calcu),但根据“误写不扣分”原则,不因此扣分。主要扣分点在于算法未优化,效率低,因此扣3分。
(3)得分及理由(满分2分)
得2分。学生正确分析了算法的时间复杂度为O(n²),空间复杂度第一次识别为O(n)有误,但第二次识别为O(1)正确。根据“两次识别中一次正确则不扣分”的原则,以正确为准,因此给满分2分。
题目总分:2+4+2=8分

评分及理由
(1)得分及理由(满分3分)
学生答案:最短时间12,关键活动a、e、m、n。
标准答案:最短时间12,关键活动a、e、m、n。
答案完全正确。得3分。
(2)得分及理由(满分3分)
学生答案:同时进行的活动可能有b、c、d。
标准答案:同时进行的活动:b、c、d。
答案完全正确。得3分。
(3)得分及理由(满分2分)
学生答案:时间余量最大的是j,时间余量为6。
标准答案:时间余量最大的活动是j,余量为6。
答案完全正确。得2分。
(4)得分及理由(满分2分)
学生答案:最短4(根据上下文推断为“b的持续时间最多是4”),压缩活动k。
标准答案:b的持续时间最多是4,可以压缩活动k。
答案完全正确。得2分。
题目总分:3+3+2+2=10分

评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生正确计算了Cache组号字段(6位)和块内地址字段(6位),得2分。但在回答“虚拟地址中哪些位可作为Cache索引?”时,第一次识别结果未给出明确答案,第二次识别结果给出了“虚拟地址中高20位即A31-A12可做Cache索引,A11-A6可做Cache索引”,这个表述存在错误且不完整。标准答案指出,由于页大小为4KB,页内地址为12位,因此虚拟地址的低12位(VA11~VA0)与物理地址低12位相同,其中VA11~VA6(共6位)可作为Cache索引。学生答案中“A11-A6可做Cache索引”这部分正确,但“高20位即A31-A12可做Cache索引”是错误的,因为高20位是页号/页框号,不直接用于Cache索引。因此扣1分。
(2)得分及理由(满分2分)
得分:2分
理由:学生正确计算了d[100]的虚拟地址为0180 01B0H(两次识别结果一致,第二次计算过程有笔误但结果正确)。对于Cache组号,学生答案为6(即06H),与标准答案一致。因此得满分。
(3)得分及理由(满分5分)
得分:1分
理由:本题包含三个小问:偏移量、Cache缺失率、平均访问时间。
1. 偏移量:学生答案为“32”(十进制),标准答案为“20H”(十六进制)。32(十进制)=20H(十六进制),因此答案正确,得1分。
2. Cache缺失率:学生仅给出了计算过程“2048×4B/64B=128”和“1/128=”,但未给出最终缺失率百分比。标准答案的分析指出,由于数组元素访问的局部性,总共发生129次缺失(而非128次),缺失率计算为129/(2048*2) ≈ 3.15%。学生答案未完成计算,且思路(用128次缺失)与标准答案(129次)不符,因此不得分。
3. 平均访问时间:学生答案完全未涉及,不得分。
综上,本小题只得偏移量的1分。
(4)得分及理由(满分2分)
得分:0分
理由:本题包含两个小问:数组d分布的页数、缺页次数。
1. 页数:第一次识别结果为“128个页”,第二次为“129个页”,均错误。标准答案分析:数组大小为2048*4B=8192B,页大小为4KB=4096B,起始地址为0180 0020H,跨越了三个页(0180 0000H~0180 0FFFH, 0180 1000H~0180 1FFFH, 0180 2000H~0180 2FFFH),因此分布在3个页中。学生答案错误,不得分。
2. 缺页次数:两次识别结果均为“129”,错误。标准答案为3次。不得分。
题目总分:2+2+1+0=5分

评分及理由
(1)得分及理由(满分6分)
学生答案中:
- R初始值:学生答“0000 0000H”,标准答案为“0xffffffff”。根据指令流程,scov指令将R1符号扩展为64位存入{R0,R1},R0为高32位,R1为低32位。idiv指令执行{R0,R1}/R2,即64位被除数除以32位除数。被除数d[i]=0x87654321,符号扩展后高32位应为全1(因为最高位为1),即R0=0xffffffff,这对应于除法器中的R寄存器初始值。学生答0x00000000错误,属于逻辑错误。
- Q初始值:学生答“87654321H”,标准答案为“0x87654321”,正确。
- Y初始值:学生答“00ffH”或“00FFH”,标准答案为“0xfffffffe”。Y中应存放除数x的绝对值(补码除法器通常使用除数绝对值参与运算),x=0xff(即255),其32位表示为0x000000ff,但图中为补码除法器,可能需要对除数进行处理(如取负或保持原值),标准答案给出0xfffffffe(即-2的补码),说明此处有特殊处理(可能为除数取负后的值)。学生答案明显错误,且未给出32位完整表示,属于逻辑错误。
- 计数器位置:学生答“控制逻辑中包含计数器”,与标准答案“b中的控制逻辑包含计数器”一致,正确。
- ALU运算种类:学生答“有减、加”或“有减,加”,标准答案为“加法和减法”,正确。
扣分:R初始值错误扣1分,Y初始值错误扣1分。其余部分正确。本小题满分6分,扣2分,得4分。
(2)得分及理由(满分5分)
学生答案中:
- 除法异常情况:
① 学生答“x=0000H时会出现异常”,对应除数为0异常,正确,但未说明d[i]任意值。
② 学生答“d=FFFF FFFFH时会出现异常”或“Q = FFFFFFFF 时会出现异常”,这里d或Q指被除数?标准答案为被除数d[i]=0x80000000且除数x=0xffffffff时发生溢出异常。学生给出的被除数0xffffffff(即-1)与除数0x0000(即0)组合?逻辑不清晰,且未同时给出除数和被除数的特定值,未能正确描述溢出异常条件,属于逻辑错误。
- 异常响应操作:学生答“除0异常时,CPU会终止进程”不准确(通常不会直接终止,而是转入异常处理程序);“溢出异常时,CPU会执行异常处理程序,即关中断,保存断点,送中断向量,执行异常处理程序”,这部分描述基本正确,但未区分两种异常的操作是否相同,且“送中断向量”在标准答案中未明确列出,但属于常见操作,可不扣分。
扣分:未正确给出溢出异常的具体条件扣2分;对除0异常响应描述不准确扣1分。本小题满分5分,扣3分,得2分。
题目总分:4+2=6分

评分及理由
(1)得分及理由(满分7分)
学生作答与标准答案在核心逻辑上完全一致,只是信号量命名有所不同,但功能对应清晰:
SPadc(或SPaode)对应mutexT,实现对铁锹的互斥访问,初值为1。pit对应sk,表示可挖的树坑数量,初值为3。SAB对应empty,表示已挖好可使用的树坑数量,初值为0。SBC对应water,表示需要浇水的树苗数量,初值为0。甲、乙、丙三个进程的同步与互斥逻辑正确:甲挖坑前需检查坑数并申请铁锹,挖完后通知乙;乙放树苗填土前需等待坑就绪并申请铁锹,完成后释放坑资源并通知丙;丙只需等待浇水信号。整个过程保证了“树坑数量小于3时甲才可以挖坑”的约束,且铁锹互斥使用。
存在少量拼写错误(如semophore、Singal),但根据题目要求,这些属于识别误写,不扣分。
因此,本题得分为7分。
题目总分:7分

评分及理由
(1)得分及理由(满分2分)
学生答案指出PCB位于内核区,处于阻塞态。这与标准答案完全一致。得2分。
(2)得分及理由(满分3分)
学生答案指出main()函数位于只读代码区,并正确识别出scanf()和printf()需要通过执行系统调用并由驱动程序实现。这与标准答案一致。得3分。
(3)得分及理由(满分3分)
学生答案存在不清晰和错误之处。标准答案指出:ptr(变量本身)位于读/写数据段,length位于用户栈段,ptr指向的字符串位于堆区。
学生第一次识别结果:“分配在. 运行时堆. 分配在运行时境. 指向. 可读写数据区.”,其中“运行时境”可能是“运行时栈”的误写,但指向“可读写数据区”是错误的。
学生第二次识别结果:“分配在运行时堆。指针在运行时堆、可读写数据区。”,同样混淆了指针变量本身和指针指向的内容,且表述混乱。
综合来看,学生未能清晰区分指针变量存储位置和指针指向的内存位置,对length的分配位置也未明确答出。因此,本小题不能给满分。考虑到部分正确(如提到“运行时堆”),酌情给予1分。
题目总分:2+3+1=6分

评分及理由
(1)得分及理由(满分3分)
学生只计算了单向传播时延(但计算过程有误,且单位写错为“m/s”),未回答最大吞吐量和传输文件所需时间。标准答案要求三部分:单向传播时延、最大吞吐量、传输时间。学生仅给出一个不完整的时延计算(且公式中乘以2是错的,应为单向时延=距离/速度,不应乘以2;同时单位应为ms,不是m/s),因此该小题基本不得分。但考虑到识别可能误写,且计算值240与标准答案一致(尽管推导过程有误),可酌情给1分(时延结果对,但缺少其他两个答案)。
得分:1分
(2)得分及理由(满分3分)
学生未作答第(2)问,得0分。
得分:0分
(3)得分及理由(满分3分)
学生给出了三个子网的CIDR地址形式,但IP地址网段写错:应为10.10.10.0/24的子网划分,学生写成了10.10.0.0/24的子网(即第二段为0而非10)。因此子网地址全部错误,不得分。
得分:0分
题目总分:1+0+0=1分