str为一个字符序列,序列由字符0和1组成。请补充函数 fun(),该函数的功能是:查找该字符序列中0字符连续出现的最长长度(即0字符的个数),如果有几个0字符串长度相同,只记录最后一个0字符串的相关信息。通过m和k返回最长0字符串的长度和最后0字符的下标

admin2010-05-05  17

问题 str为一个字符序列,序列由字符0和1组成。请补充函数 fun(),该函数的功能是:查找该字符序列中0字符连续出现的最长长度(即0字符的个数),如果有几个0字符串长度相同,只记录最后一个0字符串的相关信息。通过m和k返回最长0字符串的长度和最后0字符的下标。例如,如果输入“01001000”,结果为:0字符串最长长度为3,起始和结尾下标依次为5、7。
   注意:部分源程序给出如下.
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
    #include<stdio.h>
   #include<conio.h>
   #define N 80
   void fun (【  】)
   {
      int i, j=0;
      int bb[N];
      char *p=str;
      *m=0;
      *k=0;
      for(i=0;i<N;i++)
         bb=0;
      i=0;
      while(*(p+i))
      {
         if(*(p+i)=’0’)
         {
        【  】
            i++;
         }
         else
         {
            j++;
            i++;
         }
         if (【  】)
         {
             *m=bb[j];
             *k=i-1;
         }
   }
}
main()
{
   char str[N];
   int m,n,k;
   clrscr();
   printf("***input the original string
          ***\n");
   gets(str);
   printf("***The Original string ***\n");
   puts(str);
   fun(str,&m,&k);
   printf("\nThe length of ’0’ is :
          %d\n",m);
   printf("*** The suffix of character
          ***\n");
   printf(" %d,%d",k-m+1,k);
}

选项

答案char *str,int*m,int*k bb[j]++ *m<=bb[j]

解析 第一空:通过主函数main()对函数fun()的调用,可以知道函数的形参都是指针型,其中,第一个参数为字符型指针,后两个参数都是整型指针。第二空:数组bb[j]用来统计连续0的长度。第三空:*m中存放连续0的最长长度,当bb[j]中的数大于*m的值时,则将bb[j]赋给*m,始终保持*m中存放连续0的最长长度。
转载请注明原文地址:https://kaotiyun.com/show/kXID777K
0

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