C语言循环结构程序设计实验报告.doc

上传人:飞****2 文档编号:52768084 上传时间:2022-10-23 格式:DOC 页数:9 大小:60.50KB
返回 下载 相关 举报
C语言循环结构程序设计实验报告.doc_第1页
第1页 / 共9页
C语言循环结构程序设计实验报告.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《C语言循环结构程序设计实验报告.doc》由会员分享,可在线阅读,更多相关《C语言循环结构程序设计实验报告.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、云南大学数学与统计学实验教学中心实验报告课程名称:程序设计和算法语言学期: 20122013学年下学期成绩:指导教师:学生姓名:学生学号实验名称:循环结构程序设计实验编号:四实验日期:实验学时: 3学院: 专业年级:一、实验目的1进一步练习选择结构的程序设计。2练习并掌握实现循环结构的三种方法。3练习并掌握选择结构与循环结构的嵌套。4掌握多重循环的应用。5学会单步跟踪的操作方法。二、实验内容实验内容和步骤1 分别用三种循环语句(while语句、do-while语句、for语句),实现求1 100的累加和。编程上机调试,总结出三种循环语句哪种实现起来方便、灵活。while语句do-while语句

2、#include#includevoid main() void main() int i=1,sum=0; int i=1,sum=0; while(i=100) do sum=sum+i; sum=sum+i; i+; i+; printf(“%dn”,sum); while(i=100); printf(“%dn”,sum); 运行结果:5050 for语句#includevoid main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(“%dn”,sum); 252 求 n! (1!+2!+3!+25!)。n=1程序如下:main

3、() float n,s=0,t=1;for(n=1;n=25;n+) t=t*n; s=s+t; printf(“1!+2!+3!+ +25!=%en”,s);上机运行,并记录下结果。然后用另外两种循环语句实现上述功能。运行结果:1!+2!+3!+ .+25!=1.61587e+25while语句:main() float n=1,s=0,t=1; while(n=25) t=t*n;s=s+t;n+; printf(“1!+2!+3!+ +25!=%en”,s);do-while语句:main() float n=1,s=0,t=1; do t=t*n;s=s+t;n+; while(n=

4、25);printf(“1!+2!+3!+ +25!=%en”,s);3 指出下面三个程序的功能,当输入“quit?”时,它们的执行结果是什么?#includemain() char c;c=getchar();while(c!=?) putchar(c); c=getchar(); 程序功能:输入的字符不是“?”时,就将该字符输出;若输入字符“?”时,不输出任何值。运行结果:输入”quit?”时,输出:quit #includemain() char c;while( c=getchar()!=?) putchar(+c); 程序功能:输入的字符不是“?”时,将其ASCII值自加一后,输出字

5、符;遇到?时,停止运行。运行结果:输入”quit?”时,输出:rvju #include main() while(putchar(getchar()!=?);程序功能:将输入的字符原样输出运行结果:输入”quit?”时,输出:quit?分析输出的三种不同结果,在实验报告中写出为什么。*4 换零钱。把一元钱全兑换成硬币,有多少种兑换方法?参考程序如下:main() int i,j,k,n;n=100,k=0;for(i=0;i=n/5;i+) for(j=0;j=(n-i*5)/2;j+) printf(“ 5 cent=%dt 2 cent=%dt 1 cent=%dn”,i,j.n-i*5

6、-j*2); k+; printf(“total times=%dn”,k);*5 穿越沙漠。用一辆吉普车穿越1000公里的沙漠。吉普车的总装油量为500加仑,耗油量为1加仑/公里。由于沙漠中没有油库,必须先用车在沙漠中建立临时加油站,该吉普车要以最少的油耗穿越沙漠,应在什么地方建立临时油库,以及在什么地方安放多少油最好?参考程序如下:main() int k=1; float station,distation,total;station=distation=total=500.0;while(distation1000.0) printf(“station(%d)=%9.4f oils t

7、otal(%d)=%10.4fn”, k,station,k,total); total=500.0*+k; station=500.0/(2*k-1); diststion + =station; distation - =station; station=1000.0-distation; printf(“station(%d)=%9.4f oils total(%d)=%10.4fn”, k,station,k,(k-1)*500.0+(2*k-1)*station); 【上机实习指导】1输入例6.2.上机运行程序,分析运行结果。用单步跟踪观察while语句的执行过程:连续按三次F8键,

8、再用两次Ctrl-F7操作分别将i和sum的值显示出来,然后不按断F8键,每次按F8后,观察绿条的变化和变量值的变化情况,以此来分析并弄清while语句的执行过程。修改程序,实现s=1+1/2+1/3+1/10。运行结果:5050每次按F8后,绿条会在while语句,sum=sum+i;i+;中移动,并且i和sum的值也有变化,不断地增加一,直到不满足条件。开始i=1;sum=0i=10t=1/isum=sum+ti+输出sum结束#includevoid main() float i,sum=0,t; i=1; while(i=10) t=1/i; sum=sum+t; i+; printf

