问题 填空题

以下程序运行后,若输入:3,abcde <回车>,则输出结果是 【11】 。 #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("%s\n",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"。

单项选择题
单项选择题