填空题 以下程序运行后的输出结果是{{U}} 【14】 {{/U}}。 #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); }
  • 1、
【正确答案】 1、bcdefgha    
【答案解析】[解析] 在本题定义的ss()函数中首先定义了一个指针p和一个字符变量t,然后让p指向参数指针s的下一个位置s+1,并让t保存s位置的字符。然后使用一个while循环将p指向的内容赋给它前面一个位置,即将参数s所指的字符串从第2个字符开始整体往前移动一位。循环结束时,p指向原s串的结束标志处,所以让*(p-1)=t;即是将原s串的第1个字符复制到s串的最后一个位置。整个函数实现的是让一个字符串循环左移一位。故主函数中最后输出的字符串是"bcdefgha"。