有以下程序: #include<stdio.h> 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]

admin2021-04-28  17

问题 有以下程序:
    #include<stdio.h>
    int fun(int(*s)[4],int n,int k)
    {  int m,i;
    m=s[0][k];
    for(i=l;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://jikaoti.com/ti/rmz0FFFM
0

最新回复(0)