以下程序运行后输入:3,abcde<回车>,则输出结果是 【17】 。
#include<string.h>
move(char *str,int n)
char temp;int i;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
main()
char s[50];int n,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
参考答案:cdeaB
解析:从分析知道move()函数的作用,是将形参str所指的数组依次向后左移一位,即让该数组第一个元素的值等于第二个元素的值,接着让第二个元素的值等于第三个元素的值,直到该数组最后第二个元素的值等于最后一个元素的值,然后让第一个元素等于最后一个元素的值。主函数中用了一个for循环调用move()函数,共循环三次。当i=1时,第一次调用move()函数,使输入到数组的9的字符串“abcde”变为“eabcd”,当i=2时,第二次调用move()函数,使字符串“eabcd”变为“deabc”,当i=3时,第三次调用move ()函数,使字符串“deabc”变为“cdeab”,故最后输出的值为“cdeab”,故该空格处应该填“edeab”。