给定程序中,函数fun()的功能是找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#include<stdio.h>
#define N 4
void fun(int(*a)IN],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][j])b[i]=a[j][j];
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:\a");
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");
参考答案:(A)a[0][i] (B)< (C)x,y
解析: 本题中函数fun()的功能是找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。在fun()函数内,多次寻找最大值,两个循环嵌套就可以满足题干要求。
第一空:第二个循环是寻找每列的最大值,方法是用最大值变量b[i]标记第一个待找数据,然后逐个把所有待找数据和b[i]进行比较,并用b[i]标记其当前最大值,从而找出最大值。因此,第一空处为第一个待找数据“a[0][i]。
第二空:由上述的分析可知,如果b[i]小于a[j][i],那么用b[i]标记其当前最大值,故第二空处为“<”。
第三空:fun()函数的声明格式为:void fun(int(*a)[N],int *b)。函数的两个参数均是指针,故在主函数内fun()函数的调用格式为“fun(x,y)”,x是二维数组首地址,y是一维数组首地址。因此,第三空处应填写“x,y”。
[考点] 函数功能,指针操作。