考试网 >> IT认证 >> 等级 >> 二级考试 >> 二级C语言上机模拟题及答案[2]

二级C语言上机模拟题及答案[2]

发布时间:2006-06-27 23:27     点击:
分页:[1] 2  下一页

请编制函数ReadDat( )实现从文件FC.IN中读取1000个十进制

整数到数组xx中; 请编制函数Compute()分别计算出xx中奇数的个

数odd, 偶数的个数even, 平均值aver以及方差totfc的值, 最后调

用函数WriteDat()把结果输出到FC1.OUT文件中。

计算方差的公式如下:

1 N

totfc = ── ∑ (xx - aver)^2

N i=1

原始数据文件存放的格式是: 每行存放10个数, 并用逗号隔

开。(每个数均大于0且小于等于2000)

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

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

/*参考答案*/

#include

#include

#include

#define MAX 1000

int xx[MAX], odd = 0, even = 0 ;

double aver = 0.0 , totfc = 0.0 ;

void WriteDat(void) ;

int ReadDat(void)

{

FILE *fp ;

int i,j;

char c,str[20];

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

/***********读入数据并存放到数组xx中*************/

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

{

j = 0;

while((c = (char) fgetc(fp)) != EOF)

{

if(c == ',')

{

str[j] = '\0';

break;

}

else if(c != '\n' && c != '\r')/*去掉回车换行符*/

{

str[j] = c;

++j;

}

}

xx = atoi(str);

if(c == EOF)

break;

}

fclose(fp) ;

return 0 ;

}

void Compute(void)

{

int i;

long count = 0;

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

{

if(xx & 1)

odd++;

else

even++;

count += xx;

}

aver = (double)count/MAX;

totfc += (xx - aver)*(xx - aver);
分页:[1] 2  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有