1、二级 C语言分类模拟题 262及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.函数 fun的功能是:从三个形参 a,b,c 中找出中间的那个数,作为函数值返回。 例如,当 a=3,b=5,c=4 时,中数为 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #includestdio.h int fun(int a, int b, int c) int t; /*found*/ t=(ab)?(bc? b: (ac?c:_)
2、:(ac)?_:(bc)?c:_); return t; main() int a1=3, a2=5, a3=4, r; r=fun(a1, a2, a3); printf(“/nThe middle number is:%d/n“, r); (分数:30.00)_二、程序修改题(总题数:1,分数:30.00)2.给定程序 MODI1.C中函数 fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为 au,则将其转换为其后的第 5个字母;若小写字母为 vz,使其值减 21。转换后的小写字母作为函数值返回。例如,若形参是字母 A,则转换为小写字母 f:若形参是字母 w,则转换为小写字母
3、b。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! #includestdio.h #includectype.h char fun(char c) if(c=“A“ if(c=“a“ else if(c=“v“ return c; main() char c1, c2; printf(“/nEnter a letter(A-Z):“); c1=getchar(); if(iaupper(c1) c2=fun(c1); printf(“/n/nThe letter“%c“ change to“%c“/n“, c
4、1, c2); else printf(“/nEnter (A-Z)!/n“); (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是:计算并输出 (分数:40.00)_二级 C语言分类模拟题 262答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.函数 fun的功能是:从三个形参 a,b,c 中找出中间的那个数,作为函数值返回。 例如,当 a=3,b=5,c=4 时,中数为 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1.C
5、中。 不得增行或删行,也不得更改程序的结构! #includestdio.h int fun(int a, int b, int c) int t; /*found*/ t=(ab)?(bc? b: (ac?c:_):(ac)?_:(bc)?c:_); return t; main() int a1=3, a2=5, a3=4, r; r=fun(a1, a2, a3); printf(“/nThe middle number is:%d/n“, r); (分数:30.00)_正确答案:()解析:(1)a (2)a (3)b 答案考生文件夹 解析 fun 函数的功能是求得三个数中间的数。 第一
6、空:语句“(ab)?(bc?”表示 abc,根据题目要求,则中间值为 b,若只是满足第一个“?”前面的条件,而 cb,则选择执行“(ac?c:_)”,当 ac 时取值 c,所以 ac 时中间值为 a,所以第一空填“a”。 第二空:语句“(ac)?”是对 a、c 的比较选择,第三空处的“(bc)?c”根据 b、c 的判断,题目已经给出了 c,所以这里应该是 a。 第三空:第三空中对于 b、c 的判断选择缺少 b,所以这里填“b”。 考点 if 语句及其构成的选择。二、程序修改题(总题数:1,分数:30.00)2.给定程序 MODI1.C中函数 fun的功能是:首先将大写字母转换为对应小写字母;若
7、小写字母为 au,则将其转换为其后的第 5个字母;若小写字母为 vz,使其值减 21。转换后的小写字母作为函数值返回。例如,若形参是字母 A,则转换为小写字母 f:若形参是字母 w,则转换为小写字母 b。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! #includestdio.h #includectype.h char fun(char c) if(c=“A“ if(c=“a“ else if(c=“v“ return c; main() char c1, c2; printf(“/nEnter a let
8、ter(A-Z):“); c1=getchar(); if(iaupper(c1) c2=fun(c1); printf(“/n/nThe letter“%c“ change to“%c“/n“, c1, c2); else printf(“/nEnter (A-Z)!/n“); (分数:30.00)_正确答案:()解析:(1)c=c+32; (2)c=c+5; 答案考生文件夹 解析 函数的功能是将某些大写字母转换为对应小写字母之后的第五个字母。 (1)第一个标识下“C=C+32;”中变量 C没有定义,编译时会提示出错。根据题意,这行语句的作用是将大写字母转换为小写字母,C 语句中大写字母转换
9、为对应的小写字母是对原有 ASCII码加 32,小写转换为大写是减 32,所以应将“C=C+32; ”改为“c=c+32; ”。 (2)第二个标识下是将小写字母转换为其后的第五个字母,字母在 au 之间只加上 5就可以了,原题中减5则是将字母转换到该字母之前的第五个字母,所以第二个标识下“c=c-5; ”改为“c=c+5; ”。 考点 if 语句及其构成的选择、数据类型和常量、变量。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是:计算并输出 (分数:40.00)_正确答案:()解析:int i; double fac=1.0; double sum=1.0; for(i=2; i=n; i+) fac+=sqrt(i); sum+=fac; return sum; 答案考生文件夹 解析 该程序功能是对题干中给出的多项式的求解。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。 考点 for 循环结构。