以下程序调用fmdmax函数返回数组中的量大值: findmax(int *a,int n) { int *p,*s; for(p=a,s=a;p-a<n;p++) if(______)s=p; re

admin2009-01-15  37

问题 以下程序调用fmdmax函数返回数组中的量大值:    findmax(int *a,int n)    {  int *p,*s;       for(p=a,s=a;p-a<n;p++)          if(______)s=p;       return(*s);    }    main()    { int  x[5]={12,21,13,6,18};      printf("%d\n",findmax(x,5));    }   在下划线处应填入的是(  )。

选项 A、p>s
B、*p>*s
C、a[p]>a[s]
D、p-a>p-s

答案2

解析 在main()函数中定义了一个具有5个元素的x数组并赋初值,然后调用findmax()函数求数组中元素的最大值。调用时把数组元素x的首地址,传给了形参指针变量a,把5传给形参n。在函数findmax()中定义了两种指针变量p和s,其中。用来记录最大元素的地址,p作为循环控制变量,表示每个元素的地址。求最大值的算法是先将第一个元素(用s记下它的地址)做为最大值,然后用最大值(*s)与后面的每个元素比较(*p),若后面的元素大,则用s记下它的地址,所以下划线应填“*s<*p”或“*p>*s”。所以,4个选项中B为所选。
转载请注明原文地址:https://kaotiyun.com/show/3FXp777K
0

最新回复(0)