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

admin2009-04-15  24

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

最新回复(0)