首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写一个函数void am(char*tt,int pp[]),统计在tt所指字符串中’a’到’z’ 26个小写字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串:abedefgabcdeabc后,程序的输出结果应该是:
请编写一个函数void am(char*tt,int pp[]),统计在tt所指字符串中’a’到’z’ 26个小写字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串:abedefgabcdeabc后,程序的输出结果应该是:
admin
2013-04-02
72
问题
请编写一个函数void am(char*tt,int pp[]),统计在tt所指字符串中’a’到’z’ 26个小写字母各自出现的次数,并依次放在pp所指数组中。
例如,当输入字符串:abedefgabcdeabc后,程序的输出结果应该是:
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
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
void fun(char *tt, int pp[])
{
}
main()
{char aa[1000] ;
int bb[26], k ;
void NONO ();
printf("\nPlease enter a char string:"); scanf("%s", aa);
fun(aa, bb);
for (k = 0 ; k < 26 ; k++) printf ("%d ", bb[k]);
printf("\n");
NONO ();
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
char aa[1000] ;
int bb[26], k, i ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", aa);
fun(aa, bb);
for (k = 0 ; k < 26 ; 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++; } }
解析
进入fun函数,根据前面的分析:
首先,因为数组pp的每一个元素都用作计数器,因此,需要使数组pp的每一个元素都置初值0,通过“for(i=0; i<26; i++) pp
=0;”来实现。
然后,用指针依次指向字符串的每一个字符直到字符串结束标志。
最后,在循环中根据*p的值不同,将累加器中的对应元素加1。
转载请注明原文地址:https://www.kaotiyun.com/show/ExJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序的功能是:将N行N列二维数组中每一行的元素进行排序,第0行从小到大排序,第1行从大到小排序,第2行从小到大排序,第3行从大到小排序,例如:#defineN4voidsort(inta[][N])
若要求定义具有1O个int型元素的一维数组a,则以下定义语句中的错误的是______。
有以下程序 fun(int x) { int p; if(x=0||x=1) return(3); p=x-fun(x-2); return p;
下面程序的输出结果是() main() { inta=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)); prinft("%d%d\n",k,a,b);}
下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=aprintf(
在Windows中,启动应用程序的正确的方法是()
排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。
下列选项中,不能用作标识符的是
有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节)#include<stdio.h>main(){FIL
当用户要求输入的字符串中含有空格时,应使用的输入函数是
随机试题
痰火扰神的主要症状有
慢性胃窦胃炎的临床表现为
肠结核的好发部位是
涎石病的临床特点
测定蛋白样品中某种分子量的蛋白选用最佳的方法是
对于钢筋力学性能检验时,同一牌号、同一炉罐号、同一规格、同一等级、同一交货状态的钢筋,每批不大于()t。
心理活动表现在强度、速度、稳定性和灵活性等方面动力性质的心理特征叫()
社会主义初级阶段的起点是()。
What’sthelengthofthebridgeacrosstheMavudayerRiver?
Labelthemapbelow.Writethecorrectletter,A-E,nexttoquestions11-15.CarPark
最新回复
(
0
)