给定程序中,函数fun的功能是:求SS所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长

admin2015-06-08  53

问题 给定程序中,函数fun的功能是:求SS所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#inolude
#include
#define M 5
#define N 2 0
int fun(char(*sS)[N],int *n)
{ int i,k=0,2en=N;
/**********found***********/
    for(i=0;  i< ___1___ ;  i++)
    {    len=strlen(Ss);
    if(i==0) *n=len;
/**********found***********/
    if(len ___2___ *n)
    {  *n=len;
    k=i;
    }
/**********found***********/
  return(  ___3___ );
}
main()
{  char SS[M][N]={“shanghai”,
“guangzhou”,“beijing”,“tianjing”,
“chongqing”};
  int n,k,i;
  printf(“\nThe origina1 strings
are:\n”);
  for(2=0;i);
  k=fun(ss,&n);
  printf(“\nThe length of shortest
String is:%d\n”,n);
  printf(“\nThe  shortest  string
iS:%s\n”,ss[k]);
}

选项

答案(1)M (2)< (3)k

解析 函数fun的功能是求ss所指字符串数组中长度最短的字符串所在的行下标。求最短字符串所在的下标,一般假设第…个字符串的长度最短min,用k记录最长字符串的下标的话,开始时min=strlen(ss[0]),k=0,然后逐个比较其他字符串长度,如果字符串ss长度比min小,则将min赋值为这个字符串长度,k=i,如此便可求得最短字符串和最短字符串所在的下标位置。
   [解题思路]
    第一窄:循环的目的是在M个字符串中寻找长度最短的字符串,因此循环变量i从0变化到M-1,故第一空处应为“M”。
    第二空:*n记录最小字符串的长度,由审题分析可知,字符串ss长度比min小,则交换最小长度值和下标位置,故第二空处应为“<”。
    第三窄:变量k记录了最小字符串的下标位簧,函数的返回值是最短的字符串所在的行下标,故第三空处应为“k”。
转载请注明原文地址:https://kaotiyun.com/show/PaJp777K
0

随机试题
最新回复(0)