问答题 给定程序中,函数fun的功能是: 找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。 例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter'a':3times letter's':3times 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 试题程序: #include < stdio.h > #include < string.h > #include < ctype.h > void fun (char*s) { int k[26] = {0},n,i,max =0; char ch; while ( * s) { if ( isalpha ( * s)) { /*********found*********/ ch = tolower ( 【1】 ) ; n =ch 一 'a'; /*********found*********/ k[n]+= 【2】 ; } s ++ ; /*********found*********/ if(max < k[n]) max= 【3】 ; printf ("/nAfter count :/n") ; for (i=0; i < 26;i ++) if (k[i] ==max) printf ("/nletter /'%c/': %d times/n" , i + 'a',k[i] ) ; } main () { char s[81]; printf ("/nEnter a string:/n/n") ; gets (s) ; fun (s) ; }
【正确答案】正确答案:(1)*s (2)1 (3)k[n]
【答案解析】解析:本题统计字符串中各字母的个数,建立了一个包括26个整型变量的数组,用来存储每个字母的个数。 填空1:isalpha函数的作用是判断当前字符是否为字母,tolower函数的作用是将当前字母转换为小写字母,所以应填*s。 填空2:把该字母出现的个数累加到指定的数组中,所以应填1。 填空3:max用来记录出现次数最高的字母的出现次数,如果当前该字母出现次数大于最大次数max,那么把该次数赋值给max,所以应填k[n]。