请补充函数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]);
}
第1题:
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的。号之外,将串中其他*号全部删除。在编写函数时.不得使用C语言提供的字符串函数.
第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函数,不得增行或删行,也不得更改程序的结构!
第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”。