1、二级 C 语言-298 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:找出形参 s 所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。 例如,形参 s 所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter “a“ : 3 times letter “s“ : 3 times 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h #includestr
2、ing.h #includectype.h void fun(char *s) int k26=0,n,i,max=0;char ch; while(*s) if(isalpha(*s) /*found*/ ch=tolower( 1); n=ch-“a“; /*found*/ kn+= 2; s+; /*found*/ if(maxkn)max= 3; printf(“/nAfter count:/n“); for(i=0;i26;i+) if(ki=max)printf(“/nletter “%c“:%dtimes/n“,i+“a“,ki); main() char s81; printf
3、(“/nEnter a string:/n/n“);gets(s); fun(s); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:求 s 的值。 (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.编写函数 fun,它的功能是:计算并输出下列级数和: (分数:40.00)_二级 C 语言-298 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:找出形参 s 所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
4、例如,形参 s 所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter “a“ : 3 times letter “s“ : 3 times 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h #includestring.h #includectype.h void fun(char *s) int k26=0,n,i,max=0;char ch; while(*s) if(isalpha(*s) /*found*/ ch=tolower( 1); n=ch-
5、“a“; /*found*/ kn+= 2; s+; /*found*/ if(maxkn)max= 3; printf(“/nAfter count:/n“); for(i=0;i26;i+) if(ki=max)printf(“/nletter “%c“:%dtimes/n“,i+“a“,ki); main() char s81; printf(“/nEnter a string:/n/n“);gets(s); fun(s); (分数:30.00)解析:(1)*s (2)1 (3)kn 解析 本题统计字符串中各字母的个数,建立了一个包括 26 个整型变量的数组,用来存储每个字母的个数。 填
6、空 1:isalpha 函数的作用是判断当前字符是否为字母,tolower 函数的作用是将当前字母转换为小写字母,所以应填*s。 填空 2:把该字母出现的个数累加到指定的数组中,所以应填 1。 填空 3:max 用来记录出现次数最高的字母的出现次数,如果当前该字母出现次数大于最大次数 max,那么把该次数赋值给 max,所以应填 kn。二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:求 s 的值。 (分数:30.00)解析:(1)double fun(int k) (2)return s; 解析 (1)此处为函数定义错误,根据返回值的类型可知函数类型标识符应为 double。 (2)语法错误。三、程序设计题(总题数:1,分数:40.00)3.编写函数 fun,它的功能是:计算并输出下列级数和: (分数:40.00)_正确答案:()解析:double fun(int n) int i; double s=0.0; for(i=1;i=n;i+) s=s+1.0/(i*(i+1); /*求级数的和*/ return s; 解析 本题要求级数的和,由多项式的形式可知,应使用循环语句实现,循环的通项为 1/n(n+1)。本程序首先定义了和变量及循环变量,然后运用一个 for 语句求出级数的和,最后将和变量 s 返回。