《xianxingdaish》PPT课件.ppt

上传人:sh****n 文档编号:6623377 上传时间:2020-03-01 格式:PPT 页数:63 大小:825.81KB
返回 下载 相关 举报
《xianxingdaish》PPT课件.ppt_第1页
第1页 / 共63页
《xianxingdaish》PPT课件.ppt_第2页
第2页 / 共63页
《xianxingdaish》PPT课件.ppt_第3页
第3页 / 共63页
点击查看更多>>
资源描述
第6章循环控制 程序的基本结构 顺序结构的特点 每一条语句按顺序执行 每一条语句只执行一遍 不重复执行 也没有语句不执行 复习 顺序结构 选择结构的特点 每一条执行了的语句都只执行一遍 不重复执行 但有语句不执行 复习 选择结构 循环的必要性2 1 intresult1 result2 result3 intresult4 result5 result1 1 10 printf 1 10 d n result1 result2 2 10 printf 2 10 d n result2 result3 3 10 printf 3 10 d n result3 result4 4 10 printf 4 10 d n result4 result5 5 10 printf 5 10 d n result5 1 10 102 10 203 10 304 10 405 10 50 输出结果 重复语句 循环的必要性2 2 1 10 102 10 203 10 304 10 405 10 50 0 1 1 1 2 1 上个数字 1 重复 上个数字 1 10 循环的概念 在循环条件的范围内反复执行相同的循环体 称循环程序设计 循环结构的特点 循环体中的语句 在条件满足的情况下 可反复执行 任何合法的标识符 例如 gotoflag1 gotoloop gotostop 6 2goto语句以及用goto语句构成循环 无条件转移语句格式 goto语句标号 功能 程序将调转到该标号处并执行其后的语句 goto语句的用途 与if语句一起构成循环结构 从循环体中跳到循环体外 例6 1 用if和goto语句构成循环 求 includemain inti sum 0 i 1 loop if i 100 sum i i gotoloop printf d sum 一般形式 循环变量的赋初值 while 循环条件表达式 循环体语句 执行流程 循环体语句可以是一条 也可以是多条 多条的时候应用复合语句 将多条语句括起来 循环变量的调整语句 6 3while语句 例 求S 1 2 3 10的值 源程序 includemain inti s s 0 i 1 while i 10 s s i i i 1 printf pleaseoutputs d n s 源程序 includevoidmain inti s n scanf inputn d 例 求S 1 2 3 n的值 includevoidmain intnum 1 result while num 10 result num 10 printf d 10 d n num result num 1 null 10 2 输出 1 10 10 2 10 203 10 304 10 405 10 506 10 607 10 708 10 809 10 9010 10 100 11 100 一般形式 循环变量的初始值 do循环体语句 while 循环条件表达式 执行流程 6 4do while语句 例6 3用do while循环语句实现求 includemain inti sum 0 i 1 do sum sum i i i 1 while i 100 printf d n sum 问题描述 猜数游戏 要求猜一个介于1 10之间的数字 根据用户猜测的数与标准值进行对比 并给出提示 以便下次猜测能接近标准值 直到猜中为止 do while循环示例 intnumber 5 guess printf 猜一个介于1与10之间的数 n do printf 请输入您猜测的数 scanf d 猜一个介于1与10之间的数请输入您猜测的数 3太小请输入您猜测的数 5您猜中了 答案为5 输入数字5后 do while循环中的条件为假 输出结果消息后 程序终止 do while同while语句的重要区别 main intsum 0 i scanf d 例6 4 while和do while循环比较 main intsum 0 i scanf d 再运行一次 11Sum 0 再运行一次 11Sum 11 运行情况如下 1sum 55 运行情况如下 1sum 55 练习 当执行以下程序时 输入1234567890 则其中while循环体将执行 次 includemain charch while ch getchar 0 printf 有以下程序 includemain inty 10 while y printf y d n y A y 0B y 1C y 1D 死循环 B 有以下程序段 intn t 1 s 0 scanf d 为使此程序不陷入死循环 从键盘输入的数据应该是 A 任意正奇数B 任意负偶数C 任意正偶数D 任意负奇数 D 以下程序的功能是 将输入的正整数按逆序输出 例如 若输入135则输出531 includemain intn s printf Enteranumber scanf d for 表达式1 表达式2 表达式3 语句 6 5for语句 一般形式 执行流程 分号用于分隔for循环的三个表达式 for 循环变量赋初值 循环条件 循环变量增值 循环体语句 includemain inti sum 0 for i 1 i 100 i sum i printf d sum 例 用for循环求 for语句的一般形式 for循环的表达式 for循环中有三个表达式for语句中的各个表达式都可以省略分号分隔符不能省略 for 可省略 不能省略 省略表达式1 intnum 0 for num 10 num printf d n num 2 相当于省去了为循环变量赋初值 此时应在for语句之前给循环变量赋初值 省略表达式2 for num 1 num 即不判断循环条件 也就是认为表达式2始终为真 这时应在循环体内设法结束循环 否则将成为死循环 省略表达式3 for i 1 i 100 sum sum 1 i 即省去修改循环变量的值 但此时应在循环体内设法结束循环 省略三个表达式 for printf 这将一直进行下去 i getchar if i X i x break 即不为循环变量赋初值 不设置循环条件 认为表达式2为真值 不修改循环变量的值 无终止地执行循环体 此时应在循环体内设法结束循环 否则会成为死循环 例 求 即计算 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 return0 在使用while时 只有位于判断条件之后的单个语句 简单语句或复合语句 才是循环的部分 练习2 观察以下程序运行结果并分析 intmain void intn 0 while n 3 printf nis d n n printf That sallthisprogramdoes n return0 循环在判断条件后的第一个简单或复合语句处就结束了 习题 有以下程序 includemain intx 8 for x 0 x if x 3 printf d x continue printf d x A 7 4 2 B 8 7 5 2 C 9 7 6 4D 8 5 4 2 D 有以下程序 includemain inty 9 for y 0 y if y 3 0 printf d y A 741B 963C 852D 875421 C 若变量已正确定义 有以下程序段 i 0 doprintf d i while i printf d n i 其输出结果是 A 0 0B 0 1C 1 1D 程序进入无限循环 B 有以下程序 includemain inti for i 1 i 40 i if i 5 0 if i 8 0 printf d i printf n A 5B 24C 32D 40 C 1 while while 2 do do while while 3 while do while 6 6循环的嵌套 一个循环体内又包含另一个完整的循环结构三种循环可互相嵌套 层数不限嵌套循环的执行流程 例 循环嵌套 输出九九表 includemain inti j for i 1 i 10 i printf 4d i printf n n for i 1 i 10 i for j 1 j 10 j printf j 9 4d n 4d i j for i 1 i 10 i for j 1 j 10 j printf j 9 4d n 4d i j 6 7几种循环的比较 四种循环都可以用来处理同一问题 一般情况下它们可以互相代替 但一般不提倡用goto型循环 While和do while循环 只在while后面指定循环条件 在循环体中应包含使循环趋于结束的语句 如i 或i i 1等 用while和do while循环时 循环变量初始化的操作应在while和do while语句之前完成 而for语句可以在表达式1中实现循环变量的初始化 While循环 do while循环和for循环 可以用break语句跳出循环 用continue语句结束本次循环 而对goto语句和if语句构成的循环 不能用break和continue语句进行控制 6 8break语句和continue语句 break语句功能 在循环语句和switch语句中 终止并跳出循环体或开关体 说明 break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中 break举例 输出半径为1到10的圆面积 面积大于100时停止 definePI3 14159main intr floatarea for r 1 r100 break printf r d area 2f n r area break举例 小写字母转换成大写字母 直至输入非字母字符 includemain charc while 1 c getchar if c a continue语句功能 结束本次循环 跳过循环体中尚未执行的语句 进行下一次是否执行循环体的判断仅用于循环语句中 例6 5 把100 200之间的不能被3整除的数输出 main intn for n 100 n 200 n if n 3 0 continue printf d n while continue while break 跳出整个循环 继续下一次循环 6 9程序举例 例6 6用公式求 的近似值 直到最后一项的绝对值小于10 6为止 includevoidmain ints floatn t pi t 1 pi 0 n 1 0 s 1 while fabs t 1e 6 pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 运行结果为 pi 3 141594 例6 7判断整数n是否为素数 总结 循环结构的特点是 在给定条件成立时 重复执行某程序段 直到条件不成立为止while循环先判断后执行do while循环先执行后判断 因此循环将至少执行一次for循环表达式1赋值 表达式2是判断条件 表达式3使循环变量增值 三个表达式适当的时候都可以省略 总结 在循环中 需要修改循环变量的值以改变循环条件 否则有可能形成死循环循环嵌套必须将内层循环完整的包含在外层循环中break语句可以跳出本层循环continue语句可以结束本次循环 1 C语言源程序名的后缀是A exeB CC objD cp 2 可在C程序中用做用户标识符的一组标识符是A andB DateC HiD case 2007y m dDr TomBigl 3 以下叙述中正确的是A C语言程序将从源程序中第一个函数开始执行B 可以在程序中由用户指定任意一个函数作为主函数 程序将从此开始执行C C语言规定必须用main作为主函数名 程序将从此开始执行 在此结束D main可作为用户标识符 用以命名任意一个函数作为主函数 4 以下关于long int和short类型数据占用内存大小的叙述中正确的是A 均占4个字节B 根据数据的大小来决定所占内存的字节数C 由用户自己定义D 由C语言编译系统决定 5 若变量均已正确定义并赋值 以下合法的C语言赋值语句是A x y 5 B x n 2 5 C x n I D x 5 4 1 6 若变量已正确定义 有以下程序段inti 0 doprintf d i while i printf d n i 其输出结果是A 0 0B 0 1C 1 1D 程序进入无限循环 9 已知字符 A 的ASC 代码值是65 字符变量c1的值是 A c2的值是 D 执行语句printf d d c1 c2 2 后 输出结果是A A BB A 68C 65 66D 65 68 10 以下正确的字符串常量是A B abc C OlympicGamesD 11 执行以下程序时输入1234567 则输出结果是 includemain inta 1 b scanf 2d 2d 12 以下程序的输出结果是 includemain intn 12345 d while n 0 d n 10 printf d d n 10 1234 54321 13 以下程序的功能是 输出a b c三个变量中的最小值 请填空 includemain inta b c t1 t2 scanf d d d a b c t1 14 以下程序的输出结果是 includemain inti for i a i f i i printf c i a A printf n ACE
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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