给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

admin2017-02-27  3

问题 给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include  
#include
#define N 5
#define M 8
void  fun (char  (*ss) [M] )
{ char *ps[N],*tp; int i,j,k;
   for (i=0;  i =ss
   for (i=0;  i   k= ____1____ ;
          if (strlen (ps [k] )  <  strlen
      tp=ps ;   ps =ps [k] ;   ps [k]=
____3 ____;
     }
   printf ( "\nThe string after sorting
by length:\n\n");
   for (i=0;  i ) ;
}
main ()
{   char  ch [N] IM] ={ "red","green",
"blue","yellow","black" } ;
int i;
     printf ( "\nThe original  string\n\n") ;
   for (i=0;i ) ;
printf ("\n") ;
fun (ch);  }

选项

答案(1)i (2) ps[j] (3) tp

解析 本题中函数fun的功能是利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的n—1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
第一空:分析可知,fun函数采用的选择排序,在第一空处是初始化k。“for(j =i+l;j第二空:“if(strlen(ps[k])第三空:“tp=ps; ps—ps[kl; ps[k]=____3____;”是字符串地址交换,显然第三空处应是临时变量tp。
指向一维数组的指针以及指针数组、字符数组和字符串。
转载请注明原文地址:https://kaotiyun.com/show/MgID777K
0

相关试题推荐
最新回复(0)