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

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

www.nanhushi.com     佚名   不详 

 ☆题目81
已知数据文件in.dat中存有300个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writedat()把结果输出到out.dat文件。
 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。
 部分源程序存在文件prog1.c中。
 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。
 请勿改动主函数main()、读函数readdat()和写函数writedat()的内容。
#include
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;

jsvalue()
{int i,thou,hun,ten,data,n=0;
 for(i=0;i<300;i++)
 {thou=a[i]/1000; hun=a[i]%1000/100;
 ten=a[i]%100/10; data=a[i]%10;
 if(thou+hun==ten+data) {cnt++;pjz1+=a[i];}
 else {n++;pjz2+=a[i];}
 }
 if(cnt==0) pjz1=0;
 else pjz1/=cnt;
 if(n==0) pjz2=0;
 else pjz2/=n;
}

main()
{
 int i;

 readdat();
 jsvalue();
 writedat();
 printf('cnt=%d/n满足条件的平均值pzj1=%7.2f/n不满足条件的平均值pzj2=%7.2f/n',cnt,pjz1,pjz2);
}

readdat()
{
 file *fp;
 int i;
 fp=fopen('in.dat','r');
 for(i=0;i<300;i++)fscanf(fp,'%d,',&a[i]);
 fclose(fp);
}

writedat()
{
 file *fp;
 int i;
 fp=fopen('out.dat','w');
 fprintf(fp,'%d/n%7.2f/n%7.2f/n',cnt,pjz1,pjz2);
 fclose(fp);
}

************************************************************************
★题目82
已知数据文件in.dat中存有300个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writedat()把结果cnt,pjz1,pjz2输
出到out.dat文件。
 例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。
 9812是非素数,则该数不满足条件计算平均值pjz2。
 部分源程序存在文件prog1.c中。
 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2
 请勿改动主函数main()、读函数readdat()和写函数writedat()的内容。
#include
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;

int isp(int m)
{int i;

 for(i=2;i if(m%i==0)return 0;
 return 1;
}

jsvalue()
{int i;
 for(i=0;i<300;i++)
 if(isp(a[i])) {pjz1+=a[i];cnt++;}
 else pjz2+=a[i];
 if(cnt==0) pjz1=0;
 else pjz1/=cnt;
 if(300-cnt==0) pjz2=0;
 else pjz2/=(300-cnt);
}

main()
{
 int i;

 readdat();
 jsvalue();
 writedat();
 printf('cnt=%d/n满足条件的平均值pzj1=%7.2f/n不满足条件的平均值pzj2=%7.2f/n',cnt,pjz1,pjz2);
}

readdat()
{
 file *fp;
 int i;
 fp=fopen('in.dat','r');
 for(i=0;i<300;i++)fscanf(fp,'%d',&a[i]);
 fclose(fp);
}

writedat()
{
 file *fp;
 int i;
 fp=fopen('out.dat','w');
 fprintf(fp,'%d/n%7.2f/n%7.2f/n',cnt,pjz1,pjz2);
 fclose(fp);
}


***********************************************************************
☆题目83
请编制函数readdat()实现从文件in.dat中读取1000个十进制整数到数组xx中;请编制函数compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数writedat()把结果输出到out.dat文件中。
 计算方差的公式如下:
 n 2
 totfc=1/n ∑ (xx[i]-ave1)
 i=1
 设n为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。
 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)

 

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

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

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