2016年计算机二级《C语言》操作试题及答案大纲

  一、程序填空题(共18分l

2016年计算机二级《C语言》操作试题及答案大纲

下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[o]中,接着把a_所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。

例如,若a所指数组中的数据最初排列为:9、1…4 2 3、6、5、8、7;则按规则移动后,数据排列为:1、9.2、8:3、7、4、6、5。形参13.中存放a所指数组中数据的个数。‘

规定fum函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。请在程序的'下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。不得增行或删行,也不得更改程序的结构!

  二、程序修改题(共18分)

下列给定程序中函数fun的功能是。用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1、1、2、3、5、8、l3、21、……

例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

  三、程序设计题(共24分)

学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fIm的花括号中填入你编写的若干语句。

  
  

  参考答案

  一、程序填空题

【参考答案】(1)a[i](2)a[j](3)a[j]

  【考点分析】

本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,财不执行下面的语句。

  【解题思路】

填空l:for循环语句循环体中将数组元素a[i]赋值给变量max和变量rain。

填空2:通过一次for循环,找到数组中的最大值,if语句的条件表达式是mu

填空3:同理,此处if语句的条件表达式是min>a[j]。

  【解题宝典】

求最大值或者最小值的题目,一般都是假设一个元素最大或最小,然后通过if条件语句将该元素和其他元素进行比较操作来完成。

  、程序修改题

【参考答案】

去掉分号

(2Case l:caBe

2:return l;

【考点分析】

本题考查:switch语句,其一般形式为switch(表达式)

cage常量表达式l:语句l;case常量表达式2:语句2;

cm常量表达式n:语句n;default:语句n+1;

其中switch(表达式)后不应该带有“;”,同时case语句常量后应该是“:”。

  【解题思路】

C语言中,switch语句之后不能有分号,并且case语句常量后应用的是冒号。.

  三、程序设计题

【参考答案】

void fun(STREC*a)

inti:

a一>ave=0.0:

fbr(i=0;iave=a—>ave+·一>s[i];/*求各门成绩的总和}/

a->ave/=N;/}求平均分*/}

【考点分析】

本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。

【解题思路】

本题考查自定义形参的相关知识点,程序流程是这样的:在如n()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC·a,此时,引用成员的方式可以使用指向运算符,即a一>ave和a—>s[i],当然也可用(*a),ave和(*a).S[i]。