龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计

上传人:f****u 文档编号:123331197 上传时间:2020-03-08 格式:PPT 页数:42 大小:830KB
返回 下载 相关 举报
龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计_第1页
第1页 / 共42页
龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计_第2页
第2页 / 共42页
龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计_第3页
第3页 / 共42页
龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计_第4页
第4页 / 共42页
龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计》由会员分享,可在线阅读,更多相关《龚本灿全套配套课件C语言程序设计教程第2版 第4章 2014循环结构程序设计(42页珍藏版)》请在金锄头文库上搜索。

1、 循环结构是高级语言程序设计中一种常用的控制结 构 主要用于解决那些需要重复处理的问题 例如 输入100个学生的成绩 统计不及格的学生人数 等 循环结构和顺序结构 选择结构一起构成了结构化 程序设计的3种基本结构 熟练掌握循环结构对程 序设计非常重要 本章将采用循环结构进一步完善 学生信息管理系 统 中的 菜单选择 程序 本章内容 4 1 for语句 4 2 while语句 4 3 do while语句 4 4 break语句和continue语句 4 5 循环语句的嵌套 4 6 C语言程序的调试方法 4 7 案例分析与实现 学习目标 掌握三种循环控制语句 for语句 while语句和do w

2、hile语句 掌握break语句和continue语句 能够熟练应用for语句 while语句和do while语句 进行程序设计 4 1 for4 1 for语句语句 一般格式为 for 循环变量赋初值 条件表达式 循环变量增值 循环体 格式说明 1 for语句的三个表达式之间必须以分号分隔 如果省 略条件表达式 则默认条件为真 2 循环体是一条简单语句或复合语句 3 循环变量赋初值部分和循环变量增值部分可以放 在for语句的括号之外 但分号不能省略 上述for 语句等价于 循环变量赋初值 for 条件表达式 循环体 循环变量增值 例4 1 编写程序求1 2 3 100的和 include

3、void main int sum 0 i for i 1 i 100 i sum sum i printf sum d n sum 问题问题 1 如果求从1到100 之间的所有奇数之和 上面的程序应如何修改 2 for循环执行完后 i的值为多少 例4 2 编程输出1 200之间所有用3除余2 且 用5除余3的数 并统计这样的数有多少个 编程思路 可以采用穷举法来编程实现 include void main int i k 0 k用来计数 for i 1 i 200 i if i 3 2 k printf n数的个数为 d n k 例4 3 鸡兔同笼问题 已知笼中鸡和兔共100只 共有274只

4、脚 求鸡和兔各有多少只 编程思路 可以采用穷举法来编程实现 include void main int a b a和b分别表示鸡和兔的数量 for a 1 a 100 a b 100 a if a 2 b 4 274 printf 鸡有 d只 兔有 d只 n a b include include void main double sum 0 pi c c为当前项 int n n为循环控制变量 for n 1 n 100 n c pow 1 n 1 2 n 1 计算当前项 sum sum c 求和 pi 4 sum printf pi lf n pi 程序改进 该程序100次调用数学函数pow

5、 会带来一定的开 销 影响程序的执行速度 能否采用其他方式来控制 每一项的符号位呢 方法如下 1 定义一个表示符号位的变量s 语句为 double s 1 2 由于符号位正负交替 因此 每执行一次就将 符号位取反 这样可将语句c pow 1 n 1 2 n 1 改为 c s 2 n 1 s s 例4 5 输出所有水仙花数 所谓水仙花数是 指一个3位数 其各位数字的立方和等于该数本 身 例 153 13 53 33 include void main int m bai shi ge bai shi ge分别对应百 十和个位 for m 100 m 999 m bai m 100 shi m 1

6、00 10 ge m 10 if m bai bai bai shi shi shi ge ge ge printf d m 如何统计这样的数有多少个 例4 6 有一数列2 3 5 8 从第3项 开始 每一项为其前两项之和 输出这个数列的 前20项 且每行显示5个数 include void main int i a1 2 a2 3 a3 printf 6d 6d a1 a2 for i 3 i 20 i a3 a1 a2 printf 6d a3 a1 a2 a2 a3 if i 5 0 printf n 编程思路 这是一个典型的递推问题 4 2 while语句 while语句又叫 当 语句

7、 其一般格式为 while 条件表达式 循环体 例4 7 编写程序求1 2 3 100的和 include void main int sum 0 i 1 while i 100 sum sum i i i 1 printf sum d n sum 程序说明 1 一定要在while循环之前给变量sum和i赋初值 否则 变量的值为一个随机数 会导致程序的执行结果不正确 2 由于循环体由两条语句构成 因此 必须用 将他们 括起来 例4 8 小红今年12岁 她父亲比她大30岁 编程计 算 多少年后她父亲的年龄是她的年龄的2倍 此时她 的年龄是多少 include void main int x 12

8、 y 42 m while 2 x y x y m x 12 printf 经过的年数 d 小红的年龄 d 小红父亲的年龄 d n m x y include include void main double sum 0 pi c 1 s 1 c为当前项 s为符号位 int n 1 while fabs c 1e 6 sum sum c s s n c s 2 n 1 pi 4 sum printf pi lf n pi 用while语句编写的程序一般也可以采用for语句 来实现 那么什么情况下更适合采用for语句 什 么情况下更适合采用while语句呢 答案是 for语句最适合编写循环次数事

