文章

92

粉丝

68

获赞

0

访问

11.3k

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

(1) 两次for循环统计所有节点的入度和出度,分别存储到数组indegrees[MAXV]和outDegrees[MAXV]. 最后统计所有出度大于入度的顶点,总数计入nCount;

(2)  

int printVertices(MGraph G){

int inDegrees[MAXV]=0;int OutDegrees[MAXV]=0; int nCount=0;

for (int i ;i<=G.numVertices;i++)

    for( (int j ;j<=G.numVertices;j++))

         if(G.Edge[ i ][ j ] = 1)

         {inDegrees[ j ]++;outDegrees[i]++;}

//所有节点入度出度已经计算完毕

for (int k ;k<=G.numVertices;k++)

    if( outDegrees[k] > inDegrees[k] )

    {printf(k);   nCount++}

//K顶点总数已经计算至nCount;

return nCount;

}


评分及理由

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

得分:4分

理由:学生给出了清晰的设计思想。第一步,通过两次循环(实际是嵌套循环)遍历邻接矩阵,统计所有顶点的入度和出度,并分别存储在数组中。第二步,遍历所有顶点,找出出度大于入度的顶点(K顶点)并计数。该思路与标准答案一致,且逻辑正确,因此得满分。

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

得分:4分

理由:学生的代码实现了基本算法框架,但存在多处语法错误和逻辑缺陷,具体扣分点如下:

  1. 数组初始化错误:int inDegrees[MAXV]=0;int OutDegrees[MAXV]=0; 在C/C++中不能对整个数组用单个值初始化,应使用循环或 memset 初始化为0。扣1分。
  2. 循环变量未初始化:for (i...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发