有以下程序: void change(int k[]){k[0]=k[5];} main() { int x[10]=(1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4) {change(&x[n]);n++;}for(n=0;n<5;n++) printf("%d",x[n]);printf("\n"); } 程序运行后输出的结果是( )。
A.6 7 8 9 10
B.1 3 5 7 9
C.1 2 3 4 5
D.6 2 3 4 5
参考答案:A
解析: 本题的change()函数实现的是:将传入的地址值的高5个单位的地址中的内容复制到传入的地址当中,即等价于*k=*(k+5)。在主函数中,首先通过while循环,循环5次调用change()函数,依次将x[0]~x[4]的地址传入,所以while循环结束后,x[0]~x[4]中的内容等于x[5]~x[9]中的内容。所以输出结果为6 7 8 9 10,故应该选择A。