有以下程序: #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=

admin2021-04-28  18

问题 有以下程序:
#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、012345
B、876543210
C、876543
D、012345678

答案A

解析 fun(*ss,m1,m2)的作用是,如果m1>m2交换数组元素ss[m1],s8[m2]。因此,fun(ss,0,5)后ss的0,1,2,3,4,5,6,7,8,\0。fun(ss,9,6)后ss的0,1,2,3,4,5,\0,8,7,6。fun(ss,0,9)后s8的O,1,2,3,4,5,、0,8,7,6。因此打印结果012345。故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/3Ftp777K
0

最新回复(0)