|  打印本文  关闭窗口 | |
| 全国计算机等级考试三级C语言上机题91-100 | |
| 作者:佚名 文章来源:不详 点击数 更新时间:2007/12/21 18:06:24 文章录入:杜斌 责任编辑:杜斌 | |
|  | |
| 请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数)。  结果cnt1,cnt2,pj输出到out.dat中。  部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 #include #include #define n 200  void read_dat(int xx[n]) {  int i,j;  file *fp;   fp=fopen('in.dat','r');  for(i=0;i<20;i++){  for(j=0;j<10;j++){  fscanf(fp,'%d,',&xx[i*10+j]);  printf('%d ',xx[i*10+j]);  }  printf('/n');  }  fclose(fp); }  void main() {  int i,j,sum;  int cnt1,cnt2,xx[n];  float pj;  file *fw;   clrscr();  fw=fopen('out.dat','w');  read_dat(xx); /**********************/  sum=0; pj=0.0; cnt1=cnt2=0;  for(i=0;i  else cnt2++;  if(i%2==0) {pj+=xx[i];sum++;}  }  pj/=sum;  /***********************/  printf('/n/ncnt1=%d,cnt2=%d,pj=%6.2f/n',cnt1,cnt2,pj); fprintf(fw,'%d/n%d/n%6.2f/n',cnt1,cnt2,pj); fclose(fw); }   ******************************************************************************* ☆题目92 请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)。  结果max,cnt,pj输出到out.dat中。  部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 #include #include #define n 200  void read_dat(int xx[n]) {  int i,j;  file *fp;   fp=fopen('in.dat','r');  for(i=0;i<20;i++){  for(j=0;j<10;j++){  fscanf(fp,'%d,',&xx[i*10+j]);  printf('%d',xx[i*10+j]);  }  printf('/n');  }  fclose(fp); }  void main() {  int m,temp,n,sum;  int cnt,xx[n],max ;  float pj;  file *fw;   clrscr();  fw=fopen('out.dat','w');  read_dat(xx); /*********************/  cnt=0; max=xx[0]; pj=0.0; n=0;  for(m=0;m  if(xx[m]%3==0||xx[m]%7==0)  { pj+=xx[m]; n++; }  }  pj/=n;  /*********************/  printf('/n/nmax=%d,cnt=%d,pj=%6.2f/n',max,cnt,pj); fprintf(fw,'%d/n%d/n%6.2f/n',max,cnt,pj); fclose(fw); }  ***************************************************************************** ☆题目93 请编制函数readdat()实现从文件in.dat中读取1000个十进制整数到数组xx中;请编制函数compute(),分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值,最后调用函数writedat()把结果输出到out.dat文件中。  计算方差的公式如下:  n 2  totfc=1/n ∑ (xx[i]-aver)  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) {  int i;  file *fp;   if((fp=fopen('in.dat','r'))==null) return 1; /***************编制函数readdat()*****************/  for(i=0;i  if((i+1)%10==0)  fscanf(fp,'/n');  } /*********************************************/  fclose(fp);  return 0; }  void compute(void) { int i;  for(i=0;i  else even++;  aver+=xx[i];  }  aver/=max;  for(i=0;i  totfc/=max; } | |
|  打印本文  关闭窗口 |