问题 单项选择题

有以下程序:
#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) 0987654321
B) 4321098765
C) 5678901234
D) 0987651234

答案

参考答案:C

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

判断题
选择题