填空题 有以下程序:
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");
程序运行后输出的结果是______。

  • 1、
【正确答案】 1、6 7 8 9 10    
【答案解析】[解析] 本题考查的是数组名用作函数的参数。数组名代表数组的首地址,因此,如果用数组名作形参,在调用函数时可以传递一个指针作为实参。在函数中,形参数组将以传入的指针的值作为首地址。所以本题的change()函数实现的是:将比传入的地址值高5个单位的地址中的内容复制到传入的地址当中,即等价于*k=*(k+5)。在主函数中,首先通过while循环,循环5次调用chanae()函数,依次将x[0]~x[4]的地址传入,所以while循环结束后,x[0]~x[4]中的内容等于x[5]~x[9]中的内容。所以输出结果为6 7 8 9 10。