填空题
以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空。
void fun(int,int,int(*)[4],int *);
main()
int a[3][4]=12,41,36,28,19,33,15,27,3,27,19,11,b[3],j;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("/n");
void fun(int m,int n,n tar[][4],int *bar)
int i,j,x;
for(i=0;i<m;i++)
x=ar[i][0];
for(j=0;j<n;j++) if(x<ar[i][j])x=ar[i][j];
______=x;
【正确答案】
1、br[i]或*(br+i)
【答案解析】[解析] 本题考查求最大值算法。求最大值算法要求在输入的一组数中找出最大的输出。通常做法是:将一组数的第一个值保存到结果变量中,然后用一个指针或者循环变量往后遍历所有的这组数,同时比较结果变量和被遍历的值,若该值比结果大,则把该值保存到结果中。本题中数组a就是算法的输入值,传给函数fun()的3和4代表输入数据的行列数,起到限制循环次数的作用。而传给函数的一维数组b没有初始化,而最后把b输出,说明数组b用来保存每行的最大值。函数中有一个二重for循环,在外层循环中,先将ar[i][0]的值赋给x,然后在内循环中比较x和ar[i][j],并使x保存较大值,最后应当将结果值写到数组b中,也就是形参bar中。所以在下画线处应填入br[i]或*(br+i)。