问答题
给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define M 5
#define N 20
/**********found**********/
int fun(char (*ss) ___1___, int *n)
{ int i, k=0, len=0;
for(i=0; i
{ len=strlen(ss[i]);
/**********found**********/
if(i==0) *n=___2___;
if(len>*n) {
/**********found**********/
___3___;
k=i;
}
}
return(k);
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int n,k,i;
printf("/nThe original strings are :/n");
for(i=0;i
k=fun(ss,&n);
printf("/nThe length of longest string is : %d/n",n);
printf("/nThe longest string is : %s/n",ss[k]);
}
【正确答案】第一处:形参ss的定义,它是一个字符串数组的定义,其宽度为N,所以应填:N。
第二处:取第一个字符串的长度赋值给变量*n,所以应填:len。
第三处:每循环一次,判断当前字符串的长度是否大于*n,如果大于,则*n=len。
【答案解析】