填空题
给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#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]
2a[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。