使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。 例如,形参s所指

admin2023-02-27  12

问题 使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
    例如,形参s所指的字符串为abcAbsmaxless,程序执行后的输出结果为
    letter’a’:3times
    letter’s’:3times
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:部分源程序在文件blank1.c中。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 #include<string.h>
3 #include<ctype.h>
4 void fun(char*s)
5 {int k[26]={0},n,i,max=0;  char ch;
6  while(*s)
7  {if(isalpha(*s)){
8  /*********found*********/
9  ch=tolower(<u>【1】</u>);
10  n=ch-’a’;
11  /*********found*********/
12    k[n]+=<u>【2】</u>;
13    }
14    s++;
15  /*********found*********/
16    if(max<k[n])max=<u>【3】</u>;
17  }
18  printf("\hAfter count:\n");
19  for(i=0;i<26;i++)
20    if(k==max )
21    printf("\nletter\’%c\’:%dtimes\n",i+’a’,k);
22  }
23  main()
24  {char s[81];
25  printf("\nEnter a string:\n\n");
26  gets(s);
27  fun(s);
28  }

选项

答案(1)*s (2)1 (3)k[n]

解析 本题统计字符串中各字母的个数,建立了一个包括26个整型变量的数组,用来存储每个字母的个数。
    填空1:isalpha()函数的作用是判断当前字符是否为字母,tolower()函数的作用是将当前字母转换为小写字母,故空2处应该填*s。
    填空2:把该字母出现的个数累加到指定的数组中,故空2处应该填1。
    填空3:变量max用来记录出现频率最高的字母的出现次数。如果当前该字母出现次数大于最大次数max,那么把该次数赋给max,故空3处应该填k[n]。  
转载请注明原文地址:https://kaotiyun.com/show/VJ0D777K
0

相关试题推荐
最新回复(0)