问题 单项选择题

有以下程序:
#include <stdio.h>
void fun(int *s, int n1, int n2)
int i, j, t;
i=n1; 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) 049382716
B) 05948372615
C) 5678901234
D) 0987651234

答案

参考答案:C

解析: 函数fun(int*s, int n1, int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a, 0, 3)执行完后,数组a[10]=(4, 3, 2, 1, 5, 6, 7, 8, 9, 0);再执行fun(a, 4, 9),数组a[10]={4, 3, 2, 1,0, 9, 8, 7, 6, 5};再执行fun(a, 0, 9)后,数组a[10]={5, 6, 7, 8, 9, 0, 1, 2, 3, 4}。

单项选择题
多项选择题