1、国家二级(C 语言)机试-试卷 6-2 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.函数 fun 的功能是:统计长整数 n 的各个位上出现数字 1、2、3 的次数,并通过外部(全局)变量c1,c2,c3 返回主函数。例如:当 n=123114350 时,结果应该为:c1=3 c2=1c3=2。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_二、程序修改题(总题数:2,分
2、数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中 fun 函数的功能是:求出以下分数序列的前 n 项之和。 和值通过函数值返回 main 函数。例如,若 n5,则应输出:8391667。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把分数最高的学生数据放在 h 所指的数组中,注意
3、:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 注意:部分源程序在文件 PROGlC 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 6-2 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.函数 fun 的功能是:统计长整数 n 的各个位上出现数字 1、2、3 的次数,并通过外部(全局)变量c1,c2,c3 返回主函数。例如:当 n=123114350 时,结果应该为:c1=3
4、 c2=1c3=2。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)n10 (2)break (3)break)解析:解析:函数 fun 的功能是统计长整数 n 的各个位上出现数字 1、2、3 的次数,分别判断 n 的各位数是否是 1、2、3,如果是的话在分别的计数变量上加 1。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中 fun 函数的功能是:求出以下分数序列
5、的前 n 项之和。 和值通过函数值返回 main 函数。例如,若 n5,则应输出:8391667。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)double fun(int n)(2)c=a;a+=b;b=c;)解析:解析:本题中函数的功能是求出分数序列的前 n 项之和。首先根据题干中给出的公式推出每一项之间的关系,求出每一项的表达式,然后求得数列的和。每一项的分母是前一项的分子,分子是前一项分子和分母的和。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2
6、.00)_解析:6.学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把分数最高的学生数据放在 h 所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 注意:部分源程序在文件 PROGlC 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:该程序功能是把分数最高的学生数据放在 h 所指的数组中。本题是关于求解结构体中某些成员的最大值,首先将第一个值设定为最大值,并在循环中将其他所有值与该值进行比较,求得最大值。然后将最大值与所有值进行比较,求得所有的最大值。