1、国家二级(C 语言)机试-试卷 75 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.函数 fun 的功能是进行数字字符转换。若形参 ch 中是数字字符09,则0转换成9,1转换成8,2转换成7,9转换成0;若是其他字符则保持不变;并将转换后的结果作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构!(分数:2.00)_二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(
2、分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1、x2、x3 分别输入 15 112,则输出结果应当是:330。请改正程序中的错误,使它能得出正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 (分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.请编写函数 fun,其功能是求出数组的最大元素在数组中的下标并存放在 k 所指的存储单元中。例如,输入如下整数:876 675 896 10l 30l 401 980 431451 777 则输出结
3、果为:6,980 注意:部分源程序在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 75 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.函数 fun 的功能是进行数字字符转换。若形参 ch 中是数字字符09,则0转换成9,1转换成8,2转换成7,9转换成0;若是其他字符则保持不变;并将转换后的结果作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得
4、出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构!(分数:2.00)_正确答案:(正确答案:(1)char (2)ch9 (3)0)解析:解析:函数 fun 的功能是进行数字字符转换,若是非数字字符则保持不变,因此首先对每个字符都必须先判断是否是数字字符,如果是数字字符则进行数字字符的转换。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1、x2、x3 分别输入 15 112,则输出结果应当是:330
5、。请改正程序中的错误,使它能得出正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 (分数:2.00)_正确答案:(正确答案:(1)int fun(int x, int y, int z)(2)return j;)解析:解析:本题中函数的功能是求三个数的最小公倍数。fun 函数辛接收的值能同时被 x、y、z 除尽的最小数就是它们的最小公倍数。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.请编写函数 fun,其功能是求出数组的最大元素在数组中的下标并存放在 k 所指的存储单元中。例如,输入如下整数:876 675 896
6、 10l 30l 401 980 431451 777 则输出结果为:6,980 注意:部分源程序在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:(1)该程序功能是求最大元素在数组中的下标。它的解题思路是,用最大值变量 max 标记第一个待找数据,逐个把所有待找数据和 max 进行比较,并用 pos 标记其当前最大值所在位置,从而找出最大值。(2)从已给部分源程序的 main 主函数开始入手,核心函数“fun(a,10,k);”中的参数 a 存放着给出的整数,fun 函数实现查找最大元素的下标。