单选题 有以下程序:
#include
int fun(int(*s)[4],int n,int k)
{int m,i;
m=s[0][k];
for (i=l;i<n;i++)if (s[i][k]>m)m=s[i][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 B C D
C
[解析] 本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。在fun()函数中,首先将s[0][k]的值赋给m,然后通过for循环,遍历s[1][k]-s[n-1][k]之中的数,将遇到的比m大的数保存到m中。很显然,这是搜索最大值的算法,搜索的是s[0][k]~s[n-1][k]之间的最大值。所以,主函数中fun (a,4,0)的功能就是搜索a[0][0]-a[3][0]之间的最大值,这4个值分别是1、11、21、31,所以最终输出结果是31,应该选择C)。
【正确答案】 C
【答案解析】[解析] 本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。在fun()函数中,首先将s[0][k]的值赋给m,然后通过for循环,遍历s[1][k]-s[n-1][k]之中的数,将遇到的比m大的数保存到m中。很显然,这是搜索最大值的算法,搜索的是s[0][k]~s[n-1][k]之间的最大值。所以,主函数中fun (a,4,0)的功能就是搜索a[0][0]-a[3][0]之间的最大值,这4个值分别是1、11、21、31,所以最终输出结果是31,应该选择C)。