B094

01-程序填空题 田少松, 软件154 917浏览

所属年份:2010.9;2012.3

给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a C language program.,函数的返回值为6。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>
int fun(char  *s)
{
    int  n=0, flag=0;
    while(*s!='\0')
    {
        if(*s!=' ' && flag==0)
        {
            /**********found**********/
            __1__ ;
            flag=1;
        }
        /**********found**********/
        if (*s==' ')  flag= __2__ ;
        /**********found**********/
        __3__ ;
    }
    return  n;
}

main()
{
    char  str[81];
    int  n;
    printf("\nEnter a line text:\n");
    gets(str);
    n=fun(str);
    printf("\nThere are %d words in this text.\n\n",n);
}

【参考答案】

(1)n++  
(2)0  
(3)s++

【解题思路】
填空1:单词个数用变量n来统计,当前字母不是空格且flag状态标志为0时,可以判断出现一个新的单词,则单词数就加1,将状态标志flag置为1,所以应填n++。
填空2:当前字符是空格时,flag状态标志置0,所以应填0。
填空3:判断完一个字符之后,要继续判断字符串的下一个位置,所以应填s++。