有以下程序 #include int fun(int (*s)[4], int n, int k) { int m, i; m=s[0][k]; for(i=1; i<n; i++) if(s[i][k]>m) m= s[i][k]; ret

admin2019-12-17  30

问题 有以下程序
#include
int  fun(int   (*s)[4], int n, int k)
{  int   m, i;
m=s[0][k];
for(i=1; i<n; i++)
if(s[k]>m)
m= s[k];
return  m;
}
main()
{  int a[4][4]={{1,2,3,4},
   {11,12,13,14},
   {21,22,23,24},
   {31,32,33,34}};
printf("%d\n",fun(a,4,0));
}
程序的运行结果是

选项 A、4
B、34
C、31
D、32

答案C

解析 本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4、0,这样对应定义fun函数首部也有三种形式,这里采用了第一种形式,也就是行指针,这样在fun函数对s[j]进行操作实际上就是对主函数中的a[j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/D6Cp777K
0

相关试题推荐
最新回复(0)