新手入门C语言教程(ITG制作)-04-程序流程设计.ppt_第1页
新手入门C语言教程(ITG制作)-04-程序流程设计.ppt_第2页
新手入门C语言教程(ITG制作)-04-程序流程设计.ppt_第3页
新手入门C语言教程(ITG制作)-04-程序流程设计.ppt_第4页
新手入门C语言教程(ITG制作)-04-程序流程设计.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第四章C程序流程设计 4 1C语句概述C语句 以 作分隔符 编译后产生机器指令 C语句分类表达式语句 表达式加分号构成 空语句 程序控制语句 9种 如total total limit a 3 func printf Hello world n 复合语句 用 括起来的一组语句一般形式 数据说明部分 执行语句部分 说明 后不加分号语法上和单一语句相同复合语句可嵌套 4 2程序的三种基本结构结构化程序设计基本思想 任何程序都可以用三种基本结构表示 限制使用无条件转移语句 goto 结构化程序 由三种基本结构反复嵌套构成的程序叫 优点 结构清晰 易读 提高程序设计质量和效率三种基本结构顺序结构 选择结构 二分支选择结构 多分支选择结构 循环结构 当型循环结构 直到型循环结构 注 A B A1 An可以是一个简单语句 也可以是一个基本结构 4 3选择型程序设计if语句 条件选择语句 if语句的三种形式形式一 格式 if expression statement执行过程 例 if x y printf d x 形式二 格式 if expression statement1elsestatement2执行过程 例 if x y max x elsemax y 形式三 格式 if expr1 statement1elseif expr2 statement2elseif expr3 statement3 elsestatementn 执行过程 例 if salary 1000 index 0 4 elseif salary 800 index 0 3 elseif salary 600 index 0 2 elseif salary 400 index 0 1 elseindex 0 如 if a b 说明 if后面的表达式类型任意 语句可以是复合语句if x if x 0 if x if x 0 例考虑下面程序的输出结果 includeintmain intx y scanf d d CompileError includeintmain intx y printf Enteraninteger scanf d 例求一个数的绝对值 运行 Enteraninteger 12 integer 12 absolutevalue 12 includeintmain inta b printf Enterintegera scanf d 例输入两个数并判断两数相等否 运行 Enterintegera 12 Enterintegerb 12 a b 运行 Enterintegera 12 Enterintegerb 9 a b includeintmain charc printf Enteracharacter c getchar if c 0 例判断输入字符种类 运行 Enteracharacter Thecharacterisacontrolcharacter 运行 Enteracharacter 8 Thecharacterisadigit 运行 Enteracharacter D Thecharacterisacapitalletter 运行 Enteracharacter h Thecharacterisalowerletter 运行 Enteracharacter Thecharacterisothercharacter if语句嵌套 一般形式 例输入两数并判断其大小关系 includeintmain intx y printf Enterintegerx y scanf d d 运行 Enterintegerx y 12 23 XYEnterintegerx y 12 12 X Y if else配对原则 缺省 时 else总是和它上面离它最近的未配对的if配对 例 if a b if b c printf a b c elseprintf a b 修改 if a b if b c printf a b c elseprintf a b 实现if else正确配对方法 加 例考虑下面程序输出结果 intmain intx 100 a 10 b 20 intv1 5 v2 0 if a b if b 15 if v1 x 1 elseif v2 x 10 x 1 printf d x 结果 1 switch语句 开关分支语句 一般形式 switch 表达式 caseE1 语句组1 break caseE2 语句组2 break caseEn 语句组n break default 语句组 break 执行过程 说明 E1 E2 En是常量表达式 且值必须互不相同语句标号作用 必须用break跳出case后可包含多个可执行语句 且不必加 switch可嵌套多个case可共用一组执行语句 如 case A case B case C printf score 60 n break 例switch score case5 printf Verygood case4 printf Good case3 printf Pass case2 printf Fail default printf dataerror 运行结果 score为5时 输出 Verygood Good Pass Fail dataerror 例intmain intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break case3 a b printf na d b d a b return0 运行结果 a 2 b 1 includeintmain intc printf Entermornorhorother c getchar switch c case m printf nGoodmorning n break case n printf nGoodnight n break case h printf nHello n break default printf n n break return0 例根据输入字母输出字符串 4 4循环型程序设计概述C语言可实现循环的语句 while语句do while语句for语句 while语句一般形式 while 表达式 循环体语句 执行流程 特点 先判断表达式 后执行循环体说明 循环体有可能一次也不执行循环体可为任意类型语句下列情况 退出while循环条件表达式不成立 为零 循环体内遇break return无限循环 while 1 循环体 例用while循环求 includeintmain inti sum 0 i 1 while i 100 sum sum i i printf d sum return0 例显示1 10的平方 includeintmain inti 1 while i 10 printf d d d n i i i i i return0 运行结果 1 1 12 2 43 3 94 4 165 5 256 6 367 7 498 8 649 9 8110 10 100 do while语句一般形式 do循环体语句 while 表达式 执行流程 特点 先执行循环体 后判断表达式说明 至少执行一次循环体do while可转化成while结构 例用do while循环求 includeintmain inti sum 0 i 1 do sum i i while i 100 printf d sum return0 例while和do while比较 includeintmain inti sum 0 scanf d intmain inti sum 0 scanf d for语句一般形式 for expr1 expr2 expr3 循环体语句 执行流程 for语句一般应用形式 for 循环变量赋初值 循环条件 循环变量增值 循环体语句 说明 for语句中expr1 expr2 expr3类型任意 都可省略 但分号 不可省无限循环 for for语句可以转换成while结构 expr1 while expr2 循环体语句 expr3 例 includeintmain inti 0 for i 0 i 10 i putchar a i return0 运行结果 abcdefghij 例 includeintmain inti 0 for i 10 i putchar a i return0 例 includemain inti 0 for i 10 putchar a i 例 includeintmain inti 0 for i 10 putchar a i i return0 intmain inti j k for i 0 j 100 i j i j k i j printf d d d n i j k return0 includeintmain charc for c getchar n printf c c return0 例 f0r 梯形法求数值积分 循环的嵌套三种循环可互相嵌套 层数不限外层循环可包含两个以上内循环嵌套循环的执行流程 1 while while 2 do do while while 3 while do while 4 for do while while 嵌套循环的跳转禁止 从外层跳入内层跳入同层的另一循环向上跳转 例循环嵌套 输出九九表 includeintmain 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 return0 for i 1 i 10 i for j 1 j 10 j printf j 9 4d n 4d i j 4 5辅助控制语句break语句功能 在循环语句和switch语句中 终止并跳出循环体或开关体说明 break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中 例break举例 假设半径为1到10的整数 逐个输出圆面积 直到面积大于100时停止 definePI3 14159intmain intr doublearea for r 1 r100 break printf r d area 2lf n r area return0 例break举例 小写字母转换成大写字母 直至输入非小写字母字符 includeintmain inti j charc while 1

温馨提示

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

评论

0/150

提交评论