str是全部由小写字母字符和空格字符组成的字符串,由 num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。例如:str=“how do you do”,结果为:num=4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include <stdio.h>define N 80void fun(cha

题目

str是全部由小写字母字符和空格字符组成的字符串,由 num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。

例如:str=“how do you do”,结果为:num=4。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio.h>

define N 80

void fun(char *s,int *num)

{

int i,n=0;

for(i=0;【 】;i++)

{

if(s[i]>='a',&&s[i]<='z',&&(s[i+1)==’’||s[i+1]=='\0'))

【 】;

}

【 】;

}

main()

{

char str[N];

int num=0;

printf("Enter a string:\n");

gets(str);

while(str[num])

num++;

fun(str,&num);

printf("The number of word is:

%d\n\n",num);


相似考题
更多“str是全部由小写字母字符和空格字符组成的字符串,由 num传入字符串的长度。请补充函数fun(),该函 ”相关问题
  • 第1题:

    函数fun的返回值是( )。 fun(char *a,char *b) { int num=0,n=0; while( * (a+num)! ='\0') num++; while(b[n]) {*(a+num)=b[n];num++;n++;} return num; }

    A.字符串a的长度

    B.字符串b的长度

    C.字符串a和b的长度之差

    D.字符串a和b的长度之和


    正确答案:D
    解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串b连接到字符a的后面,最后返回连接后的总长度。

  • 第2题:

    请补充函数fun(),该函数的功能是:把字符下标能铍2或3整除的字符从字符串str中删除,把剩余的字符重新保存在字符串str中。字符串str从键盘输入,其长度作为参数传入函数fun()。

    例如,输入“abcdefghijk”,输出“bfh”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include <stdio.h>

    define N 80

    void fun(char s[], int n)

    {

    int i, k;

    【 】;

    for(i=0; i<n; i++)

    {

    s[k++]=s[i];

    if(【 】)

    k--;

    }

    【 】;

    }

    main()

    {

    int i=0,strlen=0;

    char str[N];

    clrscr();

    printf("\nInput a string:\n");

    gets(str);

    while(str[i]!='\0')

    {

    strlen++;

    i++;

    }

    fun(str,strlen);

    printf('\n*** display string ***\n");

    puts(str);

    }


    正确答案:k=0 (i%2==0)||(i%3==0 s[k]='\0'
    k=0 (i%2==0)||(i%3==0 s[k]='\0' 解析:第一空;变量k声明时没有初始化,所以在使用前要对它初始化。因为k用作字符数组的下标,所以初始化为 0。第二空:如果当前字符的下标能被2或3整除,则不保存这个字符。第三空:将所有字符下标能被2或3整除的字符从字符串中删除后,在字符串的最后还要加上结束标记符'\0'。

  • 第3题:

    请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输人,其长度作为参数传人fun()函数。

    例如,输入“abcdef”,则输出“bdf”。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在mare()函数的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:


    【解析】先判断ASCⅡ码的奇偶。
    第一空:根据主函数“fun(str,len);”调用语句,其中len为字符串str的长度,用来控制循环。根据主函数中对应的调用语句,补全fun()函数定义,第一空填“fun(chars[],intn)”。
    第二空:“s[j++]=s[i];”语句中j的变量在使用前要对其取值进行初始化,因为数组下标是由0开始的,初始化值为0,所以第二空填“j-0”。
    第三空:新生成的字符串要加尾符标志,所以第三空填“s[j]=ˊ\0ˊ”。

  • 第4题:

    函数fun的返回值是

    fun(char * a, char * b)

    {int num=0,n=0;

    while( * (a+num) !='\0') num++;

    while(b[n] ) { * (a+num) =b[n] ;num++;n++;}

    return num;

    }

    A.字符串a的长度

    B.字符串b的长度

    C.字符串a和b的长度之差

    D.字符串a和b的长度之和


    正确答案:D
    解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

  • 第5题:

    str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数proc,该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。

    例如,str="abc3de987f9621",结果为:3987621。

    注意:部分源程序给出如下。

    请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    define M 80

    int bb[M];

    int proc(char str[],int bb[],int num)

    {

    int i,n=0;

    for(i=0;i<num;i++)

    {

    if(【1】)

    {

    bb[n]=【2】:

    n++:

    }

    }

    return 【3】 ;

    }

    void main

    {

    char str[M];

    int mum=0,n,i;

    printf("Enter a strin9:\n");

    gets(str);

    while(str[num])

    num++:

    n=proc(str,bb,num);

    printf("\nbb=");

    for(i=0;i<n;i++)

    printf("%d",bb[i]);

    }


    正确答案:

    【1】str[i]>='0'&&str[i]<='9 '
    【2】str[i]-'0'
    【3】n
    【解析】题目中要求把字箱串str中的数字字符转换成数字并存放到整型数组bb中。首先应判断字符串str中每个字符是否为数字字符,因此【1】填“str[i]>=' 0 ' &&str[i]<='9'”;将每一个数字字符转化为数字放在整型数组bb中,因此【2】填“str[i]-'0'”;由函数proc可知,变量n中存放的是整型数组bb中元素的个数,最后要返回到主函数中,因此【3】填“n”。