问题 问答题

请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串:123412312,输入字符为1,则输出:3。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
文件PROG1.C内容如下:
#include<stdio.h>
#include<string.h>
#define M 81
int fun(char *ss,char c)


void main( )
char a[M],ch;
printf("\nPlease enter a string: ");gets(a);
printf("\nPlease enter a char: ");ch=getchar( );
printf("\nThe number of the char is: %d\n",fun(a,ch));

答案

参考答案:int fun(char *ss,char c){
int i,cnt=0:
for(i=0;ss[i]!=’\0’;i++)
if(ss[i]==c)cnt++;
return cnt:
}

解析: 函数fun使用的算法是:从ss指向的第一个字符开始,依次将字符与变量c进行比较,若相等,则说明该字符在字符串中出现一次,所以计数变量cnt自加1,直到ss指向字符串结束标记’\0’停止循环。最后将cnt的值作为函数返回。
[归纳总结] 本套试题的程序填空和程序设计题考查的是数据的统计。考题中通常都是要求对字符进行统计。数据的统计采用的算法是:从第一个数据开始依次进行比较,若是需要统计的某类字符,则计数变量自加1,直到将所有数据进行比较后循环结束。
数据的统计常用程序如下:
int fun(char *ss,char c){ /*形参c传递的是需要统计的某种字符*/
int i, cnt=0;
for(i=0;ss[i]!=’\0’;i++)
if(ss[i]==c)cnt++;
return cnt:
}

问答题 简答题
单项选择题