2006年全国房价|2006年9月全国等级考试三级c语言上机题库(二十六)

试题集锦 2023-06-14 网络整理 可可

【shitiku.jxxyjl.com--试题集锦】

★题目26(无忧id 37 整数统计运算题)

 

已知在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数readdat()读取这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这文件中共有多少个正整数totnum;2、求这些数右移1位后,产生的新数是偶数的数的个数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,data;

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

if(xx[i]>0)

{ totnum++;

data=xx[i]>>1;

if(data%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);

}

本文来源:https://shitiku.jxxyjl.com/shitijijin2/27197.html

Copyright @ 2011- 考试题库网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计