填空题 有以下程序: 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]); } 程序运行后的输出结果是{{U}} 【7】 {{/U}}。
  • 1、
【正确答案】 1、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。