填空题
1. str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数proc(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。
例如,str="how do you do",结果为:num=4。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序: #include<stdio.h>
#define M 80
void proc(char*str,int *num)
{
int i,n=0;
for(i=0; ______;i++)
{
if(str[i]>='a'&&str[i]<='z'&&(str[i+1]=
="||str[i+1]=='\0'))
______;
}
______;
}
void main()
{
char str[M];
int num=0;
printf("Enter a string:\n");
gets(str);
while(str[ num])
num++;
proc(str,&num);
printf("The number of word is:
%d\n\n",num);
}
【正确答案】
1、i<*num
n++
*num=n
【答案解析】 由主函数的proc()函数调用可知,变量num中存放的是字符串str的字符个数,因此,第一空处填“i<*num”;由函数proc()可知,变量n中存放字符串str中的字符个数,每检测到一个空格或字符串结束,单词数加1,因此,第二空处填“n++”;字符串str中的单词数要由形参num传递给主函数,因此,第三空处填“*num=n”。