第3章C程序的控制结.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系运算注意: 复 习 C实现选择(分支)结构的方法 if~else~语句 switch语句 两种方法均可实现单分支、双分支及多分支选择 在if之后的表达式可以是任意类型的表达式,取逻辑值 else只能和if配对使用,配对原则是“else总是和上面最近的未曾配对的if配对”,决定在哪个if条件不成立时执行该else之后的语句。 else和if都只能控制其后的一条语句,若有多条语句要用{}括起来构成复合语句。 switch之后的表达式一般是整型或字符型,其中的case子句列其可能的值,进入某个子句执行后只有遇到break或执行结束后退出switch 条件运算符:三目运算符,右结合 相关算法: 求最值 交换 简单排序 分段函数 课后练习 1、输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。 2、输出所有的水仙花数。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如,153是水仙花数,因为153=13+53+33。 3、求出序列2/1、3/2、5/3、8/5、13/8、21/13……前20项之和。 4、设计一个程序要求输入两个整数x和n,计算xn 。 【案例3.8】如果能将一张厚度为0.05mm的报纸对折,再对折,再对折……对折50次后,报纸的厚度是多少? 【程序详解】 /*ex3-8.c 报纸的对折问题 */ #includestdio.h void main() { double a=0.0005; //a表示纸的厚度,初始为0.0005米 int i; for( i=1;i=50;i++) //对折50次 { a=a*2; //每对折一次厚度是原来的2倍 } printf(这张纸对折50次后厚度为%.2f米\n,a); //保留两位小数输出 } 【案例3.9】求具有 性质的四位数。 程序的算法描述如图3-17所示。 开始 Yes No Yes n=1000 输出n 分解后两位cd 分解前两位ab n10000 No (ab+cd)*(ab+cd)=n n++ 结束 n=1000 分解前两位ab 分解后两位cd 当 n10000时 (ab+cd)*(ab+cd)==n Yes No n++ 输出n (a) 案例3.9的流程图 (b) 案例3.9的N-S图 【归纳总结】 for循环中的“表达式1”、“表达式2”和“表达式3”都是可选项,即可以缺省,但“;”不能缺省。 (1)“表达式1”一般用于为进入for循环的有关变量赋初值,可以是赋值表达式、逗号表达式等。 (2)“表达式2”是循环执行条件,每次执行循环体语句前,都要判断条件是否成立,只要其值非0就执行循环体。 (3) 在循环体语句执行后,立即执行“表达式3”,“表达式3”一般用于改变有关变量的值,特别是常用于改变与循环条件有关的变量值。 for循环语句可以转换成while循环语句,以下for语句和while语句等价 for(i=1; i=100; i++) sum=sum+i; i=1; while(i=100) { sum=sum+i; i++; } 3.2.4 break语句和continue语句 1.break语句 break语句只能用在switch语句和循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的语句。 【案例3.10】把316表示为两数之和,其中一个是13的倍数,另一个是11的倍数 【程序详解】 /*ex3-10.c 316分解问题算法 */ #include stdio.h void main() { int m; for(m=1;;++m) if((316-13*m)%11==0) break; //跳出本层循环 printf(316=%d+%d\n, 13*m, 316-13*m); } 【归纳总结】 使用break语句在一些场合下使编程更加灵活、方便。如上述程序,由于循环的次数事先无法确定,如果没有break语句,将会构成一个死循环。因为使用了break语句,使得程序在满足条件(316-13*m)%11==0时,直接结束循环。 2. continue语句 continue语句可以结束本层本次循环,即不再执行循环体中continue语句之后的语句,转入下一次循环条件的判断。与break语句不同的

文档评论(0)

文档精品 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档