chapter05-循环结构程序设计习题资料_第1页
chapter05-循环结构程序设计习题资料_第2页
chapter05-循环结构程序设计习题资料_第3页
chapter05-循环结构程序设计习题资料_第4页
chapter05-循环结构程序设计习题资料_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、chapter05-循环结构程序设计习题资料循环结构程序设计习题用/41-1/3+1/5-1/7+.公式求的近似值,直到某一项的绝对值小于10-6为止。3#include #include void main 三三int s;float n, t, pi;t = 1; pi = 0; n = 1.0; s = 1;while (fabs (t) 1e-6)pi = pi + t;n = n + 2;s = -s;t = s / n;pi = pi * 4;printf (pi = %10.6fn, pi);运行结果:运行结果:4求Fibonacci数列前40个数。这个数列有如下特点:第1、2两

2、个数为1、1,从第3个数开始,该数是其前面两个数之和。即: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-25#include void main三三long int f1, f2;int i;f1 = 1;f2 = 1;for (i = 1; i = 20; i+) printf (%12ld %12ld , f1, f2);if (i % 2 = 0) printf (n);f1 = f1 + f2;f2 = f2 + f1;6运行结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 109

3、46 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 10233415571F译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。思路:思路:可以按以下规律将电文变成密码:将字母将字母A变成字母变成字母E,a变成变成e,即变成其后的第即变成其后的第4个字母,个字母,W变变成成A,X变成变成B,Y变成变成C,Z变变成成D。81001nn#inc

4、lude void main 三三char c;while (c = getchar 三三) != n) if (c = a & c = A & c Z & c z) c = c - 26; printf (%c, c);运行结果:China!Glmre!9用“辗转相除法”求两个正整数m和n的最大公约数和最小公倍数。算法如下: 将两数中大的那个放在m中,小的放在n中; 求出m被n除后的余数r; 若余数r为0,则执行步骤(6);否则执行步骤(4); 把除数(n)作为新的被除数(m),把余数r作为新的除数; 重复步骤(2)和(3),直到r为0; 输出n即为最大公约数。m和n

5、相乘除以最大公约数即为最小公倍数。10#include void main 三三int a, b, m, n, t, r;scanf (“%d%d”, &m, &n);if (m n)t = m; m = n; n = t;a = m;b = n;while (r = m % n) != 0)m = n; n = r;printf (“%d和和%d的最大公约数:的最大公约数:%d ”, a,b,n);printf (“最小公倍数:最小公倍数:%dn”, a*b/n);11用牛顿迭代法求下面方程在附近的根:2x3 - 4x2 + 3x - 6 = 0用曲线上某点(x0,y0)的切

6、线代替曲线,以该切线与x轴的交点(x1,0)作为曲线与x轴的交点(x*,0)的近似(所以牛顿迭代法又称为切线法)。 算法:不断循环,直到满足精度x0 = x;求f(x0);求f(x0);x = x0 - f(x0) / f(x0);(根据公式f(x0)=(y-f(x0) / (x-x0)计算) y O x* x1 x0 x12#include #include void main 三三 float x, x0, f, f1;x = 1.5; do x0 = x;f = (2 * x0 - 4) * x0 + 3) * x0 - 6;f1 = (6 * x0 - 8) * x0 + 3;x =

7、x0 - f / f1; while (fabs (x - x0) = 1e-5); printf (x = %6.2fn, x); 运行结果:13用二分法求下面方程在(-10, 10)之间的根:2x3 - 4x2 + 3x - 6 = 0分析:任取两点x1和x2,判断(x1,x2)区间内有无一个实根。如果f(x1)和f(x2)符号相反,说明(x1,x2)之间有一个实根。取(x1,x2) 的中点x,检查f(x)与f(x1)是否同符号,如果不同号,说明实根在(x,x1)区间,这样就已经将寻找根的范围减少了一半了。然后用同样的办法再进 一步缩小范围。再找x1与x2(x2=x)的中点“x”,并且再舍

8、弃其一半区间。如果f(x)与f(x1)同号,则说明根在(x,x2)区间,再取x与 x2的中点,并舍弃其一半区间。用这个办法不断缩小范围,直到区间相当小为止。 14#include #include void main 三三 float x0, x1, x2, fx0, fx1, fx2; do scanf (%f%f, &x1, &x2);fx1 = x1 * (2 * x1 - 4) * x1 + 3) - 6; fx2 = x2 * (2 * x2 - 4) * x2 + 3) - 6; while (fx1 * fx2 0); do x0 = (x1 + x2) / 2;fx0 = x0 * (2 * x0 - 4) * x0 + 3) - 6;if (f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论