2006年9月全国等级考试三级c语言上机题库(四十)

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

★题目40(无忧id 43 整数统计运算题)

 

已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:

1、求出这文件中共有多少个正整数totNum;

2、求这些数中的各位数字之和是偶数的数的个数totCnt,

以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。

部分源程序存在文件prog1.c中。

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。

#include <stdio.h>

#include <conio.h>

#define MAXNUM 200

 

int xx[MAXNUM];

int totNum=0; /*文件IN.DAT中共有多少个正整数*/

int totCnt=0; /*符合条件的正整数的个数*/

double totPjz=0.0; /*平均值*/

 

int ReadDat(void);

void writeDat(void);

 

void CalValue(void)

{ int i,qw,bw,sw,gw;

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

if(xx[i]>0)

{ totNum++;

qw=xx[i]/1000;

bw=xx[i]/100%10;

sw=xx[i]%100/10;

gw=xx[i]%10;

if((qw+bw+sw+gw)%2==0) { totCnt++; totPjz+=xx[i];}

}

if(totCnt==0) totPjz=0;

else totPjz/=totCnt;

}

 

 

void main()

{

int i;

clrscr();

for(i=0;i<MAXNUM;i++)xx[i]=0;

if(ReadDat()){

printf("数据文件IN.DAT不能打开!/007/n");

return;

}

CalValue();

printf("文件IN.DAT中共有正整数=%d个/n",totNum);

printf("符合条件的正整数的个数=%d个/n",totCnt);

printf("平均值=%.2f/n",totPjz);

writeDat();

}

 

int ReadDat(void)

{

FILE *fp;

int i=0;

 

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

while(!feof(fp)){

fscanf(fp,"%d,",&xx[i++]);

}

fclose(fp);

return 0;

}

 

void writeDat(void)

{

FILE *fp;

fp=fopen("OUT.DAT","w");

fprintf(fp,"%d/n%d/n%6.2f/n",totNum,totCnt,totPjz);

fclose(fp);

}

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答