实验4循环控制 答案

上传人:mar****e5 文档编号:157278197 上传时间:2022-09-29 格式:DOCX 页数:8 大小:24.14KB
收藏 版权申诉 举报 下载
实验4循环控制 答案_第1页
第1页 / 共8页
实验4循环控制 答案_第2页
第2页 / 共8页
实验4循环控制 答案_第3页
第3页 / 共8页
资源描述:

《实验4循环控制 答案》由会员分享,可在线阅读,更多相关《实验4循环控制 答案(8页珍藏版)》请在装配图网上搜索。

1、实验4循环控制 班级: 学号: 姓名: 日期: 一、实验目的 (1) 熟悉掌握用wlule语句、do—while语句和for语句实现循环的方法。 (2) 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3) 进一步学习调试程序。 二、实验内容 1. while 语句 wlule语句的一般形式为: while(表达式)语句; while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。 编程:求1-100的奇数和。 提示:循环变量的步长值为2。 ^include void inai

2、ii() f i mt i=l,sum=0; while(i<=100) ( sum=sum+i; i=i+2; ) piiiitf("sum=%d\ii,'.sum); ) sun=2500 Ppess any key to continue. 2. do-while ®句 do-wlule语句的一•般形式为: do f I 语句; }wlule(表达式); do-wlule语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0) 则继续循环,否则终止循环。 编程:求1一100的偶数和。 ^include void

3、 main。 mt i=0.sum=0: do ( i=i+2; sum=sum-ri; }while(i<100); prmt^Hsum=%d\nH.sum); ) sum=2550 Press any key to continue 3. for语句 其一般形式为: for(表达式1;表达式2;表达3) 语句; for语句的语义是: ⑴首先计算表达式1的值。 ⑵再计算表达式2的值,若值为真(非0)则执行循环体一次,否则结束循环。 ⑶执行循环体后再计算表达式3的值,转回第2步重复执行。 下列程序用于输出fibnocci数列的前20项,每行输出5个。请填空

4、。 说明:fibnocci数列的前两项均为1,以后各项等于其前两项之和。 ^include void inaui() f I int fl=l;f2=l; printf(H\n%d %d n=2; fbr(i=l; i<=18 ;i++) if(n%5=0) pnnt 町 \1T); f3=fl+f2 : pnntff%d ”,f3);n++;' fl=f2;f2=f3; } } 112 3 5 » 13 21 34 55 89 144 233 377 610 987 159? 2584 4181 6765 Press any key

5、 to continue 4. break/continue 语句: 说明以下各程序的功能及运行结果并总结Break和contmue语句的不同用法。 #include void mam() ( int i,sum=0; foi (i=l;i<=10;i++) {if (i>5) break; sum=sum+i;} p tinrfV' su m=% 5 d W, sum); } sim= 15 Press ans» key to continue ^include void mam() ( int i,sum=0; f

6、or (i=l;i<=10;i++) {if (i<=5) continue; sum=sum+i;} pHnrfV'suni=%5d\iT,suni); } sum= 40 Press any key to continue 编程:输出100以内能被7整除的数。 提示:对7〜100的每一个数进行测试,如该数不能被7整除,即模运算不为0,则由 continue语句转去下一■次循环。只有模运算为0时,才能执行后面的piintf语句,输出能被 7整除的数。 #mclude void niaiii() mt i; for(i=7 ;i v= 10 0; i

7、++) ( if(i % 7 !=0) contmue; pnntf(”%6d”,i); } pnntR侦'); 7 14 21 28 35 42 49 56 63 70 77 84 91 98 Press any key to continue 5. 循环嵌套 三种循环控制语句可■以互相嵌套,即在一个循环体内部又可■以出现另一循环。输出100 以内的素数。 素数是只能被1和它本身整除的数。判断素数的方法:用一个数分别去除2到这个数 减1 (或2到sqrt

8、(这个数)),如果能被整除,则表明此数不是素数,反之是素数。 ^include ^include void main() int nj; fbr(n=2 ;n<=l 00;n++) fbr(i=2;i=n) } } 本程序中,第一层循环表示对2-100的数逐个判断是否是素数,在第二层循环中则对 数n用2-11-1逐个去除,若某次除尽则跳出该层循环,说明不是素数。如果在所有的数 都是未除尽的情况下结束循环,则为素数,此时有i>=n,故可经此判断后输出素数。然后 转入下一次大循环

