问题 填空题

请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。
例如,输入:“A=abc+5*c”,结果为:a=2, b=l,c=2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数run的横线上填入所编写的若干表达式或语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#define N 100
void fun(char *tt,int alf[])

int i
char *p=tt;
for(i=0;i<26;i++)
【1】
while(*p)

if(*p>=’A’&&*p<=’z’)
【2】
if(*p>=’a’&&*p<=’Z’)
alf[*p-’a’]++;
【3】

main()

char str[N];
char a=’a’;
int alf[26],k;
clrscr();
printf("\nPlease enter a char string:");
scanf("%s",str);
printf("\n**The original string**\n");
puts(str);
fun(str,alf);
printf("\n**The number of letter**\n");
for(k=0;k<26;k++)

if(k%5==0)
printf("\n");
printf("%c=%d",a+k,alf[k]);

printf("\n");

答案

参考答案:[1] alf[i]=0 [2] *p+=32 [3] p++

解析: 填空1:数组alf[26]用来存放字母字符出现的次数,在使用之前需要清零。填空2:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。填空3:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。

单项选择题
单项选择题