- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计验报告2
实验2 流程控制实验2.1 实验目的(1)掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。(2)熟练运用for、while、do-while语句来编写程序。(3)练习转移语句和标号语句的使用。(4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。2.2 实验内容及要求2.2.1.源程序改错下面是计算s=n! 的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。例如,8!=40320。1 #include stdio.h2 int main()3 { int i,n,s=1;4 printf(Please enter n:);5 scanf(%d,n);6 for(i=1,i=n,i++)7 s=s*i;8 printf(%d! = %d,n,s);9 }10 return 0;解答:错误修改:输入字符格式错误,正确形式为:scanf(“%d”,n);return 0;与}的相对位置错误,正确形式为:return0;}错误修改后的程序: #include stdio.hint main(){ int i,n,s=1;printf(Please enter n:); scanf(%d,n); for(i=1,i=n,i++) s=s*i; printf(%d! = %d,n,s); return 0; }(3) 运行结果: 图1 2.2.1源程序改错测试图2.2.2.源程序修改替换(1)修改第1题,分别用while和do-while语句替换for语句。替换为While语句1)在判断while语句前,要先定义i=1,再执行while语句。替换后的程序如下所示:#include stdio.hint main(){ int i,n,s=1; printf(please enter n:); scanf(%d,n); i=1; while (i=n) { s=s*i; i++; } printf(%d!=%d,n,s); return 0;}2)运行截图及说明 图2 2.2.2(1)while语句测试图替换为do-while语句要先定义i=1,再执行while语句。替换后的程序如下所示:#include stdio.hint main(){ int i,n,s=1; printf(please enter n:); scanf(%d,n); i=1; do{ s=s*i; i++; }while(i=n); printf(%d!=%d,n,s); return 0;}运行截图及说明图3 2.2.2(2)do-while语句测试图(2)修改第1题,输入改为“整数S”,输出改为“满足n!≥S的最小整数n”。例如输入整数40310,输出结果为n=8。1)解题思路:先定义S,x=1,i=1,输入S,判断x=S,如果为真,则有x=x*i,i=i+1,再返回判断x=s,直至值为假,输出i-1的值。源程序为:#include stdio.hint main(){int S;int x=1,i=1;printf(请输入整数S:);scanf(%d,S);while(x=S){x=x*i;i=i+1;}printf(满足n!=S的最小整数n是%d,i-1);return 0;} 2)运行截图及说明 图4 2.2.2(3)程序测试图2.2.3.程序设计(1) 假设工资税金按以下方法计算:x < 1000元,不收取税金;1000 ≤ x < 2000,收取5%的税金;2000 ≤ x < 3000,收取10%的税金;3000 ≤ x < 4000,收取15%的税金;4000 ≤ x < 5000,收取20%的税金;x>5000,收取25%的税金。输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。解答:if语句:解题思路:定义浮点数工资金额x,应收取税金额为y。输入工资金额x,判断x属于哪一个收入范围。如果x1000,则y=0。如果x=1000且x2000,则y=5%*(x-1000)=0.05*x-50。如果x=2000且x3000,则y=5%*1000+10%*(x-2000)=0.1x-150。如果x=3000且x4000,则y=5%*1000+10%*1000+15%*(x-3000)=0.15x-300。如果x=4000且x5000,则y=5%*1000+10%*1000+15%*1000+20%*(x-4000)=0.2x-500。如果x=5000,y=5%*1000+10%*10
文档评论(0)