2011年计算机二级C语言十套上机题1

全国等级考试资料网 2023-07-03 13:01:03 247

2011年计算机二级C语言十套上机题1

1.填空题

请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。

例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。

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

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

试题程序:

#include

#include

#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(" Please enter a char string:");

scanf("%s",str);

printf(" **The original string** ");

puts(str);

fun(str,alf);

printf(" **The number of letter** ");

for(k=0;k<26;k++)

{

if(k%5==0)

printf(" ");

printf("%c=%d ",a+k,alf[k]);

}

printf(" ");

}

答案及评析:

【1】alf[i]=0 【2】*p+=32 【3】p++

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

相关资料

相关阅读