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来移动指针,访问字符串中的所有字符。 相关资料 |