1、计算机等级考试二级 C+试题+2017 年及答案解析(总分:99.99,做题时间:90 分钟)一、程序填空题(总题数:1,分数:25.00)给走程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10 个正数:47、30、32、40、6、17、45、15、48、26,其平均值为 30500000。 移动后的输出为:30、6、17、15、26、47、32、40、45、48。 请在程序的下画线处
2、填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 试题程序: (分数:24.99)填空项 1:_填空项 1:_填空项 1:_二、程序修改题(总题数:1,分数:25.00)1.下列给定程序中,函数 fun 的功能是:将十进制正整数 m 转换成 k(2k9)进制数,并按位输出。例如,若输入 8 和 2,则应输出 1000(即十进制数 8 转换成二进制表示是 1000)。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1C 中,不要改动 main 函数,不得增行或删行,也不得更改程
3、序的结构! 试题程序: (分数:25.00)_三、程序设计题(总题数:1,分数:50.00)2.下列程序定义了 NN 的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN,int m),该函数的功能是使数组右上半三角元素中的值乘以 m。 例如,若 m 的值为 2,a 数组中的值为: 则返回主程序后 a 数组中的值应为: 注意:部分源程序在文件 PROG1C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: (分数:50.00)_计算机等级考试二级 C+试题+2017 年答案解析(总分:99.99,做题时间:90
4、 分钟)一、程序填空题(总题数:1,分数:25.00)给走程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10 个正数:47、30、32、40、6、17、45、15、48、26,其平均值为 30500000。 移动后的输出为:30、6、17、15、26、47、32、40、45、48。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLAN
5、K1C 中。 不得增行或删行,也不得更改程序的结构! 试题程序: (分数:24.99)填空项 1:_ (正确答案:xiN)解析:av 代表平均值,本题考查了怎样求平均值,因此本空应该填写 xiN。填空项 1:_ (正确答案:j+或+j)解析:通过 for 循环和 if 判断找到 xi中比平均值小的数,并把这些值赋值给 yj,因此本空应该填写j+或者+j。填空项 1:_ (正确答案:i+或+i)解析:通过 while 循环语句,把 xi中比平均值大的数放在数组 y 的后半部分,因此本空应该填写 i+或者+i。二、程序修改题(总题数:1,分数:25.00)1.下列给定程序中,函数 fun 的功能是
6、:将十进制正整数 m 转换成 k(2k9)进制数,并按位输出。例如,若输入 8 和 2,则应输出 1000(即十进制数 8 转换成二进制表示是 1000)。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1C 中,不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: (分数:25.00)_正确答案:(1)void fun(int m,int k) (2)aai=m%k; (3)printf(“%d“,aai-1);)解析:(1)函数定义的格式错误,不应带有“;”。 (2)将十进制正整数转换为任意进制的数与十进制正整数转换成二进制的数的方法是
7、一样的。从整数 n 译出它的各位 k 进制数值,需采用除 k 取余的方法,即求 n 除 k 的余数,得到它的 k 进制的个位数,接着将 n 除以 k。在 n 不等于 0 的状况下循环,能顺序求出n 的 k 进制的各个位上的数。 (3)在进行 for(i=0;m;i+)循环结束时,i 已经多加了一个 1,所以这里要减去 1。三、程序设计题(总题数:1,分数:50.00)2.下列程序定义了 NN 的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN,int m),该函数的功能是使数组右上半三角元素中的值乘以 m。 例如,若 m 的值为 2,a 数组中的值为: 则返回主程序后 a 数组中的值应为: 注意:部分源程序在文件 PROG1C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: (分数:50.00)_正确答案:( )解析:本程序实现将矩阵中右上半三角元素中的值乘以 m,使用循环语句遍历数组元素,第 1 个循环用于控制行坐标,第 2 个循环用于控制列下标。