下列给定程序中函数fun的功能是:用插入排序法对字符串中的字符进行升序排列。插入法的基本算法是:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中……待排序的字符串已在主函数中赋予。

admin2015-11-24  28

问题 下列给定程序中函数fun的功能是:用插入排序法对字符串中的字符进行升序排列。插入法的基本算法是:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中……待排序的字符串已在主函数中赋予。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
#include<string.h>
#include<stdio.h>
#define N 80
void insert(char*aa)
{
    int i,j,n;char ch,
/**********found***********/
  n=strlen[aa];
  for (i=1,i<n,i++)
  {
/**********found***********/
   c=aa
   j=i一1;
    while((j>=0)&&(ch<aa[j]))
    {
    aa[j+1]=aa[j];
    j一一;
    }
    aa[j+1]=ch;
    }
}
voidmain()
{
    char a[N]=“QWERTYUIOPASDFGHJKLMNBVCXZ”;
    printf (“The original string:%s
\n”,a);
    insert(a);
    printf(“The string after sorting:
%s\n\n”,a);
}

选项

答案(1)n=strlen(aa); (2)ch=aa[i];

解析  插入排序算法:先对字符串中的前两个元素进行排序,然后第三个元素插入到前两个元素中,三个元素依然有序,依此类推,完成排序。
    (1)此处考查strlen函数的格式,应改为strlen(aa)。
转载请注明原文地址:https://jikaoti.com/ti/ctkiFFFM
0

最新回复(0)