1、+2018 年计算机等级考试二级 C 语言程序题练习 17 及答案解析(总分:100.00,做题时间:30 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是调用随机函数 产生 20 个互不相同的整数放在形参 a 所指数组中 (此数组在主函数中已置 0)。请在程序的下画线处填入正确的内容并把下画 线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定程序源如下(分数:30)(1)(分数:10)填空项 1:_(2)(分数:10)填空项 1:_(3)(分数:10)填空项 1:_二、程
2、序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是先从键 盘上输入一个 3 行 3 列矩阵的各个元素的值,然后 输出主对角线元素之和。请改正函数 fun 中的错误或在横线处填上 适当的内容并把横线删除,使它能得出正确的 结果。注意:不要改动 main 函数,不得增行或删行, 也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.编写程序,实现矩阵(3 行 3 列)的转置(即行 列互换)。例如,输入下面的矩阵注意:部分源程序保存在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任
3、何内 容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。(分数:40.00)_+2018 年计算机等级考试二级 C 语言程序题练习 17 答案解析(总分:100.00,做题时间:30 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是调用随机函数 产生 20 个互不相同的整数放在形参 a 所指数组中 (此数组在主函数中已置 0)。请在程序的下画线处填入正确的内容并把下画 线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定程序源如下(分数:30)(1)(分数
4、:10)填空项 1:_ (正确答案:a0i )解析:数组 b 用于存放每列元素中的最大值, 首先将第 i 列的第一个数赋给 bi,然后用 bi与其 他数进行比较,因此此空应填 a0i。(2)(分数:10)填空项 1:_ (正确答案:)解析:if 条件表达式表示当 bi小于 aji时, 把 aji的值赋给 bi,因此此空应该填。(3)(分数:10)填空项 1:_ (正确答案:x,y)解析:fun 函数的调用,通过 fun(int(*a)N,int*b),此空应该填 x,y二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是先从键 盘上输入一个 3
5、行 3 列矩阵的各个元素的值,然后 输出主对角线元素之和。请改正函数 fun 中的错误或在横线处填上 适当的内容并把横线删除,使它能得出正确的 结果。注意:不要改动 main 函数,不得增行或删行, 也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:((1)void fun(int *x, int *y);(2) t=*x; *x=*y; *y=t;)解析:(1) 本题考查的是指针变量作函数参数。一般 变量作参数时,不能改变实参的值,采用指针变量 作参数则能够改变实参的值。主函数中 fun 函数的 调用方式表明 fun 函数的参数应当为指针类型。(2) 此处是一个变量交换操作错误,可知 x、y 是指针类型,变量类型不同,因而 x、y 不能与 t 进 行值的交换。三、程序设计题(总题数:1,分数:40.00)3.编写程序,实现矩阵(3 行 3 列)的转置(即行 列互换)。例如,输入下面的矩阵注意:部分源程序保存在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内 容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。(分数:40.00)_正确答案:()解析:本程序使用 for 循环语句查找小于 lim 的所有数,使用内嵌的循环语句判断该数是否为素数。在做这道题时,需要重点掌握素数的判定方法。