B083

01-程序填空题 田少松, 软件154 344浏览

所属年份:2011.3;2011.9

给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>
#define  N  4
void fun(int  (*a)[N], int  *b)
{ int  i,j;
  for(i=0; i<N; i++) {
/**********found**********/
    b[i]=__1__;
    for(j=1; j<N; j++)
/**********found**********/
        if(b[i]__2__ a[j][i])
		   b[i]=a[j][i];
  }
}

main()
{ int  x[N][N]={ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[N],i,j;
  printf("\nThe matrix :\n");
  for(i=0;i<N; i++)
  {  for(j=0;j<N; j++) printf("%4d",x[i][j]);
     printf("\n");
  }
/**********found**********/
  fun(__3__);
  printf("\nThe result is:");
  for(i=0; i<N; i++)  printf("%3d",y[i]);
  printf("\n");
}

【参考答案】

(1)a[0][i]  
(2)<  
(3)x,y

【解题思路】
填空1:数组b用于存放每列元素中的最大值,首先将第i列的第一个数赋给b[i],然后用b[i]与其他数进行比较,因此此空应填a[0][i]。
填空2:if条件表达式表示当b[i]小于a[j][i]时,就把a[j][i]的值赋给b[i],因此此空应该填<。 填空3:fun函数的调用,通过fun(int (*a)[N], int *b)可知,此空应该填x,y。