文章

782

粉丝

21

获赞

1

访问

178.8k

头像
2023年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年12月15日 15:39
阅读数 200


评分及理由

(1)得分及理由(满分4分)

学生答案的设计思想描述为:“建立in和out变量用于循环计算顶点的出度和入度,然后用num统计出度大于入度的顶点的个数。” 该描述基本涵盖了算法的主要步骤:通过双重循环遍历邻接矩阵,计算每个顶点的出度和入度,并统计出度大于入度的顶点个数。但描述较为简略,未明确提及如何利用邻接矩阵元素值(0/1)来累加度数,也未说明需要输出顶点名称(仅提到统计个数)。标准答案要求输出顶点名称并返回个数,学生思想中未包含输出顶点名称的步骤。因此扣1分。

得分:3分

(2)得分及理由(满分9分)

学生提供的代码基本实现了算法核心逻辑:通过双重循环计算每个顶点的出度和入度,并判断出度是否大于入度以进行计数。但存在以下问题:

  1. 循环边界使用了MAXV而非实际顶点数G.numVertices,这会导致遍历无效的矩阵区域,可能访问未初始化的数据或增加不必要的计算。这是一个逻辑错误,扣2分。
  2. 代码未输出K顶点的名称,只进行了计数并返回。题目要求“输出G中所有K顶点”,标准答案中需打印顶点名称。缺少输出功能,扣2分。
  3. 代码中注释提到“MAXV为定义的顶点个数”,实际上MAXV是最大顶点数常量,并非实际顶点个数,但此为描述性错误,不扣分。
  4. 函数名在第二次识别中为PrintVertices(首字母大写),与题目要求的printVertices不完全一致,但C语言中函数名大小写不敏感,且可能为识别误差,不扣分。

其他部分逻辑正确,包括度数的计算和比较。

得分:5分

题目总分:3+5=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发