以下程序运行后,若输入:3,abcde <回车>,则输出结果是【 】。 #include <stdio.h> #include <string.h> move(char *str,int n) { char temp; i

admin2009-01-15  29

问题 以下程序运行后,若输入: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=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"。
转载请注明原文地址:https://kaotiyun.com/show/2zXp777K
0

相关试题推荐
最新回复(0)