1、二级 C 语言-389 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:找出形参 s 所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。 例如,形参 s 所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter“a“:3times letter“s“:3times 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #includestring.h
2、#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“:%d times/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 语言-389 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:找出形参 s 所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次
4、数。 例如,形参 s 所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter“a“:3times letter“s“:3times 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #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“:%d times/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)float 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 返回。