问题 填空题

str为一个字符序列。请补充函数fun(),该函数的功能是:查找str中值为x的元素,返回该字符序列中值为x的元素个数,并把这些值为x的元素下标依次保存在数组bb中。例如,在“abcdefahij”中查找‘a’,结果为:2个‘a’,下标依次为 0、6。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> #define N 20 int bb[N]; int fun(char *str,char ch) { int i=0, n=0; char t=ch; char *p=str; while(*p) {if ( 【1】 ) 【2】 ;p++;i++; } return 【3】 ; } main() { char str[N]; char ch; int i, j,n; clrscr(); printf("***Input the original string ***\n"); gets(str); printf("***The Original ***\n"); puts(str); printf("***Input character ***\n"); scanf("%c",&ch); n=fun(str,ch); printf("\nThe numbr of character is: %d\n", n); printf{"***The suffix of character ***\n"); for(i=0;i<n;i++)printf("%d ",bb[i]); }

答案

参考答案:[1] *p==t [2] bb[n++]=I [3] n

解析: 填空1:通过指针p的移动来依次访问字符串的各个字符,如果指针p所指的字符等于待查找的字符,即表示找到了满足条件的字符。填空2:将找到的字符在字符数组中的下标值保存在数组bb中。填空3:变量n记录在字符串中找到待查找字符的个数。由main函数的调用可知函数fun()的返回值为n。

单项选择题 案例分析题
多项选择题