9、(%fn,sum);【自编程序上机】1计算下列级数和 s=1-(2/3)+(3/5)-(4/7)+(-1)n(n+1)/(2n+1)直到最后一项的绝对值小于10-4为止(注意:是(n+1)/(2n+1)。具体要求如下:画出流程图。除了要输出级数和s外,同时要求输出总的项数n。输出形式为:n=具体值,s=具体值#include#includevoid main()n=1;sum=1开始sum=sum+pow(-1,n)*(n+1)/(2*n+1) int n=1; float sum=1;n+ do fabs(n+1)*(2*n+1)(1e-004) sum=sum+pow(-1,n)*(n+1

10、)/(2*n+1); n+; while(fabs(n+1)*(2*n+1)(1e-004); printf(n=%d,sum=%f,n,sum);输出n,sum运行结果:n=2,sum=0.结束2如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,开始例如:6的因子为1,2,3,且1236,因此6是一个“完数”。计算并输出1000以内的所有“完数”之和。具体要求如下:sum=0所有循环均用for循环。输出要有文字说明,并同时输出各“完数”。输出形式为:完数1+完数2+=和值m=2#includevoid main()m=1000 int i,k,m,n,sum=0; for(m=2;m

11、=1000;m+) 真k=m/2,n=0,i=1 for(k=m/2,n=0,i=1;i=k;i+) i=k if(m%i=0) n=n+i; if(m=n)真m%i=0 sum=sum+m; printf(%d+,m);n=n+i i+ printf(b=%dn,sum);m=nm+输出m+sum=sum+m 运行结果: 6+28+496=530输出sum结束3P121 6.14。要求用循环结构实现。4百钱买百鸡问题。已知公鸡每只5元,母鸡每只3元,小鸡1元3只,要求100元钱正好买100只鸡,则应买公鸡、母鸡的小鸡各多少只?5某班有学生n人,从终端读入n及n个人学生的成绩,试编程实现以下功

12、能:印出前3个最好成绩及取得每个最好成绩的人数;若90分以上计为优,7589分计为良,6074分计为中,60分以下计为不及格,试统计各档成绩所占百分率。习题 下列论题哪些是错误的?语言没有goto语句。While表达式语句的作用是:当表达式的值为时重复执行循环体语句。do(语句)while(表达式)的作用是:重复执行循环体(“语句”),直到表达式成立(其值为真)。 “dowhile”语句中,写在do后面。While前面的若干语句,不必用花括号括起来。 break语句用于退出条件语句和循环语句的判断。 contiune语句表示将循环继续下去。凡是while语句能解决的问题也能用dowhile语句

13、解决。凡是用while语句能解决的问题都可以用for语句实现。凡是用for语句能解决的问题都可以用while语句实现。造成“死循环“的主要原因是循环变量的值没有得到必要的修改。2 下列程序存在哪些错误? 100 (1)求 sum= 1/n i=1main() int n,sum;n=1;while(n100) sum+=n;n+;printf(“sum=%fn”,sum);sum没有初始化,while(n=0) if(smax) max=s; sum=sum+s;n=n+1; a=sum/n; printf(“max=%f,a=%fn”,max,a);没有定义s,sum没有初始化,max的初始

14、值不应为0,(3) 计算并输出(2n+1)超过1000的第一个n值。 n=1main() int n=1,sum=0;for(; ; n+) sum=sum+(2*n+1); if(sum2000) break;printf(“n=%d,sum=%dn”,n,sum); if(sum1000)break;for中的表达式2不能省去求21000之间的全部素数(每行显示10个数)。#include “math.h”main() int m=3,k,i,n=1; printf(“%7d”,2); do if(n%10=0) printf(“n”); k=sqrt(m); for(i=2;i=k+1)

15、 printf(“%8d”,m); n+; while m1000; printf(“n”); if(n%10=0) while(m=1000)开始3 sn=a+aa+aa,其中a是1-9中的一个数字。n为一正整数,a和n均从键盘输入。(例如输入n,a为4,sn=8+88+888+8888) #includevoid main()sn=0;t=a int a,n,t,i;输入a,n long sn=0; scanf(%d,%d,&a,&n);i=1 t=a; for(i=1;i=n;i+)i=n sn=sn+a; a=a*10+t; sn=sn+a printf(sn=%ldn,sn);a=a*10+ti+4打印以下图案 * * * * * * * * *输出sn * * * * * * * * * * * *结束 * * * * 5求sinx= (-1)n x2n+1/(2n+1)!的近似值,精确到| x2n+1/(2n+1)!|10-6 n=0#include#includevoid main() int n;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