问题 单项选择题

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

单项选择题
问答题 简答题