1、国家二级(C 语言)机试-试卷 27-1 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_二、程序修改题(总题数:2,
2、分数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:求整数 x 的 y 次方的低 3 位值。例如,整数 5 的 6 次方为15625,此值的低 3 位值为 625。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 结构体数组中。请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形
3、参返回主函数(规定只有一个最低分)。注意:部分源程序存在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的莅括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 27-1 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.给定程序中,函数 fun 的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请
4、在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)p-next (2)q (3)p-next)解析:解析:本题中函数 fun 的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序,在fun 函数内采用的是选择法排序。 选择排序法中的升序排序,首先从数组中挑选一个最小的元素,把它和第一元素交换,接着从剩下的 n-1 个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。二、程序修改题(总题数
5、:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:求整数 x 的 y 次方的低 3 位值。例如,整数 5 的 6 次方为15625,此值的低 3 位值为 625。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)for(i1; i=y; i+) (2)t=t1000;)解析:解析:本题中函数的功能是求整数 x 的 y 次方的低 3 位值。本题解题过程首先是求 y 次方,然后对结果进行截取。三、程序
6、设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 结构体数组中。请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。注意:部分源程序存在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的莅括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:该程序功能是求最低分数的学生。本题是关于求解结构体中某些成员的最小值,首先将第一个值设定为最小值,并在循环中将其他所有值与该值进行比较,求得最小值。