填空题
1. str为一个字符序列。请补充函数proc(),该函数的功能是:查找str中值为x的元素,返回该字符序列中值为x的元素个数,并把这些值为x的元素的下标依次保存在数组bb中。
例如,在“abcdedabcdab”中查找“c”,结果为:2个“c”,下标依次为2、8。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 20
int bb[M];
int proc(char*str,char ch)
{
int i=0,n=0;
char t=ch;
char *p=str;
while(*p)
{
if(______)
______;
p++;
i++;
}
return ______;
}
void main()
{
char str[M];
char ch;
int i,n;
system("CLS");
printf("***Input the original string***\n");
gets(str);
printf("***The Original***\n");
puts(str);
printf("***Input character***\n");
scanf("%c",&ch);
n=proc(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
bb[n++]=i
n
【答案解析】 要查找字符串中的指定元素,就要将字符串中每一个元素与指定字符比较,因此,空一处填“*p==t”;数组bb中存放与指定字符相同的元素的下标,每找到一个,数组bb增加一个元素,因此,空二处填“bb[n++]=i”;变量n为数组bb的下标,表示字符串中与指定字符相同的元素的个数,返回给主函数,因此,空三处填“n”。