问题 单项选择题

有以下程序:
#include<stdio.h>
void fun(int*s,int nl,int n2)
int i,j,t;
i=nl;j=n2;
while(i<j)t=s[i];s[i]=s[j];s[j]=t;i++;j--;

main()
int a[10]=1,2,3,4,5,6,7,8,9,0,k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");

程序运行的结果是______。

A) 0987654321
B) 4321098765
C) 5678901234
D) 0987651234

答案

参考答案:C

解析: 函数fun的功能是:将数组s中从n1至n2的元素首尾互换,然后将第2个和倒数第2个元素互换,依次类推,其实也就是将原来的元素倒置。执行fun(a,0,3);将数组a中的第0~3个元素互换,结果为4 32 1;执行fun(a,4,9);将数组a中的第4~9个元素互换,结果为0 9 8 7 65。此时a中的元素依次为4 3 2 1 0 9 8 7 6 5,执行fun(a,0,9);再次将这10个元素倒置,结果为5 6 7 8 9 0 1 2 3 4。

单项选择题
判断题