问题 单项选择题

有以下程序:
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.654321

B.432156

C.456123

D.123456

答案

参考答案:A

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

单项选择题
单项选择题