给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

admin2013-04-02  24

问题 给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include    
#include
#define M 5
#define N 20
void fun(char (*ss)[N])
{int i, j, k=0, n, m, len;
   for(i=0; i   {len=strlen(ss);
      if(i==0) n=len;
      if(len>n) {
/**********found**********/
         n=len; 【1】=i;
      }
   }
   for(i=0; i    if (i!=k)
    {m=n;
      len=strlen(ss);
/**********found**********/
      for(j=【2】; j>=0; j--)
         ss[m--]=ss[j];
      for(j=0; j/**********found**********/
          【3】=’*’;
    }
}
main()
{char ss[M][N]={"shanghai","guangzhou","beijing", "tianjing","cchongqing"};
   int i;
   printf("\nThe original strings are :\n");
   for(i=0; i);
   printf("\n");
   fun(ss);
   printf("\nThe result:\n");
   for(i=0; i);
}

选项

答案 k len ss[i][j]

解析 第一空:第一for循环寻找最长的字符串,变量n记录字符串的长度,k记录最长字符串的下标位置。i=0时,将n赋值第一个字符串的长度,假设第一个字符串长度最长,以后其他字符串和n比较,如果比n大,则把新的字符串长度赋给n,k记录新的字符串下标位置,因此第一空处应为“k”。
第二空:“ss[m--]=ss[j];”是将字符串ss[j]的字符往后移动,腾出左边位置补“*”。字符串的长度为len,字符串的最后一个字符ss[len-1]移动到ss[n-1],ss[len-2]移动到ss[n-2],直到全部字符都往后移动len位,因此第二空处应为“len”。
第三空:此处的循环是把空处来的位置补上“*”,因此第三空处应为“ss[j]”。
转载请注明原文地址:https://kaotiyun.com/show/aJJp777K
0

最新回复(0)