给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结

admin2018-07-19  21

问题 给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。
    请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
    注意:不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include<stdio.h>
    #include<string.h>
    #define M 5
    #define N 20
    / * * * * * * found * * * * * * /
    int fun(char(*ss)  1  ,int*n)
    {
      int i,k=0,len=0;
      for(i=0;i<M;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("The original strings are:n");
      for(i=0;i<M;i++)puts(ss);
      k=fun(ss,&n);
      printf("The length of longest string is:%d\n",n);
      printf("The longest string is:%s\n",ss[k]);
    }

选项

答案(1)[N] (2)len (3)*n=len

解析 本题考查:字符数组处理;函数形参定义;for循环语句。
    填空1:形参ss是一个字符串数组的定义,其宽度为N,所以应填[N]。
    填空2:*n用来记录最长字符串的长度,此处取第一个字符串的长度赋值给变量*n,所以应填len。
    填空3:每循环一次,判断当前字符串的长度是否大于*n,如果大于,则*n=len。
转载请注明原文地址:https://kaotiyun.com/show/dtxp777K
0

最新回复(0)