有以下程序 #include <stdio.h> #include <string.h> void fun (char *w, int m ) { char s, *p1, *p2; p1=

admin2021-04-28  15

问题 有以下程序
     #include <stdio.h>
     #include <string.h>
     void  fun (char  *w, int  m )
     {  char  s, *p1, *p2;
        p1=w;    p2=w+m-1;
        while ( p1<p2 )
           {
              s=*p1;  *p1=*p2;  *p2=s;
              p1++;  p2--;
           }
     }
     main()
     {  char  a[ ]="123456";
        fun ( a, strlen(a) );    puts(a);
     }
程序运行后的输出结果是

选项 A、123456
B、116611
C、161616
D、654321

答案D

解析 主函数中调用fun(a,6)后,指针p1指向字符串中的"1"、p2指向字符串中的"6"。While循环中,只要p1<p2,则把p1、p2所指向的字符互换,同时p1前移,p2后移。最终字符串逆序存放。因此D选项正确。
转载请注明原文地址:https://jikaoti.com/ti/RDz0FFFM
0

最新回复(0)