问题
填空题
以下程序运行后的输出结果是______。
#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]="abcdefgh";
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”。