以下程序运行后输入:3,abcde<回车>,则输出结果是______。 #include <string. h> move (char *str,int n) { char cemp; int i; temp=str[n-1]; f

admin2013-02-23  26

问题 以下程序运行后输入:3,abcde<回车>,则输出结果是______。
#include  <string. h>
move  (char  *str,int n)
{   char  cemp; 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()函数的作用,是将形参str所指的数组依次向后左移一位,  即让该数组第一个元素的值等于第二个元素的值,接着让第二个元素的值等于第三个元素的值,直到该数组最后第二个元素的值等于最后一个元素的值,然后让第一个元素等于最后一个元素的值。主函数中用了一个for循环调用move()函数,共循环三次。当i=1时,第一次调用move()函数,使输入到数组的s的字符串“abcde”变为“eabcd”,当i=2时,第二次调用move()函数,使字符串“eabcd”变为“deabc”,当i=3时,第三次调用move()函数,使字符串“deabc”变为“cdeab”,故最后输出的值为“cdeab”,故该空格处应该填“cdeab”。
转载请注明原文地址:https://kaotiyun.com/show/V6Jp777K
0

最新回复(0)