选择题

以下程序中函数 reverse 的功能是将 a 所指数组中的内容进行逆置。
void reverse(int a [ ], int n)
{
int i, t;
for(i=0;i<n/2;i++)
{t=a[i]; a[i] =a[n-1-i];a[n-1-i]=t; }
}
main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10}; int i, s=0;
reverse(b,8);
for(i=6;i<10;i++) s+=b[i];
printf("%d\n", s);
}
程序运行后的输出结果是

【正确答案】 A
【答案解析】

本题考查的知识点是数组名作为函数参数及函数调用。 reverse()数的功能是将具有 n 个元素的数组 a 反序存放。 在主函数中调用语句是“reverse(b, 8); ”, 实现的功能是把 b 数组的前八个元素逆置, 所以 b 数组中依次存放的值为“8, 7, 6, 5, 4, 3, 2,1, 9, 10”。 for 循环了 4 次, 分别把 b[6]、 b[7]、 b[8]和 b[9]的值(分别是 2、 1、 9、 10)加到了 s 中, s 的结果是 22, 所以最后输出的 s 值为 22。 所以 4 个选项中 A 正确。