请补充函数fun(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码降序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传入。 例如,如果输入“cdefgh”,则输出为“hgfedc”。 注意:部分源程序给出如下。

admin2010-09-14  27

问题 请补充函数fun(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码降序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传入。
   例如,如果输入“cdefgh”,则输出为“hgfedc”。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
   #include <stdio.h>
   #define N 80
   void fun (char s [], int n)
  {
       int i, j;
       char ch;
       for (i=0; i<n; i++)
             for(j=【  】;j<n;j++)
                    if (s<s [j])
                {
                            ch=s [j];
【  】;
                            s =ch;
  }
  main ( )
  {
       int i=0, strlen=0;
       char str [N];
       clrscr ();
       printf ("\nInput a string: \n");
       gets (str);
       while (str !=’ \0’)
     {
             strlen++;
             i++;
     }
       fun (str, strlen);
       printf ("\n***display string ***\n");
       puts (str);
  }

选项

答案I s[j]=s[i]

解析 第一空:本题采用选择法进行排序。选择法的算法思路是:如果有n个数则从头到倒数的第2个数一个一个往后走动,每走动一个数总是将这个数与其后的所有数进行两两比较,在比较时按题目要求的顺序将进行比较的这两个数排序 (即交换)。理解了选择法的思路,则此空就非常简单了,应该填i。第二空:借助第三个变量交换两数的方法,非常重要也非常基础,必须要求掌握。
转载请注明原文地址:https://jikaoti.com/ti/NIkiFFFM
0

最新回复(0)