问答题 给定程序中,函数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。
【答案解析】