B008

01-程序填空题 软件121, 唐鼎威 824浏览

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

#include    <stdio.h>
#include    <string.h>
#define    M    5
#define    N    20
int fun(char  (*ss)[N], int  *n)
{  int  i, k=0, len= N;
/**********found**********/
   for(i=0; i<___1___; i++)
   {  len=strlen(ss[i]);
     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 original strings are :\n");
   for(i=0;i<M;i++) puts(ss[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

【考点分析】

本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。

【解题思路】

填空1:题目指出ss所指字符串数组中共有M个字符串,所以for循环语句循环条件是i