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

admin2013-02-23  34

问题 以下程序运行后输入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()函数的作用,是将形参s仕所指地址的连续n位循环右移1位,即让str[n-1]=str[n-2],str[n-2]=str[n-3],…, str[1]=str[0],str[0]=str[n-1](原)。主函数中用了一个for循环调用move()函数,共循环3次,所以数组s被循环右移了3位,故最后输出的值为cdeab。
转载请注明原文地址:https://kaotiyun.com/show/ydPp777K
0

最新回复(0)