1、国家二级(C 语言)机试-试卷 48 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是:计算 x 所指数组中 N 个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例如,有 10个正数:46 30 32 40 6 17 45 1548 26,平均值为:30500000 主函数中输出:m300 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLA
2、NKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.请编写一个函数 voidfun(chara,charb,int
3、n),其功能是:删除一个字符串中指定下标的字符。其中,a 指向原字符串,删除指定字符后的字符串存放在 b 所指的数组中,n 中存放指定的下标。例如,输入一个字符串:World,然后输入 3。则调用该函数后的结果为:Word。 注意:部分源程序在文件PROGlC 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 48 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.给定程序中,函数 fun 的功
4、能是:计算 x 所指数组中 N 个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例如,有 10个正数:46 30 32 40 6 17 45 1548 26,平均值为:30500000 主函数中输出:m300 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)*av (2)i (3)xj或(1)*av (2)xi (3)j)解析:解析:本题中函数胁的功能是计算
5、x 所指数组中 N 个数的平均值,并将小于平均值且最接近平均值的数作为函数值返回。寻找最接近平均值的元素类似与寻找最大值或最小值,假定第一个元素小于平均值且最接近平均值,可以算出其和平均值之间的差值,其他元素计算其和平均值的差值,问题就转化为寻找那个能产生差值最小的元素。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得
6、增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)y1; (2)dai;)解析:解析:本题中函数的功能是为一个偶数查找两个素数,这两个素数之和等于该偶数。其中,函数fun 用形参 a 放偶数,指针 b 和 c 放两个素数。把一个偶数分解成 1 和(x-1)两个数是否是素数,再分解为 3 和(x-3)这两个数,判断是否是素数,依此类推,直到找出这两个素数为止。本题中把偶数分解为 i和 d 两个素数。判断 i 是否是素数,如果 i 不是素数,则 i2 再循环;如果 i 是素数,则 d=x-i,然后判断 d 是否是素数。三、程序设计题(总题数:2,分数:4.00)5
7、.程序设计题()(分数:2.00)_解析:6.请编写一个函数 voidfun(chara,charb,intn),其功能是:删除一个字符串中指定下标的字符。其中,a 指向原字符串,删除指定字符后的字符串存放在 b 所指的数组中,n 中存放指定的下标。例如,输入一个字符串:World,然后输入 3。则调用该函数后的结果为:Word。 注意:部分源程序在文件PROGlC 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:(1)该程序功能是删除一个字符串中指定下标的字符。它的解题思路,可以分解为以下两步:逐个判断字符串中的下标是否满足条件,满足条件的就放到题目要求的新串,否则就不放。 (2)从已给部分源程序的 main 主函数开始入手,核心函数“fun(str1,str2,n);”中的参数由题目可知,str1 存放着原始字符串,str2 存放删除了下标为 n 的字符的结果字符串,注意下标是从“0”开始的。