问题 单项选择题

下列程序用来判断数组中特定元素的位置所在,则输出结果为( )。
#include<conio.h>
#include<iostream.h>
int fun(int*p,int n,int*j)
int i;
*j=0;
for(i=0;i<n;i++)
if(p[*j]<p[i])*j=i;
return p[*j];
void main()
int a[10]=1,3,9,0,8,7,6,5,4,2)j;int j;
fun(a,10,&j);
cout<<j<<’,’<<a[j];

A.2,9

B.3

C.9

D.3,9

答案

参考答案:A

解析: 由程序中的主函数main入手,调用fun函数。其中第一个实参为数组a的名字,数组名作为实参,传递的是数组的起始地址。所以在fun函数中指针D指向了数组的第一个元素a[0]。另外实参整型j传递的是引用,也就是j的地址。在fun函数中在for循环中,依次将当前元素p[i]与j指针值为标识的p[*j]进行比较,取较大的。最后循环后的结果就是p[*j]存放数组中的最大值,并且指针j为该值的标识位。可以看出数组的最大值是9标识位为2。

选择题
问答题 简答题