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

admin2009-08-25  18

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

解析 在主函数中,定义并初始化了4行4列的二维数组a,并通过调用fun函数,将fun函数中指向一维数组的指针变量s指向了二维数组a的首地址,使得指针变量s与数组a共用同一存储单元。在fun函数中,通过for循环,求得了数组a第0列中最大的值,并赋给m返回主函数。由于数组a第0列的值分别为1、11、21、31,故其最大值是31。
转载请注明原文地址:https://jikaoti.com/ti/sbI0FFFM
0

最新回复(0)