全国计算机等级考试三级C语言上机题81-90

文章作者 100test 发表时间 2007:07:19 11:33:24
来源 100Test.Com百考试题网


☆题目81
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。
例如:7153,7 1=5 3,则该数满足条件计算平均值pjz1,且个数cnt=cnt 1。8129,8 1<>2 9,则该数不满足条件计算平均值pjz2。
部分源程序存在文件prog1.c中。
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include
int a[300],cnt=0.
double pjz1=0.0,pjz2=0.0.

jsvalue()
{int i,thou,hun,ten,data,n=0.
for(i=0.i<300.i )
{thou=a/1000. hun=a00/100.
ten=a0/10. data=a.
if(thou hun==ten data) {cnt .pjz1 =a.}
else {n .pjz2 =a.}
}
if(cnt==0) pjz1=0.
else pjz1/=cnt.
if(n==0) pjz2=0.
else pjz2/=n.
}

main()
{
int i.

readDat().
jsvalue().
writeDat().
printf("cnt=%d\n满足条件的平均值pzj1=%7.2f\n不满足条件的平均值pzj2=%7.2f\n",cnt,pjz1,pjz2).
}

readDat()
{
FILE *fp.
int i.
fp=fopen("in.dat","r").
for(i=0.i<300.i )fscanf(fp,"%d,",&.a).
fclose(fp).
}

writeDat()
{
FILE *fp.
int i.
fp=fopen("out.dat","w").
fprintf(fp,"%d\n%7.2f\n%7.2f\n",cnt,pjz1,pjz2).
fclose(fp).
}

************************************************************************
★题目82
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果cnt,pjz1,pjz2输
出到out.dat文件。
例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt 1。
9812是非素数,则该数不满足条件计算平均值pjz2。
部分源程序存在文件prog1.c中。
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include
int a[300],cnt=0.
double pjz1=0.0,pjz2=0.0.

int isP(int m)
{int i.

for(i=2.iif(m%i==0)return 0.
return 1.
}

jsvalue()
{int i.
for(i=0.i<300.i )
if(isP(a)) {pjz1 =a.cnt .}
else pjz2 =a.
if(cnt==0) pjz1=0.
else pjz1/=cnt.
if(300-cnt==0) pjz2=0.
else pjz2/=(300-cnt).
}

main()
{
int i.

readDat().
jsvalue().
writeDat().
printf("cnt=%d\n满足条件的平均值pzj1=%7.2f\n不满足条件的平均值pzj2=%7.2f\n",cnt,pjz1,pjz2).
}

readDat()
{
FILE *fp.
int i.
fp=fopen("in.dat","r").
for(i=0.i<300.i )fscanf(fp,"%d",&.a).
fclose(fp).
}

writeDat()
{
FILE *fp.
int i.
fp=fopen("out.dat","w").
fprintf(fp,"%d\n%7.2f\n%7.2f\n",cnt,pjz1,pjz2).
fclose(fp).
}


***********************************************************************
☆题目83
请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。
计算方差的公式如下:
N 2
totfc=1/N ∑ (xx-ave1)
i=1
设N为奇数的个数,xx为奇数,ave1为奇数的平均值。
原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)
部分源程序存在文件prog1.c中。
请勿改动主函数main()和输出数据函数writeDat()的内容。
#include
#include
#include
#define MAX 1000

int xx[MAX],odd=0,even=0.
double ave1=0.0,ave2=0.0,totfc=0.0.
void WriteDat(void).

int ReadDat(void)
{
int i.
FILE *fp.

if((fp=fopen("IN.DAT","r"))==NULL) return 1.

/*********编制函数ReadDat()的部分************/
for(i=0.i{fscanf(fp,"%d,",&.xx).
if((i 1)==0)
fscanf(fp,"\n").
}
/*******************************************/

fclose(fp).
return 0.
}

void Compute(void)
{ int i,yy[MAX].
for(i=0.iyy=0.
for(i=0.iif(xx%2) { yy[odd ]=xx. ave1 =xx.}
else { even . ave2 =xx.}
if(odd==0) ave1=0.
else ave1/=odd.
if(even==0) ave2=0.
else ave2/=even.
for(i=0.itotfc =(yy-ave1)*(yy-ave1)/odd.
}

void main()
{
int i.

for(i=0.iif(ReadDat()){
printf("数据文件IN.DAT不能打开!\007\n").
return.
}
Compute().
printf("ODD=%d\nAVE1=%f\nAVE2=%f\nTOTFC=%f\n",odd,ave1,ave2,totfc).
WriteDat().
}

void WriteDat(void)
{
FILE *fp.
int i.

fp=fopen("OUT.DAT","w").
fprintf(fp,"%d\n%f\n%f\n%f\n",odd,ave1,ave2,totfc).
fclose(fp).
}

*************************************************************************
src="/ncre/js/wxgg.js">

相关文章


2006年9月全国计算机等级考试三级数据库技术笔试试卷
2006年9月全国计算机等级考试三级网络技术笔试试卷(含答案)
2007年4月全国计算机等级考试三级网络技术笔试试卷及参考答案
全国计算机等级考试三级C语言上机题91-100
全国计算机等级考试三级C语言上机题81-90
2007年计算机等考三级信息管理模拟试题汇总
计算机等级考试三级信息管理模拟试卷(6)
计算机等级考试三级信息管理模拟试卷(5)
计算机等级考试三级信息管理模拟试卷(4)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