请补充函数fun(char *s),该函数的功能是把字符串中的内容逆置。 例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为edcba。 注意;部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函

admin2010-05-05  25

问题 请补充函数fun(char *s),该函数的功能是把字符串中的内容逆置。
   例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为edcba。
   注意;部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
   $include<string.h>
   #include<conio.h>
   #include<stdio.h>
   #define N 81
   void fun(char*s)
   {
      int i=0,t,n=strlen(s);
      for(;【  】;i++)
      {
        t=*(s+i);
          【  】;
          【  】;
      }
   }   
   main()
   {   
      char a[N];
      clrscr();
      printf("Enter a string:");
      gets(a);
      printf("The original string is:");
      puts(a);
      fun(a);
      printf("\n");
      printf("The string after modified:");
      puts(a);
   }

选项

答案i<n/2或s+i<s+n-1-i或i<n-1-I *(s+i)=*(s+n-1-i) *(s+n-1-i)=t

解析 第一空:将字符串的内容逆置,实际上就是将第一个字符和最后一个字符交换,再将第二个字符与倒数第二个字符交换,依此类推,直到中间的字符为止。所以,长度为n的字符串需要交换的次数为n/2。还可以这样理解,交换时始终保持顺数的字符在倒数的字符前面。第二空:顺数第i个字符为*(s+i),倒数第i个字符为*(s+n-1-i)。第三空:掌握利用第三个变量进行变量交换的方法。本题中,第三个变量为t。
转载请注明原文地址:https://jikaoti.com/ti/NKkiFFFM
0

最新回复(0)