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

admin2010-09-05  29

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

选项

答案8 1 6 2

解析 第一次调用函数fun时,x[0]=2、xL1]=6、x[2]=1、x[3]=8,执行完函数fun后,x[0]与x[3]的值互换,即x[0]=8、x[1]=6、x[2]=1、x [3]=2;第二次调用函数fun时,i=1、j=2,故将x[1]与x[2]的值互换,即得x[0]=8、x[1]=1、x[2]=6、x[3]=2。
转载请注明原文地址:https://kaotiyun.com/show/COWp777K
0

最新回复(0)