A-A+
以下程序运行后 若输入:3 abcde <回车> 则输出结果是【 】。 include <s
问题详情
以下程序运行后,若输入:3,abcde <回车>,则输出结果是【 】。 include <stdio.h> 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("%sn",s); }
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:cdeab
程序中的move函数的作用是保存输入数组中的最后一个元素,然后从最后一个数组元素开始,依次向后移动一个位置,再把保存的最后一个元素置于首位,循环次数由n控制。输入3,abcde<回车>后主函数开始执行,其中n=3,s[50]={"abcde"},z=5。第一次循环,i=1时,调用move(s,5)函数,temp=str[4]语句把数组中最后一个元素"e"保存在temp中,然后i从4开始循环,将str[3](字符"d")赋给str[4],str[2](字符"c")赋给str[3],……,循环结束时str所指字符串为"aabcd",再将保存在temp中的"e"置于首位,字符串变为"eabcd";i=2时,调用move函数,字符串为"deabc";i=3时,调用move函数,字符串为"cdeab"。最后输出结果为"cdeab"。