有以下程序:
#include
void fun(int a[],int n)
{
int i,t;
for(i=0;i
t=a[i];
a[i]=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[i]);
printf("\n");
}
程序运行的结果是( )。
在 main()函数中定义了一个有 10 个元素的数组 k, 并且赋初值为{1,2,3,4,5,6,7,8,9,10}。 执行函数fun(k,5), 把 k 的首地址赋给形参 a, 把 5 赋给形参 n。 在 fun()函数中, for 循环执行了 2 次: 第一次, i 的值为 0,循环体中将 a[0]与 a[4]的值互换; 第二次, i 值为 1, 这次是将 a[1]与 a[3]的值互换。 所以, fun()函数执行完后,数组 k 中的内容为{5,4,3,2,1,6,7,8,9,10}。 接下来, 循环输出 a[2]~a[7]的值, 故输出结果是 321678。 答案选择 D选项。