您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 三级辅导 >> 正文    
  全国计算机等级考试三级C语言上机题91-100 【注册男护士专用博客】          

全国计算机等级考试三级C语言上机题91-100

www.nanhushi.com     佚名   不详 

 题目91
请编制程序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 { if(xx[i]%2) cnt1++;
 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(max for(m=0;m {if(xx[m]==max) cnt++;
 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 { fscanf(fp,'%d,',&xx[i]);
 if((i+1)%10==0)
 fscanf(fp,'/n');
 }
/*********************************************/
 fclose(fp);
 return 0;
}

void compute(void)
{ int i;
 for(i=0;i { if(xx[i]%2) odd++;
 else even++;
 aver+=xx[i];
 }
 aver/=max;
 for(i=0;i totfc+=(xx[i]-aver)*(xx[i]-aver);
 totfc/=max;
}

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    2011年护士资格考试:考…
    2009年初级护士资格考试…
    2009年主管护师考试于12…
    2009年初级护士考试于12…
    2009年初级护师考试于12…
    石家庄市关于2009年度护…
    2009年护士专业技术资格…
    医护技能考试周末举行 4…
    护士“托福”今年7月开考
    护士“托福”考试开始报…
    专 题 栏 目