填空题
1. 请补充函数proc(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。
例如,输入imnlaeouOWC,结果为:A:1 E:1 I:2 O:2 U:1 other:4。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序: #include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define M 100
void proc(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 '0':
case 'o': bb[3]++;break;
case 'U':
case 'u': bb[4]++;break;
default: ______;
}
______
}
}
void main()
{
char str[M], ss[6]="AEIOU";
int i;
int bb[6];
system("CLS");
printf("Input a string:<n");
gets(str);
printf("the string is:<n");
puts(str);
proc(str,bb);
for(i=0;i<5;i++)
printf("<n%c:%d",ss[i],bb[i]);
printf("<nother:%d",bb[i]);
}
【正确答案】
1、bb[i]=0
bb[5]++
p++;
【答案解析】 由函数proc()可知,数组b中存放的是各个元音字母和其他字符的个数,其初始值为0,因此,第一空填“bb[i]=0”;由switch语句可知,b[5]中存放的是其他字符的个数,每检查到一个元音以外的其他字符,b[5]加1,因此,第二空填“bb[5]++”;指针变量p指向字符串中的字符,每检查完一个字符,指针p要向后移动一个位置,因此,第三空填“p++”。