C语言第四版课件第6章 循环控制_第1页
C语言第四版课件第6章 循环控制_第2页
C语言第四版课件第6章 循环控制_第3页
C语言第四版课件第6章 循环控制_第4页
C语言第四版课件第6章 循环控制_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第6章循环控制 c程序设计 顺序结构的特点 1 每一条语句按顺序执行 2 每一条语句只执行一遍 不重复执行 3 也没有语句不执行 复习 复习 程序的基本结构 复习 分支结构的特点 1 每一条执行了的语句最多执行一遍 2 不重复执行 3 但有语句不执行 复习 程序的基本结构 第6章循环结构程序设计 主要内容 循环的基本概念while语句dowhile语句for语句循环的嵌套 功能 无条件转移语句作用 1 用if和goto语句构成循环2 跳出多重嵌套循环说明 1 不能用整数作标号2 标签只能出现在goto所在函数内 且唯一3 标签只能加在可执行语句前面4 限制使用goto语句 goto语句及用goto构成循环goto语句一般格式 goto语句标号 标号 语句 goto语句 includemain inti sum 0 i 1 loop sum i i gotoloop includemain inti sum 0 i 1 loop if i 100 sum i i gotoloop printf d sum 例 用if和goto语句构成循环 求1 2 100 循环程序设计 在满足循环条件时 反复执行循环体中的语句 循环的特点 循环体中的语句 在条件满足的情况下 可反复执行循环构成 1循环条件 循环变量 2循环体 循环的概念 while语句构成的循环结构 一般形式 while 表达式 语句 执行流程 循环体语句可以是一条简单语句 也可以是复合语句 while x 0 x includevoidmain inti s i 1 while i 10 s s i i i 1 printf pleaseoutputs d n s 例 求S 1 2 3 10的值 源程序 includevoidmain inti s i 1 while i 10 s s i i i 1 printf pleaseoutputs d n s 用while循环语句实现求1 2 100 includemain inti sum 0 i 1 while i 100 sum sum i i printf d sum 源程序 includevoidmain inti s n scanf pleaseinputn d 例 求S 1 2 3 n的值 dowhile语句构成的循环结构 一般形式 do语句 while 表达式 执行流程 includemain inti sum 0 i 1 do sum sum i i i 1 while i 100 printf d sum do while同while语句的区别 源程序 includevoidmain intsum 0 i scanf d 源程序 includevoidmain intsum 0 i scanf d while和dowhile循环比较 i 0 doi j 20 While i 10 printf d i doi 10 While x 10 printf d i i 0 x 11 While x 10 i x printf d i i 0 x 0do i x While x 10 printf d i while和dowhile循环 for语句 一般形式 for expr expr expr3 循环体语句 执行流程 includemain inti sum 0 for i 1 i 100 i sum i printf d sum for语句中expr1 expr2 expr3类型任意 都可省略 但分号 不可省for 无限循环for语句可以转换成while结构语句 i 1 for i 100 i sum sum i for i 1 i sum sum i for sum 0 i 1 i 100 sum sum i i i 1 for i 100 sum sum i i for 语句相当于while 1 语句 expr1 while expr2 循环体语句 expr3 for语句的几点说明 for i 0 c getchar n i c includemain inti 0 for i 0 i 10 i putchar a i includemain inti 0 for i 10 i putchar a i includemain inti 0 for i 10 putchar a i includemain inti 0 for i 10 putchar a i i 例从a显示到j 运行结果 abcdefghij 例 求 即计算 main inti s n s 1 printf Entern scanf d 练习1 观察以下程序运行结果并分析 main intn 0 while n 3 printf nis d n n n printf That sallthisprgramdoes n 在使用while时 只有位于判断条件之后的单个语句 简单语句或复合语句 才是循环的部分 intmain void intn 0 while n 3 printf nis d n n printf That sallthisprogramdoes n return0 循环在判断条件后的第一个简单或复合语句处就结束了 练习2 观察以下程序运行结果并分析 循环的嵌套 三种循环可互相嵌套 层数不限外层循环可包含两个以上内循环 但不能相互交叉嵌套循环的执行流程 1 while while 2 do do while while 3 while do while main inti j 1 for i 0 i 2 i printf d d n j i 1 01 11 2 main inti j 1 for i 0 i 2 i printf d n j printf d n i main inti j 1 for j 0 j 2 j for i 0 i 2 i printf d d j i printf n 循环的嵌套 101112 0 00 10 21 01 11 22 02 12 2 例 循环嵌套 输出九九表 123456789 1 1234567892 246810121416183 3691215182124274 48121620242832365 510152025303540456 612182430364248547 714212835424956638 816243240485664729 91827364554637281 按如下格式打印100以内整数的平方根表 编程输出如下上三角形式的九九乘法表 例 打印如图显示 include defineROWS6 defineCHARS6intmain void introw charch for row 0 row ROWS row for ch A row ch A CHARS ch printf c ch printf n return0 break语句和continue语句 break语句功能 在循环语句和switch语句中 终止并跳出循环体或开关体 说明 break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中 i 0 while 1 i if i 10 break printf d i voidmain ints 1 k 0 switch s case1 k 1 case2 k 2 break default k 3 printf d k break语句的执行过程 break语句的执行过程 definePI3 14159main intr floatarea for r 1 r100 break printf r d area 2f n r area 例break举例 输出圆面积 面积大于100时停止 includemain inti j charc while 1 c getchar if c a 例break举例 小写字母转换成大写字母 直至输入非字母字符 功能 结束本次循环 跳过循环体中尚未执行的语句 进行下一次是否执行循环体的判断仅用于循环语句中 continue语句 main intn for n 1 n 100 n if n 7 0 continue printf d n continue举例 输出100以内不能被7整除的数 break和continue definePI3 14159main intr floatarea for r 1 r100 break printf d 2f n r area main intn for n 1 n 100 n if n 7 0 continue printf d n 应用综合举例 includemain charc printf inputoneletter enterforfinish n while c getchar n if c a 例从终端输入一行字符 把所有的小写转换成大写 应用综合举例 例 求n以内 不包括n 同时能被3和7整数的所有自然数之和的平方根s main inti j 0 doublek printf pleaseinputn scanf d n for i 0 i n i if i 3 0 应用综合举例 在屏幕上用 显示下面图形 main intx y for x 1 x 7 x for y 1 y x y putch printf n getch 例 在三位整数 100至999 中寻找符合条件的整数 它既是完全平方数 又有两位数字相同 例如144 676等 应用综合举例 includemain intI j k 0 inthun ten data clrscr for j 10 j sqrt 999 j I j j hun I 100 data I hun 100 ten data 10 data data ten 10 if hun ten hun data ten data printf d I getch 应用综合举例 输入一行字符 分别统计出其中英文字母 空格 数字和其他字符的个数 应用综合举例 打印出所有的 水仙花数 所谓 水仙花数 是指一个3位数 其各位数字立方和等于该数本身 例如 153是一水仙花数 因为153 13 53 33 应用综合举例 将1元钱兑换成1分 2分 5分的硬币 若每种面值的硬币都不得少于一个 问有几不同的兑换方法 应用综合举例 我国古代的 张丘建算经 中有这样一道著名的百鸡问题 鸡翁一 值钱五 鸡母一 值钱三 鸡雏三 值钱一 百钱买百鸡 问鸡翁 母 雏各几何 其意为 公鸡每只5元 母鸡每只3元 小鸡3只1元 用100元买100只鸡 问公鸡 母鸡和小鸡各能买多少只 includemain inta n i 1 longintsn 0 tn 0 printf pleaseinputaandn n scanf d d while i n 例求s a aa aaa aaaa aa a的值 其中a是一个数字 例如 2 22 222 2222 22222 此时共有5个数相加 几个数相加由键盘输入 tn tn a sn sn tn tn tn 10 i printf d sn 应用综合举例 用公式求 应用综合举例 应用综合举例 一个数如果恰好等于它的因子之和 这个数就称为 完数 例如 6的因子为1 2 3 而6 1 2 3 因此6是 完数 编程序找出1000之内的所有完数 并按下面格式输出其因子 6itsfactorsare1 2 3 应用综合举例 有一分数序列2 1 3 2 5 3 8 5 13 8 21 13 求出这个数列的前20项之和 Dijkstra 编程的艺术就是处理复杂性的艺术简单是可靠的先决条件优秀的程序员很清楚自己的能力是有限的 所以他对待编程任务的态度是完全谦卑的 特别是 他们会象逃避瘟疫那样逃避 聪明的技巧 1972年图灵奖演讲 练习 在循环语句结构中 当循环条件为 时 执行循环体语句 A 0B falseC trueD 非0 答案 D 以下程序的运行结果是 main intsum 0 i 11 do sum sum i i while i 10 prinf sum d i d sum i A sum 0 i 11B sum 0 i 12C sum 11 i 11D sum 11 i 12 答案 D 练习 对循环语句 for 表达式1 表达式2 表达式3 语句 以下叙述正确的是 A for语句中的三个表达式一个都不能少B for语句中的循环体至少要被执行一次C for语句中的循环体可以是一个复合语句D for语句只能用于循环次数已经确定的情况 答案 C 以下程序段执行后i的值是 inti for i 1 i 5 i A 3B 4C 5D 6 答案 C 练习 以下程序段执行后输出结果是 inti for i 1 i printf d i A 1B 2C 3D 死循环 答案 D 以下程序输出结果是 main inty 9 for y 0 y if y 3 0 pr

温馨提示

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

评论

0/150

提交评论