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

admin2018-01-13  23

问题    给定程序中,函数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/ZvID777K
0

相关试题推荐
最新回复(0)