有以下程序     #include <stdio.h>     void fun(int a[],int n)    { int i,t;       for(i=0;i<n/2;i++) {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]

admin2009-08-25  28

问题 有以下程序     #include <stdio.h>     void fun(int a[],int n)    { int i,t;       for(i=0;i<n/2;i++) {t=a; a=a[n-1-i]; a[n-1-i]=t;}    }    main()      {int k[10]={1,2,3,4,5,6,7,8,9,10},i;       fun(k,5);         for(i=2;i<8;i++) printf("%d",k);       printf("\n");    }    程序的运行结果是______。

选项 A、345678
B、876543
C、1098765
D、321678

答案D

解析 在主函数中,定义了一维数组k,并通过调用fun函数将形参数组a指向实参数组k所在的存储单元,这样,a和 k共用同一存储单元,所以对数组a的元素值的改变相当于对相应数组k的元素值的改变。在fun函数中,通过for循环对数组元素a[0]与a[4]、a[1]与a[3]的值分别作了交换,也即相当于主函数中k[0]与k[4]、k[1]与k[3]的值分别作了交换,此时k中各元素的值为5,4,3,2,1,6,7,8,9,10,故输出k[2]到k[7]的值为321678。
转载请注明原文地址:https://jikaoti.com/ti/MbI0FFFM
0

最新回复(0)