06年9月23日计算机等级考试四级上机试题

学人智库 时间:2018-02-10 我要投稿
【meiwen.anslib.com - 学人智库】

机试一:

考试时间:9月23日 15:30

  抽到题目:已知数据文件IN.DAT中存有200个两位数且相邻的两个数之间均不相等,并已调用函数readDat()把这些数存入数组b中,请考生编制一个函数jsVal(),实现的功能是对经常上下波动的数据可采用只记录峰值的数据压缩方法,即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原递增现递减或原递减现递增),说明已过峰值,这时就将当前值记录下来,接着将结果依次存入数据b中(从0开始存放),注意数组b中的第一个数据a[0]原样存入b[0]单元中。最后调用输出函数writeDat()把结果c输出到文件OUT.DAT中。

例如:原数据: 35,69,87,73,62,54,60,70,......

压缩后: 35,73,60,......

注意:部分源程序存在文件PROG1.C文件中。

程序中已定义:a[200]、b[200]。

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat的内容。

补充函数:

void jsVal()

{ int i;

b[0]=a[0];cnt=1;

for(i=1;i

if((a>a[i-1]&&a>a[i+1])||(a}

机试二:

考试时间:9月23日 15:00 (供大家参考一下,祝大家上机成功!)

  已知在文件IN.DAT中存有N个实数(N<200), 函数ReadDat( )是读取这N个实数并存入数组xx中。请编制函数CalValue( ), 其功能要求: 1.求出这N个实数的平均值aver; 2.分别求出这N个实数中大于平均值aver的实数的整数部分值之和sumint以及该实数的小数部分值之和sumdec, 最后调用函数WriteDat()把所求的结果输出到文件OUT2.DAT中。

  注意: 部分源程序存放在PROG1.C中。

  请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

void CalValue(void)

{

int i ;

long val ;

for(i = 0 ; i < N ; i++)

aver += xx ;

aver /= (double) N ;

for(i = 0 ; i < N ; i++) {

if(xx > aver) {

val = (long) xx ;

sumint += val ;

sumdec += (xx - val) ;

}

}

}

http://meiwen.anslib.com/