问题 问答题

请编制函数ReadDat(),实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute(),分别计算出XX中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。

计算方差的公式如下:

设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。

原始数据文件存放的格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。

注意:部分源程序已给出。

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

试题程序:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAX 1000

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

double ave1=0.0,ave2=0.0,totfe=0.0;

void WriteDat(void);

int ReadDat(void)

int i;

FILE*fp;

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

/***编制函数ReadDat()的部分***/

/******************/

fclose(fp);

return 0;

void Compute(void)

int i,yy[MAX];

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

yy[i]=0;

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

if(xx[i]%2==0)//测试结点i是否是偶数)

yy[even++]=xx[i];//将结点i存入数组yy中

ave2+=xx[i];//将结点i累加存入ave2中

else

//如果结点i不是偶数

odd++;//累加变量odd记录奇数的个数

ave1+=xx[i];)//将xx[i]累加存入ave1中

if(odd==O)ave1=0:

else ave1/=odd;//计算奇数的平均数

if(even==0)ave2=0;

else ave2/=even;//计算偶数的平均数

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

totfc+=(yy[i]-ave2)*(yy[i]-ave2)/even;

void main()

int i;

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

if(ReadDat())

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

return:

Compute();

printf("EVEN=%dAVE1=%fAVER2=%fTOTFC=%f"f,even,ave1,ave2,totfc):

WriteDat();

void WriteDat(void)

FILE*fp:

int i;

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

fprintf(fp,"%d%f%f%f",even,ave1,ave2,totfc);

fclose(fp);

答案

参考答案:

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

{

fscanf(fp,"%d,",&Lxx[i]);//读取文件中的数据存入变量xx[i]中

if((i+A)%A0==0)//每行存A0个数

fscanf(fp," ");

}

//读取行后的换行符

解析:

本题考查文件的操作、奇偶判断和数学公式的计算。函数ReadDat的作用是从文件中读取数据存入数组xx中,因为数据存入文件的格式是每个数据被逗号隔开,所以fscanf(fp,"%d,",&xx[i])语句中的字符串"%d,"要加入逗号。函数Compute的作用是计算方差,思路是首先顺序读取数组xx中的结点,若是偶数则累加存入ave2,个数存入even,若不是偶数(即为奇数)则累加结果存入ave1,个数存入odd。然后计算奇数和偶数的平均数,利用循环结构依次读取存放偶数的数组yy,计算方差totfc。

选择题
阅读理解与欣赏

阅读文段,回答问题。

请等等落在身后的灵魂

麦家

  我曾养过两只狗。一只是朋友送的,德牧,名门血统,姿态高贵,仪表堂堂。我不敢慢待,每天都用上好的骨肉款待,有时还喂羊汤、牛奶。渐渐地,它除了精肉细骨一概不食,包括龙骨和猪皮。到后来,它学会了挑食精中之精,细中之细,超市买来的高价狗粮,它甚至懒得瞄上一眼,就像娇生惯养的小姐,或是满腹怨气的贵妇。而我分明从它慵懒冷漠的眼神里,看到了它深彻的不满和厚重的怨气。

  另外一只是我在部队时养的狼狗。那时,我任务繁重,只能粗生粗养,想起了给他丢点剩饭菜,想不起就任他自生自灭,日子长了,我突然发现,我慢待的不是皱纹、芦苇或其他,我慢待的是真诚,真诚的朋友。这位朋友只需一碗粗粝的糙米饭,加上一点点肉末或油腥,就能令他开心、快乐,令他为我们的”友情“雀跃,神采奕奕,奔跑如风。

  我讲他们的事,不是为了纪念,为了纪念不是这种写法;当然也不是为了板起脸做批判,那很无趣,甚至是傻。我只是想陈述一个道理,这个道理司马光讲过,他说由俭入奢易,由奢入俭难。说得很对,但还不够,远远不够。这不是司马光的问题,而是陈述的问题,是陈述的主旨和陈述本身。其出发点滥觞于我的情绪,一种红色的情绪,一种自找的情绪。

  它叫做沮丧。

  我时常感到沮丧,因为现在这个时代与我的愿望是有距离的,物质的过分泛滥(强势)和情感的过于复杂,歪曲、掩盖、抽离了太多东西,包括真理。我们至深的需要不过如冬日的阳光一般和煦、简单,但总有人,太多人,喜欢顶着烈日,化身飞蛾,投向华丽的火焰,以趋之若鹜或奋发图强。我的沮丧不是因为灭亡,相反,人们学会了极端地展览生存,却同样极端地遗忘了幸福之根本——何止是人,我的德牧就是这样在高标准的物质生活中学会了痛苦,而狼狗却在无声处,给了我莫大的温暖和幽远的感悟。

  是的,幸福必须是单纯的,单纯一点,欲望就可以少一点。有句成语叫做欲壑难填,是无上智慧:欲望就是个永远无法满足的东西,如同多米诺骨牌,打开一扇门,紧接着其他的门跟着就打开了。而绝大部分欲望是无用的,只会让你的生活变得复杂,一复杂就会茫然。太多现代人少了思考,很多问题他们是不问的,生活节奏太快,没有时间去问。人们总是在不停地往前冲,以为前面有很多东西在等待我们,其实,很多东西是在我们身后。我们是应该停下来等一等被我们落在身后的灵魂。

该知道,满足欲望的最好方式就是关闭欲望之门。该知道,”本来无一物,何处惹尘埃“。(选自2010年7月23日《今晚报》)

1.说说题目“请等等落在身后的灵魂”的含义。

_______________________________________________________

2.作者讲述德牧和狼狗故事的作用是什么?

_______________________________________________________

3.结合语境谈谈,为什么说“我的沮丧不是因为灭亡”,而是“人们学会了极端地展览生存,却同样极端地遗忘了幸福之根本”?

_______________________________________________________

4.文中划线的句子运用了__________的论证方法,作者以此论证_______________________________________________________的道理。

5.读了本文,你是否同意作者的观点?请阐述理由。

_______________________________________________________