问题 填空题

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的最长长度。

选择题
单项选择题