早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数int num(*char ss,char

题目

下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数int num(*char ss,char c)以实现程序要求,最后调用函数readwriteDat(),把结果输出到文件out.dat中(注:大小写字母有区别)。例如:若输入字符串“ss="123412132" , c=’1’”,则输出“3”。部分源程序已给出。请勿改动主函数main()和输出数据函数writeDat()的内容。#include <conio.h>#include <stdio.h>#define M 81void readwriteDAT(); int num(char *ss,char c){ } main(){ char a[M],ch; clrscr(); printf("\nPlease enter a string:" );gets(a); printf("\nPlease enter a char;" );ch=getchar(); printf("\nThe number of the char is:%d\n" ,num(a,ch)); readwriteDAT();}viod readwriteDAT(){ int i; FILE *rf,*wf; char a[M],b[M],ch; rf=fopen("in.dat" ,"r" ); wf=fopen(" out.dat" ,"w" ); for(i=0;i<10;i++){ fscanf(rf," %s",a); fscanf(rf," %s" ,b); ch=*b; fprintf(wf," %c=%d\n:" ,ch,num(a,ch));} fclose(rf); fclose(wf);}

参考答案
正确答案:请参考解析
【解析及答案】
本题的任务是把单词统计函数num(char *ss,char c) 补充完整,其中,ss是需统计的字符串,c是待统计的字符。
本题属于单个字符串统计问题,处理过程相对简单一些。首先,把计数器清零。然后,一边扫描字符串ss,一边统计字符c出现的次数,如果字符c出现1次,那么计数器的值自动增加1。最后,计数器的值就是字符c在字符串ss中出现的总次数。求解核心是字符c的匹配和计数器的计数。综上所述,完整的统计函数num(char *ss,char c) 如下。
 int num(char *ss,char c)
{
  int i=0;
  while(*ss!=0)
  if(*ss++==c) i++;
  return i;
}
看了下列程序的功能是:求出ss字符...的网友还看了以下:

数字的数位太多了的时候,通常每3位数字用逗号隔开,这样比较容易看.我怎么觉得要是每4个数字隔开会更 数学 2020-04-07 …

一个代表大数字的符号左边附一个代表小数字的符号,就表示大数字加上小数字的数目。 计算机类考试 2020-05-31 …

2003电子规格小字数字如何转换成大写如何把一个格的数字在另一个格里直接转换成大字的数字?要求效果 其他 2020-06-09 …

一个两位数,十位上的数字比个位上的数字的数大一,十位与个位上的数字的和是这个两位数的六分之一,这个 数学 2020-06-11 …

用数字1,2,3,4,5组成没有重复数字的数,能够组成多少个万位不排数字3的五位藕数? 数学 2020-07-02 …

三位数的十位数字与个位数字的和等于百位数字的数,称为”好数”.共有多少个好数? 其他 2020-07-29 …

由数字1、2、3、4、5、6组成无重复数字的数中,求:(1)六位偶数的个数;(2)求三个偶数互不相 数学 2020-07-30 …

matlab怎么将小于某个数字的数换成0以123456789为字符串把大于5的数字变为1小于等于5的 其他 2020-11-07 …

用数字1,2,3,4,5能组成多少个满足下列条件的没有重复数字的数?(1)能组成多少个五位数?(2) 数学 2020-11-19 …

用C++给定一个含有10个数字的数组给定一个含有10个数字的数组。(1)求该数组元素的平均值(2)最 其他 2020-12-05 …