给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。 例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter’a’:3times l

admin2020-10-21  34

问题 给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
    例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:
    letter’a’:3times
    letter’s’:3times
    请在程序的中括号处填入正确的内容并把中括号删除,使程序得出正确的结果。
    注意:部分源程序在文件BLNK1.C中。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
#include
#include
#include
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    }
    printf("\nAfter count:\n");
    for(i=0;i<26;i++)
    if(k==max)
    printf("\nletter\’%c\’:%d
times\n",i+’a’,k);
}
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:把该字母出现的个数累加到指定的数组中,所以应填l。
    填空3:max用来记录出现次数最高的字母的出现次数,如果当前该字母出现次数大于最大次数max,那么把该次数赋值给max,所以应填k[n]。
转载请注明原文地址:https://jikaoti.com/ti/yEl0FFFM
0

最新回复(0)