9、。 5 3 5 7 11 13 17 19 23 29 81 37 41 43 47 53 59 61 67 71 |73 79 83 89 97 Ppess any key to continue. 编程:输出9*9「I诀表。 提示:分行与列考虑,共9行9列,外循环控制行,内循环控制列。 ^include void main() int ij; fbr(i=l;i<=9;i++) ( fbr(j=lj<=iJ++) printf(,,%ld*%ld=%3d ”,认i*j); pnntf(”\n”);

10、 1*1 = 2*1 = 3*1 = 4*1 = 5*1 = 6*1 = 7*1 = 8*1 = 9*1 = Press 3*3= ? 4*3= 12 4*4= 16 5*3= 15 5*4= 20 5*5= 25 6«3= 18 6M= 24 6*5= 30 6商=36 »3= 21 7M= 28 ?«5= 35 7%= 42 7*?= 8*3= 24 8*4= 32 8*5= 40 8*6= 48 8*7= 9*3= 27 9M= 36 9«5= 45 9商=54 9*7= 49 56 8*8= 64 63 9*8= 72 81 46802468 1 i 4^

11、 1 1 ======== *2*2*2*2*2*2*2*2 3 i 今 3 3 3 3 23456789 123456789 any key to continue 6. 编写程序并上机调试。 (1) 输入两个正整数m和n,求它们的最大公约数和最小公倍数。 在运行时,输入的值m>n,观察结果是否正确。 再输入时,使观察结果是否正确。 修改程序,不论m和n为何值(包括负数),都能得到正确的结果。 #mclude void main() f int pj,naiLtemp; printff'please mput 2 number:n); scanf

12、f%d%d”,&n,&m); f temp=n; n=m: m=temp; } p=n*m; while(m!=0) f r=n%m; n=m: m=i; } printff'theii common divisor is %d\n'\n); printff'their common multiple is %d\n”,p/n); ) plea.se input 2 number;24 52 their comnon diuisor is 4 their comnon multiple is 312 Press any key to continue (2)

13、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 得到正确答案后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个 数。 ^include void niam() clw c; int letter=0.space=0jigit=0,othei-0; printff'please input:"); while((c=getchai()) !=,\n,) { iRc>='a‘ && cv=N || c>='A' && cv=Z) letter++; else iRc==,') space++; else iRc>='0

14、' && cv=9) digit++; else other++; } pnntf(Mlettei-%d,space=%d.digit=%d,othei-%dHJettei;space,digit,other); } please input : 849654kj$fiurer rturtir J f £$jerl23#? P4 le t te r =18, s pac e =2dig it =10^ o t her=6Pres s any key to continue (3) 求100-200之间的素数,把它们按每行5个素数全部显示出来,并给出素数的个 数。 #mclu

15、de #mclude void main() { mt i,n=0,k; for(i=100; i<=200; i++) ( fbr(k=2 ;kv=int(sqrt(i)) ;k++) if(i % k==0) break; if(k>mt(sqrt ⑴)) ( n++; pnntR”%4d”,i); if(n % 5 ==0) printRf); ) ) } 101 103 127 131 151 157 179 181 10? 137 163 19± 109 113 139 149 16? 173 1

16、93 197 199Press any hey to continue (4)用牛顿迭代法求方程2F — 4/ +3x —6 = 0在1.5附近的根。 在得到正确答案后,请修改程序使所设的x初始值由1.5改变为100、1000、10000,再 运行,观察结果,分析不同的X初值对结果有没有影响,为什么? 修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的X初始值对迭代的次 数有无影响。 #iiiclude #iiiclude void main() { float xl,xO,f.fl; xl=L5; do { x0=

17、xl; f=2 *x0 *x0 *x0-4*x0*x0+3 *x0-6: fl=6*x0*x0-8 *x0+3; xl=xO-ffl; } wliile(fabs(x 1 -x0)>= 1 e-5); printf(MThe root of equation is %5.2fuT,xl); } I he root o£ equation is 2-80 Press any key to continue^ (5) 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃 了一个,第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩 下的一半零一

18、个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个 桃子? #iiiclude void main() { mt day=9.xl,x2=l; wliile(day>0) { xl=2*(x2+l); x2=xl; day-; } printf(Mtotal peaches=%d ii*\x 1); } total peaches =1534 Press any key to continue (6) 打印出以下图形 大 大大大 火*火大大 ******* 大大大大大 大大大 大 分析:先把图形分成两部分来看待

19、,前四行一个规律,后三行一个规律。每一部分利用 双重for循环,外循环控制行,内循环控制列。内循环又由两个并列的for循环,一*个控制 空格的输出,一个控制星号的输出。 #mclude void niaiii() Hit 1,J; fbr(i=l;i<=4;i++) ( for(j=lj<=4-iJ++) pnntff "); fbr(j=lj<=2*i-l J++) pnntff*”); pnntf(”\n”); ) fbr(i=l;i<4;i++) ( fbr(j=lj<=i;j++) pnntff "); fbr(j=l j<=7-2*i J++) pnntff*”); pnntf(”\n”); ) ) w v w w V K K •/v *■ Press any key to continue 三、预习内容 预习第5章内容。

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!