有以下程序 #include <stdio.h> #include <string.h> void fun( char *s, int m1, int m2 ) { char t, *p; p=s + m1; s= s+m2; wh

admin2020-06-16  30

问题 有以下程序
#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、12345678

答案A

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

相关试题推荐
最新回复(0)