科目组合
计算机: 数据结构 、计算机组成原理 、操作系统 、计算机网络
(1)采用一个大小为n的辅助数组b,用于标记链表中的元素是否已经出现过,从头开始遍历链表元素,初次遇到元素时,将b[abs(p->data)]内容置为一,每次遇见元素时,检查数组,若数组内容为1,则删除对应元素
(2)
typedef struct plink
{
int data;
struct plink* link;
}
(3)
对链表进行初始化;
int b[n]=[0];//辅助数组
plink* p1=head->link;
while(p->link!=NULL)
{
if(b[abs(p->data)]==1)
{
plink* s=p->link;
p->link=p->link->link;
free(s);
}
else b[abs(p->data)]=1
}
(4)时间复杂度为o(m),空间复杂度为o(n)
评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生给出的基本设计思想与标准答案一致,都是使用辅助数组标记已出现的绝对值,然后遍历链表进行删除操作。思路正确且完整,因此得满分。
(2)得分及理由(满分2分)
得分:1分
理由:学生给出了单链表结点的数据类型定义,基本结构正确,但存在以下问题:
1. 结构体名称使用了"plink"而不是更规范的"node"(虽然这不是错误,但不够标准)
2. 缺少typedef定义,无法直接使用plink作为类型名
3. 缺少指针类型的定义
扣1分,因为虽然基本结构正确,但不够完整和规范。
(3)得分及理由(满分8分)
得分:4分
理由:学生的算法实现存在以下逻辑错误:
1. 数组b的大小应该是n+1而不是n,因为|data|≤n,需要索引0到n
2. 数组初始化语法错误,int b[n]=[0]不是合法的C/C++语法
3. 变量名不一致,开始用p1,后面用p
4. 缺少对头结点的处理,直接使用head->link可能有问题
5. 在删除结点后,p指针没有正确移动,可能导致逻辑错误
6. 缺少malloc/free对辅助数组的动态分配和释放
7. 代码格式和注释不完整
虽然基本思路正确,但由于存在多个逻辑错误和语法问题,扣4分。
(4)得分及理由(满分2分)
得分:2分
理由:学生正确分析出了时间复杂度O(m)和空间复杂度O(n),与标准答案一致,因此得满分。
题目总分:3+1+4+2=10分
(1)
0 1 1 0 1
1 0 0 1 1
1 0 0 1 0
0 1 1 0 1
1 1 0 1 0
(2)A^2如下
3 1 0 3 1
1 3 2 1 2
0 2 2 0 2
3 1 0 3 1
1 2 2 1 3 表示从0到3距离为2的路径有3个
(3)从i到j距离为m路径的数量
评分及理由
(1)得分及理由(满分2分)
学生给出的邻接矩阵与标准答案完全一致,包括行列顺序和元素值都正确。因此得2分。
(2)得分及理由(满分4分)
学生计算出的A²矩阵与标准答案完全一致,并且对0行3列元素值的解释正确,准确说明了这是从顶点0到顶点3长度为2的路径数量。但学生没有明确写出"长度为2"这个关键描述,而是用了"距离为2",虽然意思相近但不够精确。考虑到核心概念正确,扣1分。因此得3分。
(3)得分及理由(满分2分)
学生的回答"从i到j距离为m路径的数量"基本正确,但表述不够严谨。标准答案明确说明了"长度为m的路径条数",而学生用了"距离"一词,在图论中"距离"通常指最短路径长度,而这里指的是固定长度的路径。不过考虑到学生理解了核心概念,扣0.5分。因此得1.5分。
题目总分:2+3+1.5=6.5分
(1)通用寄存器,程序计数器PC,ALU无暂存功能,采用暂存器保存一个操作数,进而保证ALU的两个输入端口同时有效
(2)ALUop为3位,SRop为两位
(3)用于暂存移位寄存器的结果,实现
(4)1,2,3,5,8
(5)6->9,4->7
(6)因为指令长度为16,即两个字节,顺序执行时PC要自加2,此时直接将2送入ALU
评分及理由
(1)得分及理由(满分3分)
学生答出了通用寄存器和PC是程序员可见的,得2分;对于暂存器T的作用,学生答出了“保存一个操作数,保证ALU的两个输入端口同时有效”,这与标准答案中“暂存端口A数据”的思路一致,但表述不够精确(标准答案强调单总线结构下无暂存器会导致ALU两端口数据相同的问题),但核心意思正确,因此扣0.5分。本小题得分2.5分。
(2)得分及理由(满分2分)
学生正确答出ALUop为3位、SRop为2位,与标准答案一致。得2分。
(3)得分及理由(满分2分)
学生答“用于暂存移位寄存器的结果”,这是不准确的。SRout控制的是三态门,用于控制移位寄存器输出到总线的通断,而非“暂存”功能。学生未答出关键点“三态门”或“控制连接/断开”,因此扣2分。本小题得分0分。
(4)得分及理由(满分2分)
学生答出了①、②、③、⑤、⑧,与标准答案一致。得2分。
(5)得分及理由(满分2分)
学生答“6->9,4->7”,但标准答案为“⑥→⑨”和“⑦→④”。学生将连线2的起点和终点写反了(应为⑦→④,而非4->7),数据流动方向错误,因此扣1分。本小题得分1分。
(6)得分及理由(满分2分)
学生正确解释了MUX一个输入端为2的原因:指令长度为16位(2字节),顺序执行时PC需加2。与标准答案一致。得2分。
题目总分:2.5+2+0+2+1+2=9.5分
(1)有7位操作码,最多可定义128条指令
(2)0240H,0488H,06EAH
(3)依次为,0,mov,mova,read,sub,mov,SRout
(4)sub需要4个时钟周期,inc需要两个时钟周期
评分及理由
(1)得分及理由(满分1分)
学生答案正确,指出7位操作码最多可定义128条指令,与标准答案一致。得1分。
(2)得分及理由(满分3分)
学生答案中三个指令的机器码分别为0240H、0488H、06EAH,与标准答案完全一致。得3分。
(3)得分及理由(满分4分)
学生答案中①、②、③、⑥、⑦、⑧正确,但④错写为"read"(应为"left"),⑤错写为"sub"(应为"read")。共8个空,每个0.5分,错误两个扣1分。得3分。
(4)得分及理由(满分2分)
学生答案正确指出sub需要4个时钟周期,inc需要2个时钟周期,与标准答案一致。得2分。
题目总分:1+3+3+2=9分
Semaphore emptyA=0;//信箱是否为空
Semaphore emptyB=0;
Semaphore muteA=1;
Semaphore muteB=1;
Semaphore fullA=M;//信箱内是否满
Semaphore fullB=N;
CoBegin
A{
while(true){
p(emptyA);
v(fullA);
p(muteA);
取邮件;
v(muteA);
回答并提出问题;
p(fullB);
p(muteB);
放进B信箱;
v(emptyB);
v(muteB);
}
B{
while(true){
p(emptyB);
p(muteB);
取邮件;
v(muteB);
回答问题并提出新问题;
p(fullA);
p(muteA);
将习邮件放入A信箱;
v(emptyA);
v(muteA);
}
评分及理由
(1)信号量定义及初值(满分2分)
得分:0分
理由:学生定义的信号量含义和初值存在严重错误。emptyA和emptyB初值为0,但实际应表示信箱空位数量,初值应为Empty_A=M-x和Empty_B=N-y;fullA和fullB初值为M和N,但实际应表示信箱中邮件数量,初值应为Full_A=x和Full_B=y。信号量含义与标准答案完全不符。
(2)A进程同步互斥操作(满分3.5分)
得分:0.5分
理由:A进程中使用了互斥信号量muteA保护取邮件操作,这是正确的(得0.5分)。但同步逻辑完全错误:在取邮件前应该P(Full_A)检查是否有邮件,而不是P(emptyA);应该V(Empty_A)释放空位,而不是V(fullA)。放入B信箱时的同步操作也完全错误。
(3)B进程同步互斥操作(满分3.5分)
得分:1分
理由:B进程中使用了互斥信号量muteB保护取邮件操作(得0.5分),放入A信箱时也使用了互斥信号量muteA(得0.5分)。但同步逻辑同样完全错误:取邮件前应该P(Full_B)而不是P(emptyB);放入A信箱时应该P(Empty_A)检查空位而不是P(fullA),应该V(Full_A)增加邮件数而不是V(emptyA)。
题目总分:0+0.5+1=1.5分
(1)页和页框大小均为4MB,逻辑地址空间大小为2^10页
(2)页目录项共有2^10个,即2^10*4B=4KB,页表项共有2^10*2^10*4B=4MB,所以页目录表和页表共占用2个页
(3)01000000H的页目录号为0000000100,01112048H的页目录号为0000000100H,二者相同,所以共访问一个二级页表
评分及理由
(1)得分及理由(满分2分)
得分:0分
理由:
(2)得分及理由(满分2分)
得分:0分
理由:
(3)得分及理由(满分2分)
得分:2分
理由:
题目总分:0+0+2=2分
(1)111.123.15.5/24----111.123.15.254.24,源IP地址为0.0.0,0,目的IP地址为255.255.255.255
(2)FF-FF-FF-FF-FF-FF,00-a1-a1-a1-a1-a1
(3)可以访问www服务器,因为位于同一网络内,可通过交换机转发,不可访问Internet,因为网关配置错误,无法正确转发。
评分及理由
(1)得分及理由(满分3分)
学生答案:DHCP地址范围写为"111.123.15.5/24----111.123.15.254.24",其中"111.123.15.5/24"表示方法不规范,且".254.24"格式错误,但数值范围正确;源IP地址"0.0.0.0"正确,目的IP地址"255.255.255.255"正确。扣1分,因为地址范围表述不规范且有错误。得2分。
(2)得分及理由(满分2分)
学生答案:第一个以太网帧目的MAC地址"FF-FF-FF-FF-FF-FF"正确(标准答案中为小写ff,但大小写不扣分);封装IP分组的以太网帧目的MAC地址"00-a1-a1-a1-a1-a1"正确。得2分。
(3)得分及理由(满分4分)
学生答案:判断"可以访问www服务器"正确,理由"位于同一网络内,可通过交换机转发"正确;判断"不可访问Internet"正确,理由"网关配置错误,无法正确转发"正确。但未具体说明正确网关地址应为111.123.15.1,而错误配置为111.123.15.2,理由不够完整。扣1分,得3分。
题目总分:2+2+3=7分