全国计算机二级考试编程系统复习题.docVIP

  • 20
  • 0
  • 约2.18万字
  • 约 26页
  • 2017-08-24 发布于云南
  • 举报

全国计算机二级考试编程系统复习题.doc

统考复习题 1. 编写程序,用牛顿切线法求方程f(x)=x+㏑x-1.56=0的近似实根r,迭代初值为2,精确到0.0001。(注意:㏑x是以e为底的自然对数)(提示:牛顿切线法的计算公式为x=x-f(x)/f′(x))#include stdio.h #include math.h void main() {float x0,x1; x0=2; x1=x0-(x0+log(x0)-1.56)/(1+1/x0); do {x0=x1; x1=x0-(x0+log(x0)-1.56)/(1+1/x0);} while(fabs(x0-x1)1e-4); printf(x=%6.4f\n,x1); } 运行结果:x= 1.2987 2. 编写程序,用牛顿切线法求方程f(x)= x+㏒x-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。(注意:㏒x是以10为底常用对数lgx)(提示:必须把方程f(x)=0化成其等价形式x=g(x))(本题允许使用其他迭代法) #include stdio.h #include math.h void main() {float x0,x1; x0=2.5; x1=x0-(x0+log10(x0)-3.18)/(1+1/(x0*log(10))); do {x0=x1; x1=x0-(x0+log10(x0)-3.18)/(1+1/(x0*log(10))); } while(fabs(x0-x1)1e-4); printf(x=%10.4f\n,x1); } 运行结果:x=2.741938 3. 编写程序,用普通迭代法求方程f(x)= x+㏒x-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。(注意:㏒x是以10为底常用对数lgx)(提示:必须把方程f(x)=0化成其等价形式x=g(x))(本题允许使用其他迭代法) 要求:在运行程序时,使用文本框或InputBox函数输入迭代初值,并用适当的方法输出运算结果 #include stdio.h #include math.h void main() {float x0,x1; x0=2.5; x1=3.18-log10(x0); do {x0=x1; x1=3.18-log10(x0);} while(fabs(x0-x1)1e-4); printf(x=%7.4f\n,x1); } 运行结果:x=2.741938 4. 编写程序,用牛顿切线法求方程f(x)=x^3+2x^2-14=0(其中^表示幂运算),在区间(0,5)上的近似实根r,迭代初值自选,精确到0.0001。{提示:牛顿切线法的计算公式为x=x-f(x)/ f’(x)#include stdio.h #include math.h void main() {float x0,x1; x0=2.5; x1=x0-(pow(x0,3)+2*pow(x0,2)-14)/(3*pow(x0,2)+4*x0) ; do {x0=x1; x1=x0-(pow(x0,3)+2*pow(x0,2)-14)/(3*pow(x0,2)+4*x0) ;} while(fabs(x0-x1)1e-4); printf(x=%f\n,x1); } 运行结果:x=1.895706 5. 编写程序,用二分法求一元非线性方程f(x)=x+cosx-2.8=0在区间(0,5)上的近似实根r,精确到0.0001。 #include stdio.h #include math.h double f(double x) { double y; y=x+cos(x)-2.8; return y; } double xpoint(double x1,double x2) { double y; y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return y; } double root(double x1,double x2) { double x,y,y1; y1=f(x1); do { x=xpoint(x1,x2); y=f(x); if(y*y10) { y1=y;x1=x;} else x2=x; }while(

文档评论(0)

1亿VIP精品文档

相关文档