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

admin2013-04-02  50

问题 给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!
#include
#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);
/**********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]);
}

选项

答案[N] len *n=len

解析 第一空:在主函数内fun函数调用“k=fun(ss,&n);”可知,fun函数的第一个参数为数组首地址,是指针变量,故第一空处的fun函数定义应为“[N]”。
第二空:由审题分析可知,i=0时,记录长度的变量*n应该赋初值len,故第二空处应为“len”。
第三空:由审题分析可知,如果len比*n大,那么*n记录这个大的值,故第三空处应为“*n=len;”。
转载请注明原文地址:https://kaotiyun.com/show/ODJp777K
0

最新回复(0)