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

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

www.nanhushi.com     佚名   不详 

 ☆题目21下列程序prog1.c的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。
 xn+1=cos(xn)
 迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,把x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
 请编写函数countvalue()实现程序的要求,最后调用函数writedat()把结果输出到文件out17.dat中。
 部分源程序已给出。
 请勿改动主函数main()和输出数据函数writedat()的内容。
#include
#include
#include

float countvalue()
{ float x0,x1;
 x1=0.0;
 do{ x0=x1;
 x1=cos(x0);
 }while(fabs(x0-x1)>=0.000001);
 return x1;
}

main()
{
 clrscr();
 printf('实根=%f/n',countvalue());
 printf('%f/n',cos(countvalue())-countvalue());
 writedat();
}

writedat()
{
 file *wf;

 wf=fopen('out17.dat','w');
 fprintf(wf,'%f/n',countvalue());
 fclose(wf);
}


****************************************************************************
★题目22
请编写函数countvalue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。
 例如若n为1000时,函数值应为:s=153.909064。
 部分源程序存在文件prog1.c中。
 请勿改动主函数main()和输入输出数据函数progreadwrite()的内容。
#include
#include
#include

double countvalue(int n)
{ int i;
 double s=0.0;
 for(i=1;i if(i%21==0) s+=i;
 return sqrt(s);
}

main()
{
 clrscr();
 printf('自然数之和的平方根=%f/n',countvalue(1000));
 progreadwrite();
}

progreadwrite()
{
 file *fp,*wf;
 int i,n;
 float s;

 fp=fopen('in.dat','r');
 if(fp==null){
 printf('数据文件in.dat不存在!');
 return;
 }
 wf=fopen('out.dat','w');
 for(i=0;i<10;i++){
 fscanf(fp,'%d/n',&n);
 s=countvalue(n);
 fprintf(wf,'%f/n',s);
 }
fclose(fp);
fclose(wf);
}



*********************************************************************
题目23
已知在文件in.dat中存有n个(个数<200)实数,函数readdat()读取这n个实数并存入数组xx中。请编制函数calvalue(),其功能要求:
1、求出这n个实数的平均值aver;
2、分别求出这n个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。
 注意:部分源程序已给出。
 请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
#include
#include
#define maxnum 200

float xx[maxnum] ;
int n= 0 ; /* 文件in.dat中共有多少个实数 */
double aver=0.0;/*平均值*/
double sumint=0.0;/*整数部分之和*/
double sumdec=0.0;/*小数部分之和*/

int readdat(void) ;
void writedat(void) ;

void calvalue(void)
{int i;
 for (i=0;i {sumint+=(long)xx[i];
 sumdec+=xx[i]-(long)xx[i];
 aver+=xx[i];
 }
 aver/=n;
}

void main()
{ int i ;
 clrscr() ;
 for(i = 0 ; i < maxnum ; i++) xx[i] = 0 ;
 if(readdat()) {
 printf('数据文件in.dat不能打开!/007/n') ;
 return ;
 }
 calvalue() ;
 printf('文件in.dat中共有实数=%d个/n', n) ;
 printf('平均值=%.2lf/n', aver) ;
 printf('整数部分之和=%.2lf/n', sumint) ;
 printf('小数部分之和=%.2lf/n', sumdec) ;
 writedat() ;
system('pause');
}

int readdat(void)
{
 file *fp ;
 int i = 0 ;

 if((fp = fopen('in.dat', 'r')) == null) return 1 ;
 while(!feof(fp)) {
 fscanf(fp, '%d,', &xx[i++]) ;
 }
 fclose(fp) ;
 return 0 ;
}

void writedat(void)
{
 file *fp ;

 

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

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

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