实验4 循环控制 答案.doc_第1页
实验4 循环控制 答案.doc_第2页
实验4 循环控制 答案.doc_第3页
实验4 循环控制 答案.doc_第4页
实验4 循环控制 答案.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验4 循环控制班级:学号:姓名:日期:一、实验目的(1)熟悉掌握用while语句、dowhile语句和for语句实现循环的方法。(2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。(3)进一步学习调试程序。二、实验内容1while语句while 语句的一般形式为:while(表达式)语句;while 语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。编程:求1-100的奇数和。提示:循环变量的步长值为2。#include void main()int i=1,sum=0;while(i=100)sum=sum+i;i=i+2;printf(sum=%dn,sum);2do-while语句do-while 语句的一般形式为:do语句;while(表达式);do-while 语句的语义是:先执行循环体语句一次, 再判别表达式的值,若为真(非0)则继续循环,否则终止循环。编程:求1100的偶数和。#include void main()int i=0,sum=0;doi=i+2;sum=sum+i;while(i100);printf(sum=%dn,sum);3for语句其一般形式为:for(表达式1;表达式2;表达3)语句;for 语句的语义是:首先计算表达式1 的值。再计算表达式2 的值,若值为真(非0)则执行循环体一次,否则结束循环。执行循环体后再计算表达式3 的值,转回第2 步重复执行。下列程序用于输出fibnocci 数列的前20 项,每行输出5 个。请填空。说明:fibnocci 数列的前两项均为,以后各项等于其前两项之和。#include void main( )int i,f1,f2,f3,n;f1=1;f2=1;printf(n%d %d ,f1,f2);n=2;for(i=1; i=18 ;i+)if (n % 5=0 ) printf(n); f3=f1+f2 ;printf(%d ,f3); n+;f1=f2;f2=f3;4break/continue 语句:说明以下各程序的功能及运行结果并总结Break 和continue 语句的不同用法。#include void main()int i,sum=0;for (i=1;i5) break;sum=sum+i;printf(sum=%5dn,sum);#include void main()int i,sum=0;for (i=1;i=10;i+)if (i=5) continue;sum=sum+i;printf(sum=%5dn,sum);编程:输出100 以内能被7 整除的数。提示:对7100 的每一个数进行测试,如该数不能被7 整除,即模运算不为0,则由continue 语句转去下一次循环。只有模运算为0 时,才能执行后面的printf语句,输出能被7 整除的数。#include void main()int i;for(i=7;i=100;i+)if(i % 7 !=0)continue;printf(%6d,i);printf(n);5循环嵌套三种循环控制语句可以互相嵌套,即在一个循环体内部又可以出现另一循环。输出100 以内的素数。素数是只能被1 和它本身整除的数。判断素数的方法:用一个数分别去除2 到这个数减1(或2 到sqrt(这个数)),如果能被整除,则表明此数不是素数,反之是素数。#include #include void main()int n,i;for(n=2;n=100;n+)for(i=2;i=n) printf(%dt,n);本程序中,第一层循环表示对2100 的数逐个判断是否是素数,在第二层循环中则对数n 用2n-1 逐个去除,若某次除尽则跳出该层循环,说明不是素数。 如果在所有的数都是未除尽的情况下结束循环,则为素数,此时有i=n, 故可经此判断后输出素数。然后转入下一次大循环。编程: 输出9*9 口诀表。提示:分行与列考虑,共9 行9 列,外循环控制行,内循环控制列。#include void main()int i,j;for(i=1;i=9;i+)for(j=1;jn,观察结果是否正确。再输入时,使mn,观察结果是否正确。修改程序,不论m和n为何值(包括负数),都能得到正确的结果。#include void main() int p,r,n,m,temp; printf(please input 2 number:); scanf(%d%d,&n,&m); if(nm) temp=n; n=m; m=temp; p=n*m; while(m!=0) r=n%m; n=m; m=r; printf(their common divisor is %dn,n); printf(their common multiple is %dn,p/n);(2)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。得到正确答案后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。#include void main() char c; int letter=0,space=0,digit=0,other=0; printf(please input:); while(c=getchar()!=n) if(c=a & c=A & c=0 & c=9) digit+; else other+; printf(letter=%d,space=%d,digit=%d,other=%d,letter,space,digit,other);(3)求100-200 之间的素数,把它们按每行5 个素数全部显示出来,并给出素数的个数。#include #include void main()int i,n=0,k;for(i=100;i=200;i+)for(k=2;kint(sqrt(i)n+;printf(%4d,i);if(n % 5 =0) printf(n);(4)用牛顿迭代法求方程在1.5附近的根。在得到正确答案后,请修改程序使所设的x初始值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。#include #include void main() float x1,x0,f,f1; x1=1.5; do x0=x1; f=2*x0*x0*x0-4*x0*x0+3*x0-6; f1=6*x0*x0-8*x0+3; x1=x0-f/f1; while(fabs(x1-x0)=1e-5); printf(The root of equation is %5.2fn,x1);(5)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?#include void main() int day=9,x1,x2=1; while(day0) x1=2*(x2+1); x2=x1; day-; printf(total peaches=%dn,x1);(6)打印出以下图形分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律。每一部分利用双重for 循环,外循环控制行,内循环控制列。内循环又由两个并列的for 循环,一个控制空格的输出,一个控制星号的输出。#include void main()int i,j;for(i

温馨提示

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

评论

0/150

提交评论