问题 填空题

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 ( 【1】 )

int i, j=0;
int bb[N];
char *p=str;
*m=0;
*k=0;
for(i=0;i<N;i++)
bb[i]=0;
i=0;
while(*(p+i))

if(*(p+i)=’0’)

【2】
i++;

else

j++;
i++;

if ( 【3】 )

*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);

答案

参考答案:[A] char *str,int *m,int *k [B] bb[j]++ [C] *m<=bb[j]

解析: 填空1:通过主函数main()对函数fun()的调用,可以知道函数的形参都是指针型,其中,第一个参数为字符型指针,后两个参数都是整型指针。填空2:数组bb[j]用来统计连续0的长度。填空3:*m中存放连续0的最长长度,当bb[j]中的数大于*m的值时,则将bb[j]赋给*m,始终保持*m中存放连续0的最长长度。

单项选择题
单项选择题