1、2018 年计算机等级考试二级 C 语言程序题练习 15 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是计算形参 x 所 指数组中 N 个数的平均值(规定所有数均为正数), 将所指数组中小于平均值的数据移至数组的前部, 大于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移 动后的数据。例如,有 10 个正数:46、30、32、40、6、17、 45、15、48、26,平均值为 30.500000。移动后的输出为:30、6、17、15、26、46、32、 40、 4
2、5、 48。请在程序的下画线处填入正确的内容并把下画 线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1)(分数:10)填空项 1:_(2)(分数:10)填空项 1:_(3)(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是统计字 符串中各元音字母(即 A、E、I、0、U)的个数。 注意:字母不分大小写。例如,若输入 THIs is a boot,则输出应该是:1、0、 2、 2、 0。请改正程序中的错误,使
3、它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行, 也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,函数的功能是求出二维数组周 边元素之和,作为函数值返回。二维数组中的值在 主函数中赋予。例如:二维数组中的值为则函数值为 61。注意:部分源程序保存在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何 内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 15 答案解析(总分:100.0
4、0,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是计算形参 x 所 指数组中 N 个数的平均值(规定所有数均为正数), 将所指数组中小于平均值的数据移至数组的前部, 大于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移 动后的数据。例如,有 10 个正数:46、30、32、40、6、17、 45、15、48、26,平均值为 30.500000。移动后的输出为:30、6、17、15、26、46、32、 40、 45、 48。请在程序的下画线处填入正确的内容并把下画 线删除,使程序得出正确的结果。注
5、意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1)(分数:10)填空项 1:_ (正确答案:xi/N)解析:av 代表平均值,本题考查了怎样求平 均值,因此本空应该填写 xi/N。(2)(分数:10)填空项 1:_ (正确答案:j+ 或 +j)解析:通过 for 循环和 if 判断找到 Xi中比平 均值小的数,并把这些值赋值给 yj,因此本空应该 填写 j+或者+j。(3)(分数:10)填空项 1:_ (正确答案:i+ 或 +i)解析:通过 while 循环语句,把 xi中比平均 值大的数放在数组 y 的后半部分,
6、因此本空应该填 写 i+或者+i。二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是统计字 符串中各元音字母(即 A、E、I、0、U)的个数。 注意:字母不分大小写。例如,若输入 THIs is a boot,则输出应该是:1、0、 2、 2、 0。请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行, 也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:((1)numk=0;(2) switch(*s)解析:循环变量是 k,所以是 numk=0;。switch 语句说明如下。(1) sw
7、itch 后的表达式,可以是整型或字符型, 也可以是枚举类型。在新的 ANSIC 标准中允许表达 式的类型为任何类型。(2)每个 case 后的常量表达式只能是由常量组 成的表达式,当 switch 后的表达式的值与某一个常 量表达式的值一致时,程序就转到此 case 后的语句 开始执行。如果没有一个常量表达式的值与 switch 后的值一致,就执行 default 后的语句。(3)各个 case 后的常量表达式的值必须互不相同。(4) 各个 case 的次序不影响执行结果,一般情况下,尽量将出现概率大的 case 放在前面。(5) 在执行完一个 case 后面的语句后,程序会 转到下一个 c
8、ase 后的语句开始执行,因而必须使用 break 语句才能跳出。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,函数的功能是求出二维数组周 边元素之和,作为函数值返回。二维数组中的值在 主函数中赋予。例如:二维数组中的值为则函数值为 61。注意:部分源程序保存在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何 内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:本题采用逐一判断的方式,周边元素的规律是, 其下标值中一定有一个是 0 或 M-1 或 N-1。程序中 的循环语句用来控制数组的行和列,条件语句用来 判断数组元素是否为周边元素。