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

admin2009-01-15  23

问题 有以下程序:    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

答案1

解析 本题的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。
转载请注明原文地址:https://jikaoti.com/ti/C5K0FFFM
0

最新回复(0)