请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。例如,输入aeiouAOUpqn,结果为A∶2 E∶1 1∶1 O∶2 U∶2 Other∶4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<stdiO.h>include<conio.h>define N 100void fun(char *str,int bb[ ]){char *p=str;in

题目

请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。

例如,输入aeiouAOUpqn,结果为A∶2 E∶1 1∶1 O∶2 U∶2 Other∶4。

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

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

试题程序:

include<stdiO.h>

include<conio.h>

define N 100

void fun(char *str,int bb[ ])

{

char *p=str;

int i=0;

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

【 】;

while(*p)

{

switch(*p)

{

case 'A':

case 'a':bb[0]++;break;

case 'E':

case 'e':bb[1]++;break;

case 'I':

case 'i':bb[2]++;break;

case 'O':

case 'o':bb[3]++;break;

case 'U':

case 'u':bb[4]++;break;

default:【 】;

}

【 】

}

}

main()

{

char str[N),ss[6]="AEIOU";

int i;

int bb[6];

clrscr();

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

gets(str);

printf("the string is:\n");

puts(str);

fun(str,bb);

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

printf("\n%c:%d",ss[i],bb[i]);

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

}


相似考题
参考答案和解析
正确答案:bb[i]=0 bb[5]++ p++;
bb[i]=0 bb[5]++ p++; 解析:第一空:数组bb[6]用来存放5个元音字母和其他字符的个数,在使用之前需要清零。第二空:数组元素bb[5]用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb[5]加1。第三空:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。
更多“请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。 ”相关问题
  • 第1题:

    规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的。号之外,将串中其他*号全部删除。在编写函数时.不得使用C语言提供的字符串函数.


    正确答案:
    程序设计题解析:【考点分析】本题考查:指针型变最定义;wh丑e循环语句;语句条件表达式;字符串结束标识‘\0’。【解题思路】函数fun的功能:除了字符串前导的*号之外,将串中其他+号全部删除。【解答本题】(1)定义一个临时指针P,初始指向原串首地址;(2)利用循环语句把字符串前导*号拷贝到原串;(3)继续移动指针,把串中和串尾的非*号字符拷贝到原串;(4)为修改后的字符串赋结束字符‘、O’。【解题宝典】要删除字符串中的指定字符,我们通常采用保留非指定字符的方法。可以将非指定字符保留在原串,即将需要保留的字符从原串的起始位置重新赋值;也可以保留到新串,即新建一个字符串,存放要保留的字符。

  • 第2题:

    下列给定程序中,函数fun()的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(Z转换A,z转换a),其他字符不变。

    请修改函数fun()中的错误,得出正确的结果。

    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

    试题程序:


    正确答案:

    (1)错误:while(*str!=ˊ@ˊ)
    正确:while(*str)或while(*str!=ˊ\0ˊ)或while(*str!=0)
    (2)错误:(*str++);
    正确:str++
    【解析】首先判断字母是否为小写字母,如果是小写字母则进行转换。
    第一个标识下“while(*str!=ˊ@ˊ)”语句原意是str不指向字符串尾就进入下面的循环,所以对于指针判断不为结束符的语句应该是循环为真,所以应为“while(*str)”或“while(*str!=ˊ\Oˊ)”或“while(*str!=0)”。
    第二个标识下“(*str)++;”是对字符内容加1,而原题是对字符位置加1,所以将其改为“str++;”。

  • 第3题:

    编写函数count,统计参数字符串中字母和其他字符的个数。


    返回字符表中值的个数,即统计记录的个数;字符串表达式中可以是字段名

  • 第4题:

    给定程序MODll.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。

    例如:若输入:THIs is aboot,则输出应该是:1、0、2、2、0。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)num[k]=0; (2)switch(*s)
    (1)num[k]=0; (2)switch(*s) 解析:本题中函数的功能是统计字符串中各元音字母(即A、E、I、O、U)的个数。其中,本题在while循环中采用switch-case条件判断字符串中的每一个字符并进行统计。

  • 第5题:

    请补充函数proc(),该函数的功能是判断一个数是否为素数。该数是素数时,函数返回字符串:“yes!”,否则函数返回字符串:“no!”,并在主函数中输出。

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

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

    试题程序:


    正确答案:

    【l】char*proc(intn)【2】2【3】n%i==0
    【解析】由整个程序可知,【1】应为函数proc()的函数头。根据主函数中的调用可知形参的个数和类型,因此,【1】处填“char”proc(intn)”。素数为只能被1和它本身整除的整数。要判断一个整数是否为素数,要看它是否能被除1和小于它本身之外的数整除,因此,【2】处填“2”;【3】处填“n%i==0”。