问题
填空题
以下程序运行后的输出结果是______。 #include<stdio.h> void fun(int *a) { a[0]=a[1]; } main() { int a[10]={10, 9, 8, 7, 6, 5, 4, 3, 2, 1}, i; for(i=2; i>=0; i--) fun(&a[i]); for(i=0; i<10; i++) printf("%d", a[i]); printf("\n"); }
答案
参考答案:7777654321
解析: 函数的功能是将输入的指针所指向的后一个变量赋给指针指向的变量。第一个for循环,i为2满足条件,将a[3]赋值给a[2],数组变为{10, 9, 7, 7, 6, 5, 4, 3, 2, 1},同理第二次循环数组变为{10, 7, 7, 7, 6, 5, 4, 3, 2, 1},第三次为{7, 7, 7, 7, 6, 5, 4, 3, 2,1},运行此次循环后退出第一个for循环。第二个for循环为输出数组的值,因此答案为7777654321。