问答题
给定程序中,函数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
for(i=0; i
/**********found**********/
k= __1__ ;
for(j=i+1; j
/**********found**********/
if(strlen(ps[k]) < strlen(__2__) ) k=j;
/**********found**********/
tp=ps[i]; ps[i]=ps[k]; ps[k]= __3__ ;
}
printf("/nThe string after sorting by length:/n/n");
for(i=0; i
}
main()
{ char ch[N][M]={"red","green","blue","yellow","black"};
int i;
printf("/nThe original string/n/n");
for(i=0;i
fun(ch);
}
【正确答案】第一处:外循环每循环一次,k应保存当前的i值,所以应填:i。
第二处:使用内循环对i+1后面的字符串长度进行比较,所以应填:ps[j]。
第三处:交换内容,所以应填:tp。
【答案解析】