问题
单项选择题
有以下程序: void fun(int*a,int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t;}fun(a,++i,--j); } } main() { int a[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++) printf("%d",a[i]); } 执行后的输出结果是 ______。
A.6 5 4 3 2 1
B.4 3 2 1 5 6
C.4 5 6 1 2 3
D.1 2 3 4 5 6
答案
参考答案:A
解析: 本题考查指针变量作函数形参的问题。指针变量作函数的形参,实现的是地址传递,形参的改变可以影响实参。fun由数的功能是将a所指数组中的内容逆置。在main函数中调用fun函数后,实参数组s中元素的值变为:a[0]=6、 a[1]=5、a[2]=4、a[3]=3、a[4]=2、a[5]=1。