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

评分及理由
(1)得分及理由(满分4分)
学生给出的算法基本设计思想是:定义一个计数数组c[k](k取值范围0~n),遍历原数组A,对每个元素a[i]在c数组对应位置计数,然后遍历c数组,找出计数大于n/2的元素并输出。该思路是正确可行的,能够找出主元素。虽然与标准答案的摩尔投票法不同,但思路正确,能够解决问题。因此第(1)问可以给满分。
得分:4分
(2)得分及理由(满分7分)
学生给出的代码实现与其设计思想一致:首先定义数组c,然后遍历A数组进行计数,之后遍历c数组寻找计数大于n/2的元素。代码逻辑基本正确,能够实现主元素的查找。但存在以下问题:
①代码中int c[n] = {0};在C语言中,数组大小必须是常量表达式,n是变量,这属于语法错误,不能在标准C语言中用变量定义数组大小(C99之后支持变长数组,但很多考试环境默认C89)。不过这属于实现细节,可视为小瑕疵。
②代码最后if(g) { return g; } else { return -1; }存在逻辑错误:当找到主元素且主元素值为0时,g=0,此时if(g)判定为假,会返回-1,错误地认为不存在主元素。这是一个明显的逻辑错误,会导致当主元素为0时算法结果错误。
由于存在上述逻辑错误,代码不能完全正确解决问题,因此不能给满分。但思路和大部分实现正确,可酌情扣分,建议扣2分。
得分:5分
(3)得分及理由(满分2分)
学生给出的时间复杂度为O(n),空间复杂度为O(n)。代码确实使用了两轮循环,每轮循环次数为n,时间复杂度为O(n);额外定义了一个长度为n的数组c,空间复杂度为O(n)。算法的时间复杂度和空间复杂度分析正确,与实现一致,因此可以给满分。
得分:2分
题目总分:4+5+2=11分

评分及理由
(1)得分及理由(满分5分)
学生第(1)问的作答为:“采用顺序存储,可采用二叉哈夫曼树,元素最下层应采用出现频次最低的,即p2和p3,再让p1或p4在上一层,然后剩下的在其的上一层。平均查找长度:1×0.35+2×0.35+3×0.3=1.95。采用二叉归并查找”。
核心问题:题目要求“采用顺序存储结构”,且要求“平均查找长度更短”。顺序存储时,元素是按物理位置连续存放的,无法构造类似二叉树的层次结构;折半查找或顺序查找的ASL取决于元素排列顺序,而哈夫曼树仅适用于二叉链表/二叉排序树等链式结构。因此,学生将“顺序存储”与“二叉哈夫曼树”结合是逻辑错误,不符合数据结构的基本原理。此外,学生给出的ASL计算式中3×0.3(0.3=0.15+0.15)与题目概率(p2=0.15、p3=0.15)不符,且计算过程与概率分配不一致,ASL结果1.95也无法由正确方法得出。虽然学生意图通过“频次高的放前面”来降低ASL,但并未明确给出元素排列顺序(如降序排列)以及采用顺序查找方法,且借鉴了错误的树形结构。按评分标准,未正确给出排列方式(2分)和查找方法(1分),ASL计算错误(2分),本问仅部分体现“概率高者优先”的思想,但整体作答不符合顺序存储的约束,不给分。
得分:0分
(2)得分及理由(满分5分)
学生第(2)问的作答为:“用链表存储保存S,也采用顺序查找,频次高的放前面,频次低的放后面。ASL = 1×0.35 + 2×0.35 + 3×0.15 + 4×0.15 = 2.1”。
该作答与标准答案一的思路完全一致:链式存储(单链表)、按查找概率降序排列、采用顺序查找方法,ASL计算为0.35×1 + 0.35×2 + 0.15×3 + 0.15×4 = 2.1,计算正确。学生明确给出了排列原则(频次高的放前面)、查找方法(顺序查找)和ASL值,满足评分要求(排列方式2分、查找方法1分、ASL计算2分)。第2次识别结果中ASL的“=21”应为“=2.1”的误写(漏了小数点),根据禁止扣分规则,判定为误写不扣分。
得分:5分
题目总分:0+5=5分

评分及理由
(1)得分及理由(满分6分)
学生答案正确完成了三项路由聚合:将153.14.5.0/25与153.14.5.128/25聚合为153.14.5.0/24,下一跳153.14.3.2,接口S0;将194.17.20.0/25与194.17.21.0/24聚合为194.17.20.0/23,下一跳194.17.24.2,接口S1;直接路由194.17.20.128/25,接口E0,无下一跳。三项路由项均与标准答案一致,目的网络、前缀长度、下一跳和接口均正确,路由项数量也控制在3条。每项得2分,共6分。
(2)得分及理由(满分1分)
学生答案正确指出目的地址194.17.20.200与194.17.20.128/25匹配,并通过E0接口转发。虽然未明确提及最长前缀匹配原则,但“网络前缀相同”的表述表明其理解了匹配逻辑,核心结论正确,得1分。
(3)得分及理由(满分2分)
学生答案正确指出R1与R2属于不同自治系统,使用BGP(或BGP4)协议,得1分;但BGP报文应封装到TCP协议段中传输,学生回答为“IP数据报”,与标准答案不符,也不符合BGP实际运行机制(BGP基于TCP),因此扣1分。此小问得1分。
题目总分:6+1+1=8分