问题 问答题

有以下程序
void fun(int *a, int i, int j)
int t;
if(i<j)
t=a[i]; a[i]=a[j]; a[j]=t;
i++ ; j-- ;
fun(a,i,j);


main()
int x[]=2,6,1,8,i;
fun(x,0,3);
for(i=0;i<4; i++)printf("%2d",x[i]);

程序运行后的输出结果是______。

答案

参考答案:C

解析: 本题中,fun函数是实现了数组内部两个元素位置的交换。首先,在主函数中,调用到fun函数的时候进行if条件的判断,此时i=0,j=3,满足条件,因此,数组中第一个元素和第四个元素进行交换;在fun函数中还有一个递归调用,此时i=1,i=2,仍然满足条件,再进行一次交换,此时第二个元素和第三个元素进行交换;最后i=2,j=1,不满足条件,因此递归结束。最后数组x中存放的数据为{8,1,6,2

多项选择题
单项选择题