问答题
给定程序中,函数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。