首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写一个函数void fun(char*tt,int pp[]),统计在tt所指字符串中’a’到’z’26个小写字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:
请编写一个函数void fun(char*tt,int pp[]),统计在tt所指字符串中’a’到’z’26个小写字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:
admin
2015-08-23
108
问题
请编写一个函数void fun(char*tt,int pp[]),统计在tt所指字符串中’a’到’z’26个小写字母各自出现的次数,并依次放在pp所指数组中。
例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:
3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#inolude
#include
void fun(char*tt,int pp[])
{
}
main()
{ char aa[1 0 0 0];
int bb[26],k;
void NONO();
print:f("\nPlease enter a charstring:");scanf(”%s”,aa);
fun(aa,bb);
for(k=0;k<2 6;k++)printf ("%d",bb[k]);
printf("\n");
NONO();
}
void NONO()
{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
char aa[1 000];
int bb[26],k,i;
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<1 0;i++) {
fscanf(rf,"%s",aa);
fun(aa,bb);
for(k=0;k<2 6;k++)fprintf
(wf,"%d",bb[k]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}
选项
答案
char*p=tt; int i; for(i=0;i<26;i++)PP[i]=0; while(*p){ if(*p>=’a’&&*p<=’z’)PP[*p一’a’]+=1; p++; }
解析
该程序功能是统计字符串中26个字母各自出现的次数。解题思路,从已给部分源程序的main主函数开始入手,函数形参指针tt接受主函数中字符数组aa的起始地址,形参pp接受主函数中的bb数组的起始地址,bb数组的每一个元素都是计数器,bb[0]中统计字母“a”的个数,bb[1]中统计字母“b”的个数,依此类推,bb[25]中统计字母“z”的个数。
转载请注明原文地址:https://www.kaotiyun.com/show/WHDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。
下列4个关于C语言的结论中错误的是()。
下列程序将二维数组a的行和列元素互换后存放到另一个二维数组b中。请填空。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=
下列程序的运行结果是______。#include<stdio.h>longfunc(intx){longp;if(x==0‖x==1)return(1);p=x*func(x-1);r
设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
有以下程序:main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)___
有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y)
以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。main(){floata,b
对于下述程序,在方式串分别采用"wt"和"wb"运行时,两次生成的文件TEST的长度分别是#includevoidmain(){FILE*fp=fopen("TEST",);fputc(′A′,fp);fputc(′\n′,fp);
源程序的文档化不包括()。
随机试题
爱国主义最基本的内容是【】
患者男性,70岁,平日BPl50/60mmHg,脉压增大的原因可能是由于
A.周围神经炎B.精神兴奋、血清转氨酶增高C.眼泪及汗液呈粉红色D.耳聋E.视野缺损用利福平可出现
关于工程项目人力资源管理的一般过程的表述中错误的一项是()。
如何看待“干部出数字、数字出干部”现象?
知识营销是指在企业的营销过程中,使企业的广告、宣传、公关、产品注入一定的知识含量与文化内蕴,帮助消费者增加与商品相关并实用的信息与知识,提高他们的消费与生活质量,从而达到推广产品、树立形象、提升品牌竞争力的目的。根据上述定义,下列属于知识营销的是(
佛朗西斯·克里克提出的中心法则指明了遗传信息的流向,在科学发展中得到不断补充完善。根据该法则,下列哪一种遗传信息传递流程不可能发生?
下面程序的运行结果是______。typedefunionstudent{charname[10];longsno;charsex;floatscore[4];}STU;
•Youwillhearfiveshortpieces.•Foreachpiecedecidewhichtypeofbusinesseachspeakeristalkingabout.Writeoneletter
•Readthearticlebelowaboutcreditinbusiness.•Choosethebestwordtofilleachgap,fromA,B,CorD.•Foreachquestion
最新回复
(
0
)