给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长

admin2015-08-23  32

问题 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
#include
#include
#define M 5
#define N 20
void fun(char(*Ss)[N])
{  int i,j,k,n[M];char t[N];
    for(i=0;  i=strlen
(ss);
    for(i=0;i    {  k=i ;
/**********found**********/
    for(j=_____1 _____;j/**********found**********/
    if(n[k]>n[j]) _____2 _____;
    if(k!=i)
    {  strcpy(t,ss);
    strcpy(ss,ss[k]);
/**********found**********/
    strcpy(ss[k],_____3 _____);
    n[k]=n
    }
  }
}
main()
{  char ss[M][N]={"shanghai",
"guangzhou","beijing","tianjing",
"cchongqing"};
  int i;
  printf("\nThe original strings
are:\n");
    for(i=0; iss);
  printf("\n");
  fun(ss);
  printf("\nq?he result:\n");
  for(2=0;iss);
}

选项

答案(1)i+1 (2)k=j (3)t

解析 函数fun的功能是用是选择排序对M个字符串由短到长进行排序。
第一空:由审题分析可知,外循环i=0时,内循环变量从i+l到M-1(下标从0开始),从M.1个字符串中再挑出一个最短的字符串,故第一空处应为“i+1”。
第二空:k记录最短字符串的下标,内循环开始前k赋初值i,内循环从剩下的M。i个字符串里面找最短的,比较k字符串和j字符串的长度大小,如果n[k]>n[j],则把j赋给k,即第二空处应为“k=j”。
第三空:if(k!=i)说明找到了新的更短的字符串,那么把它和第i个字符串交换,因此第三空处应为“t”。
转载请注明原文地址:https://kaotiyun.com/show/FTDp777K
0

最新回复(0)