问题
单项选择题
有以下程序:
#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)。