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