1、+2018 年计算机等级考试二级 C 语言程序题练习 22 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是:将 a 所指的 3x5 矩阵中第 k 列的元素左移到第 0 列,第 k 列以 后的每列元素依次左移,原来左边的各列依次绕到 右边。例如,有下列矩阵:请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_(2).(分数:10)填
2、空项 1:_(3).(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1.C 中函数 fun 的功能是:根据 形参 m 的值(2m9),在 m 行 m 列的二维数 组中存放如下所示规律的数据,由 main 函数输出。请改正程序函数中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行, 也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)函数 fun 的功能是将 a、b 中的两个两位正整数 合并形成一个新的整数放在 c 中。合并的方式是将 a 中的十位和个位数依次放在变量 c
3、 的十位和千位 ,b 中的十位和个位数依次放在变量 c 的个位和 百位上。例如,当 a=45,b=12 时,调用该函数后, c=5241。注意:部分源程序保存在文件 PROG1.C 中。 数据文件 IN.DAT 中的数据不得修改。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_+2018 年计算机等级考试二级 C 语言程序题练习 22 答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是:将 a 所指的 3x5 矩阵中第 k 列
4、的元素左移到第 0 列,第 k 列以 后的每列元素依次左移,原来左边的各列依次绕到 右边。例如,有下列矩阵:请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_ (正确答案:k)解析:外循环 p 的值为数组移动的次数,试题要求第 k 列左移,则需要移动的次数为 k,所以应填 k。(2).(分数:10)填空项 1:_ (正确答案:N-1)解析:矩阵共 N 列,所以应填 N-1。(3).(分数:10)填空项 1:_ (正
5、确答案:temp)解析:临时变量 temp 中存放的值为数组最左边元素的值,需要把 temp 放到数组的末尾,即放到 aiN-1中,所以应填 temp。二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1.C 中函数 fun 的功能是:根据 形参 m 的值(2m9),在 m 行 m 列的二维数 组中存放如下所示规律的数据,由 main 函数输出。请改正程序函数中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行, 也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:(1)void fun(int aM, int m)(2) ajk =
6、(k+1)*(j+1);)解析:(1)在函数体 fun 中可知,a 是一个字符串数组型变量,设置实参时,用表示是错误的,所以 应改为 void fun(int aM, int m)。(2)根据输出的结果可知,应改为 ajk = (k+1)*(j+1)。三、程序设计题(总题数:1,分数:40.00)函数 fun 的功能是将 a、b 中的两个两位正整数 合并形成一个新的整数放在 c 中。合并的方式是将 a 中的十位和个位数依次放在变量 c 的十位和千位 ,b 中的十位和个位数依次放在变量 c 的个位和 百位上。例如,当 a=45,b=12 时,调用该函数后, c=5241。注意:部分源程序保存在文件 PROG1.C 中。 数据文件 IN.DAT 中的数据不得修改。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:本题是将两个两位数的正整数 a、b 分别取出各 位上的数字,再按条件组成一个新数。取 a 十位数 字的方法是 a/10,取 a 个位数字的方法是 a%10。同 理可取出整数 b 的个位数和十位数。