问答题 给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 试题程序: 1 #include<stdio.h> 2 #define N 4 3 void fun(int(*a)[N],int*b) 4 { int i,j; 5 for(i=0;i<N;i++){ 6 /*********found*********/ 7 b[i]= 【1】 ; 8 for(j=1;j<N;j++) 9 /*********found*********/ 10 if(b[i] 【2】 a[j][i]) 11 b[i]=a[j][i]; 12 } 13 } 14 main() 15 { int x[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3)},y[N],i,j; 16 printf("\nThe matrix:\n"); 17 for(i=0;i<N;i++) 18 {for(j=0;j<N;j++) 19 printf("%4d",x[i][j])j 20 printf("\n"); 21 } 22 /*********found*********/ 23 fun( 【3】 ); 24 printf("\nThe result is:"); 25 for(i=0;i<N;i++) 26 printf("%3d",y[i]); 27 printf("\n"); 28 }
【正确答案】正确答案:(1)a[0][i] (2)< (3)x,y
【答案解析】解析:填空1:数组h用于存放每列元素中的最大值,首先将第i列的第一个数赋给b[i],然后用b[i]与其他数进行比较,因此此空应填a[0][i]。 填空2:if条件表达式表示当h[i]小于a[j][i]时,就把a[j][i]的值赋给b[i],因此此空应该填<。 填空3:fun函数的调用,通过tim(int(*a)[N],int*b)可知,此空应该填x,y。