有以下程序: 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); } }

admin2010-09-05  33

问题 有以下程序:    void fun(int*a,int i,int j)    { int t;    if(i<j)      {  t=a;a=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);    }    执行后的输出结果是 ______。

选项 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。
转载请注明原文地址:https://jikaoti.com/ti/8hI0FFFM
0

最新回复(0)