问答题
给定程序中,函数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
for(i=0; i
{ k=i;
/**********found**********/
for(j=___1___; j
/**********found**********/
if(n[k]>n[j]) ___2___;
if(k!=i)
{ strcpy(t,ss[i]);
strcpy(ss[i],ss[k]);
/**********found**********/
strcpy(ss[k],___3___);
n[k]=n[i];
}
}
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int i;
printf("/nThe original strings are :/n");
for(i=0; i
printf("/n");
fun(ss);
printf("/nThe result :/n");
for(i=0; i
}
【正确答案】第一处:内循环赋初值,应填:i+1。
第二处:找出最短的一个长度,所以应填:m=j。
第三处:交换字符串,所以应填:t。
【答案解析】