问题
单项选择题
有以下程序
void fun(int *a,int i,int j)
in 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()中有3个参数,参数。为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a,从下标为i的元素到下标为j的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0]到a[5]之间的所有元素反序存放,最后输出从a[1]到a[5]的值,因此输出的值为6、5、4、3、2、1。