文章

164

粉丝

0

获赞

1

访问

89.4k

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

(1)某点的入度即为临接矩阵中该所对应的列中不为0的值总和,出度即为改点邻接矩阵所对应的行中不为0的值总和,采用一个count记录K节点个数,对于每个节点,依次遍历其所在行和所在列得到入度和出度值,若满足出度大于入度,则count++,最后输出count即可

(2)

int printVertices(MGraph G)

int count=0;

for(int i=0;i<numVertices;i++)

{

int indegree=0;

int outdegree=0;

for(int j=0;j<numVertices;j++)

{

outdegree+= M.Edge[i][j];

indegree+= M.Edge[j][i];

}

if(outdegree>indegree)count++;

}

return count;


评分及理由

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

得分:4分

理由:学生的设计思想描述清晰正确。准确指出了通过遍历邻接矩阵的行来计算顶点的出度(对应行非零元素之和),通过遍历邻接矩阵的列来计算顶点的入度(对应列非零元素之和),然后比较出度和入度,统计满足出度大于入度的顶点个数。思路与标准答案完全一致。

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

得分:6分

理由:代码逻辑基本正确,能够实现统计K顶点个数的核心功能。但存在以下错误和不足:

  • 代码中使用了未定义的变量名 numVerticesM.Edge,应为 G.numVerticesG.Edge。这是严重的语法错误,属于逻辑错误,扣2分。
  • 题目要求"输出G中所有K顶点",即打印出K顶点的名称。代码中只统计了数量,没有输出顶点名称,功能不完整,扣1分。
  • 代码缺少必要的注释,不符合题目要求"并注释",扣0.5分(考虑到注释要求可能不是主要扣分点,此处酌情扣分)。

题目总分:4+6=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发