请编制程序,要求:将文件IN92.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的数的算术平均值pj(保留两位小数),结果max,cnt,pj输出到out92.dar中。
部分程序、读函数read_dat(int xx[200])及输出格式已给出。
试题程序:
include<conio.h>
include<stdio.h>
define N 200
void read_dat(int xx[N])
{
int i,j;
FILE *fp;
fp=fopen("IN92.DAT","r");
for(i=0;i<20;i++)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%d,",&xx[i*10+j]);
printf("%d",xx[i*10+j]);
}
printf("\n");
}
fclose(fp);
}
void main()
{
int i,k,cnt,xx[N],max;
float pj;
FILE *fw;
long j=0;
clrscr();
fw=fopen("out92.dat","w");
read_dat(xx);
printf("\n\nmax=%d,cnt=%d,pj=%6.2f/n",max,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);
fclose(fw);
}
第1题:
请编制函数ReadDat实现从文件in.dat中读取1 000个十进制整数到数组XX中,请编制函数Compute分别计算出XX中数值为奇数的个数odd,XX中所有奇数的平均值ave1,并求出xx中数值为偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat把结果输出到0ut.dat文件中。 注意:方差变量必须采用双精度类型。计算方差的公式如下:
设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2 000)注意:部分源程序存放在test.C文件中。 请勿改动主函数main和输出数据函数writeDAT的内容。
第2题:
已知在文件in.dat中存有N个实数(N<200),函数ReadDat是读取这N个实数并存入数组xx中。请编制函数CalValue,其功能要求:1.求出这N个实数的平均值aver;2.分别求出这N个实数的整数部分值之和sumint以及小数部分值之和sumdec,最后调用函数WriteDat把所求的结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。


第3题:
下列给定程序中,函数fun()的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。
请修改程序中的错误,得出正确的结果。
注意:不要改动main()函数,不能增行或删行,也不能更改程序的结构。
试题程序:


(1)错误:m=j;
正确:voidfun(int*b,intn)
(2)错误:voidfun()
正确:m=i;
【解析】本题中函数的功能是求出数组中最大数和次最大数。解题思路是首先求出数组中最大数和次最大数,然后将最大数和次最大数分别放到数组的第一位和第二位。
第一个错误标识下“voidfun(int*b,intn);”函数的定义语法有误,根据C语言语法函数定义后面不应该加“;”,所以“voidfun(int*b,intn);”应该改为“voidfun(int*b,intn)”。
第二个标识符下for循环逐个对m个数据进行选择判断,原题中“m=0;”语句将m值设置为0,在循环中m的值始终是0,不会改变,根据“for(i=0;i<2;i++)”语句中的循环条件,“m=0;”改为“m=i;”。
第4题:
将文件in.dat中的200个整数读至数组XX中。请编制jsValue函数,要求:求出数组XX中的最大数max及最大数的个数cnt和数组XX中的元素值能被3整除或能被7整除的所有数的算术平均值pj。 结果max,cnt,pj输出到out.dat中。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据、主函数main、读函数read dat和输出函数writeDat的内容。
第4类数位分解后按数筛选统计并排序
第5题:
将文件in.dat中的200个整数读至数组XX中。请编制js Vralue函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为0的元素)的元素值的算术平均值pj。 结果cnt1,cnt2,pJ输出到out.dat中。注意:部分源程序存在test.c文件中。请勿改动数据文件in.dat中的任何数据、主函数main、读函数readdat和输出函数writeDatj的内容。
