1、国家二级 C语言机试(操作题)模拟试卷 95及答案与解析 一、程序填空题 1 函数 fun的功能是:从三个形参 a, b, c中找出中间的那个数,作为函数值返回。 例如,当 a=3, b=5, c=4时,中数为 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include int fun(int a, int b, int c) int t; /*found*/ t= (ab) ? (bc?b : (ac?c: _1 _ ): (ac)? _2 _ : (bc)?
2、 c: _3 _ ); return t; main() int a1=3, a2=5, a3=4, r; r=fun(a1, a2, a3); printf(“nThe middle number is: dn“, r); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是: 首先将大写字母转换为对应小写字母;若小写字母为 a u,则将其转换为其后的第 5个字母;若小写字母为 v z,使其值减 21。 转换后的小写字母作为函数值返回。例如,若形参是字母 A,则转换为小写字母f;若形参是字母 W,则转换为小写字母 b。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。
3、 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include char fun(char c) if(c=A &c=a & c=v&cb)?(bc?”表示 abc,根据题目要求,则中间值为 b,若只是满足第一个 “?”前面的条件,而 cb,则选择执行 “(ac?c: _1_)”,当 ac时取值 c,所以 ac)?”是对 a、 c的比较选择,第三空处的 “(bc)?c”根据 b、 c的判断,题目已经给出了 c,所以这里应该是 a。 第三空:第三空中对于 b、 c的判断选择缺少 b,所以这里填 “b”。 二、程序修改题 2 【正确答案】 (1)c=c
4、+32; (2)c=c+5; 【试题解析】 函数的功能是将某些大写字母转换为对应小写字母之后的第五个字母。 (1)第一个标识下 “C=C+32; ”中变量 C没有定义,编译时会提示出错。根据题意,这行语句的作用是将大写字母转换为小写字母, C语句中大写字母转换为对应的小写字母是对原有 ASCII码加 32,小写转换为大写是减 32,所以应将“C=C+32; ”改为 “c=c+32; ”。 (2)第二个标识下是将小写字母转换为其后的第五个字母,字母在 a u之间只加上5就可以了,原题中减 5则是将字母转换到该字母之前的第五个字母,所以第二个标识下 “c=c-5: ”改为 “c=c+5: ”。 三、程序设计题 3 【正确答案】 int i; double fac: 1 0; double sum=1 0; for(i=2; i=n; i+) fac+=sqrt(i); sum+=fac; return sum; 【试题解析】 该程序功能是对题干中给出的多项式的求解。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。