9、先已经知 道的循环 对于循环次数事先不能确定的情况 采用while语句实现起来会更方便 4 3 do while4 3 do while语句语句 do while语句又叫 直到型 循环语句 其一般 格式为 do 循环体 while 条件表达式 例4 10 编写程序求1 2 3 100的和 include void main int sum 0 i 1 do sum sum i i i 1 while i 100 printf sum d n sum while语句和do while语句的区别 1 do while语句是先执行 再判断 而while语句 是先判断 再执行 2 do while语句

10、中循环体至少执行一次 而while 语句中 如果第一次判断时条件就不成立 则循环 体一次也不会执行 对于先执行 再判断的应用场合 采用do while语 句实现起来更方便 例4 11 编写一个口令输入程序 让用户输入口令 直至输对为止 假设口令为100 要求分别采用do while和while两种循环语句来实现 include void main int pwd printf 请输入口令 scanf d while pwd 100 printf 请输入口令 scanf d printf 口令正确 include void main int pwd do printf 请输入口令 scanf d

11、 while pwd 100 printf 口令正确 4 4 break4 4 break语句和语句和continuecontinue语句语句 前面介绍的例子都是执行到循环条件不成立时才 正常退出循环 但在实际应用中有时需要提前结束循 环 这时就可以用break语句或continue语句 4 5 1 break语句 例4 12 从键盘输入一个正整数 判断该数是否 为素数 include void main int i m scanf d for i 2 im 1 printf d是素数 n m else printf d不是素数 n m 素数定义 除了1和自身外不能被其它自然数整除的数 问题问

12、题 数学上已经证明 只 要m不被2 之间的 数整除 它就是素数 根据这一原理 上述程 序应如何改进 例4 13 从键盘输入两个正整数m和n 求他们 的最大公约数 根据最大公约数的定义 最大公约数应该在1 m 或n 之间 因 为是求最大的公约数 所以从大往小求 include void main int i m n scanf d d for i m i 1 i if m i 0 printf 最大公约数 d n i 4 5 2 continue语句 不终止整个循环操作 而只是提前结束本次循环 接着执行下次循环 例4 14 输出100以内不能被3整除的自然数 include void main

13、int i for i 1 i 100 i if i 3 0 continue printf d i 4 5 4 5 循环语句的嵌套循环语句的嵌套 如果一个循环语句的循环体中又包含有另 一个完整的循环语句就叫做嵌套循环 例4 15 输出100到200之间的所有素数 include void main int i m for m 100 m 200 m for i 2 im 1 printf 5d m 例4 16 数学史上有一个著名的百钱买百鸡问题 已 知公鸡一只5元 母鸡一只3元 小鸡3只1元 用100元 钱买100只鸡 问公鸡 母鸡和小鸡各买多少 include void main int

14、a b c a b c分别表示公鸡 母鸡和小鸡的数量 for a 0 a 19 a for b 0 b 33 b c 100 a b if 5 a 3 b c 3 100 例4 17 采用对个位 十位 百位进行穷举的 方法输出所有水仙花数 include void main void int i j k for i 1 i 10 i for j 0 j 10 j for k 0 k 10 k if i 100 j 10 k i i i j j j k k k printf d d d i j k 例4 18 从键盘输入一个数n 求1 2 n include void main int i j

15、n long p sum 0 p保存阶乘 sum保存累加和 scanf d 输入n for i 1 i n i 各阶乘累加 p 1 for j 1 j i j 求i p p j sum sum p printf 计算结果为 d n sum 4 6 C语言程序的调试方法 程序错误总体上有两类 语法错误和逻辑错误 对于语法错误 编译时会产生错误提示信息 可以 根据错误提示信息加以修改 如果程序编译 连接都没有错误 但运行结果与预 期结果不一致 则需要通过调试来找出程序中存在 的逻辑错误 并加以排除 调试是一个程序员必须掌握的基本技巧 对于编写 大型程序非常重要 调试可以借助 调试工具条 Debug

16、 来进行 调试工具 条 中的主要命令如图4 7所示 如果VC 6 0工具栏上没有显示 调试工具条 命令按钮 则可在菜单栏空白处右击 选中 调试 Debug C语言的调试手段主要有 单步执行 运行到光标处和 设置断点 这三种调试手段在实践中常常结合使用 1 单步执行 Step Over 单击 单步执行 Step Over 按钮一次 程序执行一步 查看程序中变量的值 程序执行的每一步都可以通过以下几种方式来 查看程序中变量的值 检查程序的执行情况 把光标移动到某个变量上 停留一会就可以看到该 变量的值 在窗口的左下方 会自动显示变量的值 在窗口右下方的观察窗口中输入变量名 会显示该 变量的值 2 运行到光标处 Run to Cursor 先在源程序中定位好光标的位置 再单击工具栏上 的Run to Cursor按钮 程序将直接运行到光标所 在的行 然后暂停 接下来可以通过单步执行等方 式继续调试 3 插入断点 Insert Breakpoint 如果想要程序每次执行到某一行时都自动暂 停 以便判断程序是否有错 则可以将该行设置为 断点 设置断点的方法是 先把光标移动到需要设置断点的程 序行

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号