以下程序运行后的输出结果是【 】。 #include <string.h> char *ss(char *s) {char *p;t; p=s+1;t=*s; while(*p){*(p-1)=*p;p++;}

admin2009-01-15  27

问题 以下程序运行后的输出结果是【  】。
   #include  <string.h>
   char *ss(char  *s)
   {char  *p;t;
    p=s+1;t=*s;
    while(*p){*(p-1)=*p;p++;}
    *(p-1)=t;
    return  s;
   }
   main()
   { char *p,str[10]="abcdergh";
     p=ss(str);
     printf("%s\n",p);
   }

选项

答案bcdefgha

解析 在本题定义的ss()函数中首先定义了一个指针p和一个字符变量t,然后让p指向参数指针s的下一个位置s+1,并让t保存s位置的字符。然后使用一个while循环将p指向的内容赋给它前面一个位置,即将参数s所指的字符串从第2个字符开始整体往前移动一位。循环结束时,p指向原s串的结束标志处,所以让*(p-1)=t;即是将原s串的第1个字符复制到s串的最后一个位置。整个函数实现的是让一个字符串循环左移一位。故主函数中最后输出的字符串是"bcdefgha"。
转载请注明原文地址:https://jikaoti.com/ti/x6K0FFFM
0

最新回复(0)