填空题 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 ({{U}} 【1】 {{/U}}) {{U}}【2】 {{/U}}; p++; i++; } return{{U}} 【3】 {{/U}}; } 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、
【正确答案】 1、[1] *p==t [2] bb[n++]=I [3] n    
【答案解析】[解析] 填空1:通过指针p的移动来依次访问字符串的各个字符,如果指针p所指的字符等于待查找的字符,即表示找到了满足条件的字符。填空2:将找到的字符在字符数组中的下标值保存在数组bb中。填空3:变量n记录在字符串中找到待查找字符的个数。由main函数的调用可知函数fun()的返回值为n。