选择题
31. 有以下程序:
#include<stdio.h>
#include<string.h>
void fun(char*s,int m1,int m2)
{ char t,*p;
p=s+m1;s=s+m2;
while(s<p)
{ t=*s;*s=*p;*p=t;
s++;p--;
}
}
main()
{ char ss[10]="012345678";
int n=6;
fun(ss,0,n-1);
fun(ss,9,n);
fun(ss,0,9);
printf("%s\n",ss);
}
程序运行后的输出结果是______。
【正确答案】
A
【答案解析】 函数fun(*ss,m1m2)的作用是,如果m1>m2,交换数组元素ss[m1]和ss[m2]。因此执行函数fun(ss,0,5)后,因为0<5,数组ss的元素值还是0,1,2,3,4,5,6,7,8,\0。执行函数fun(ss,9,6),因为9>5,交换数组元素,数组ss的元素值为0,1,2,3,4,5,\0,8,7,6。执行完函数fun(ss,0,9),函数的元素不交换,因此打印结果为012345。故答案为选项A。