好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

顺序和选择结构程序设计.ppt

55页
  • 卖家[上传人]:宝路
  • 文档编号:47813740
  • 上传时间:2018-07-05
  • 文档格式:PPT
  • 文档大小:2.13MB
  • / 55 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第4章 顺序和选择结构程序设 计1、运算符(算术、赋值、关系、逻辑、增1/减1 、位、逗号、求字节数、指针)2、优先级(逻辑非>算数运算符>关系运算符>逻辑与和逻辑或>赋 值运算符)3、结合性4、不同数据类型数据间的混合运算(自动转换 和强制转换)第2、3章是给编写C程序做了一些准备知识第三章回顾复习4.1.1 结构化程序设计思想的产生程序设计最初是追求空间和时间效率的,而现在追求的是程 序的清晰度一个好的程序首先应该具有良好的可读性,以方便检测、修 改和维护1971年Niklaus Wirth首次提出了结构化程序设计的思想 这个思想的重点是:不要求一步就编制成可执行的程序, 而是要分若干步进行,也就是逐步求精结构化程序设计方法又称为“自顶向下”法或“逐步求 精”法§4.1 结构化程序设计4.1.2 结构化程序设计的三种基本结构三种基本结构为:顺序结构、选择结构和循环结构早在1966年就证明了只要 有顺序、选择和循环三种形式的控制结构,就足以导出其 它各式各样的程序结构 a.顺序结构顺序结构就是一组逐条执行的可执行语句按照书写的顺序 ,自上而下的执行 b.选择结构选择结构是一种先对给定的条件进行判断,再根据判断的结 果执行相应的命令的结构。

      4.1.2 结构化程序设计的三种基本结构 c.循环结构它是指多次重复执行同一组命令的结构 Ø 具有循环结构的程序一般必须指定循环的终止条件,以免进 入无限循环(死循环)状态 用流程图来表示以上三种结构,更加直观形象、易于理解本 书中使用的是:传统流程图和N-S结构图(盒图)4.1.2 结构化程序设计的三种基本结构 1.顺序结构的流程图: P60图4-1ABAB(a)传统流程图(b)N-S流程图实例:“回家”的顺序结构流程图:开锁开门进屋(a)传统流程图(b)N-S流程图开锁开门进屋4.1.2 结构化程序设计的三种基本结构 2.选择结构的流程图:P60图4-3(a)传统流程图(b)N-S流程图A BP真假P真 假A B选择结构流程图的实例:(a)传统流程图(b)N-S流程图电影要开场真 假看电影 喝咖啡看电影喝咖啡电影要开场真假4.1.2 结构化程序设计的三种基本结构 3.循环结构有两种:当型循环和直到型循环 当型循环结构的流程图:P61图4-5(a)传统流程图(b)N-S流程图AP 真假P为真A直到型循环结构的流程图: P61图4-6P62 图4-7、4-8实例(a)传统流程图(b)N-S流程图P为真A 假AAP 真当型循环结构:先判断后执行A直到型循环结构:先执行A后判断直到型循环结构比当型循环结构多执行一次 循环体§4.2 语句与分程序一、语句:用来对数据进行加工(完成操作任务)。

      是构成程 序的基本单位通常一个C程序由若干个函数(系统、用 户)组成 二、C语句的分类可分为三大类:简单语句、复合语句、空语句 (一)简单语句 (1)表达式语句:由一个表达式后跟;构成,赋值语句:赋值表达式后加;号如 s=3.1415*r*r; ++i;(与++i不同)函数调用语句:函数调用表达式加一个;号如:printf(“Hello world!\n”); (2)结构控制语句:控制程序流向选择语句(2个):if…else switch循环语句(3个):for while do…while转向语句:continue break return goto(一)简单语句 (二)复合语句:将一组语句括在一对{ }中如: while(i0) t=a; 前-表达式 后-语句注意:赋值表达式可包含在其它表达式之中,而赋值语句不 行赋值语句只能作为一条单独的语句,或放在符合语句 中赋值语句用途很广§4.3 顺序结构程序设计顺序结构程序:程序的执行顺序,就是程序的书写顺序 顺序程序设计的步骤可以归纳为: (1)用预处理命令包含头文件或进行宏定义 (2)定义变量(分配内存空间) (3)为变量赋初值 (4)计算 (5)输出结果例4.1:编写程序:输入x和y,交换它们的值,并输出交换前 后的数。

      include “stdio.h” void main() { double x,y,temp;printf(“\nplease input two double:”);scanf(“%lf%lf”,printf(“\nbefore changed x=%6.2lf y=%6.2lf”,x,y);temp=x;//temp变量来完成交换工作x=y;y=temp;printf(“\nafter changed x =%6.2lf y=%6.2lf”,x,y); }例4.2:编写程序:输入x和y,交换它们的值,并输 出交换前后的数,交换时不能使用第三个变量include “stdio.h”void main() { int x,y,temp;printf(“\nplease input two int:”);scanf(“%d%d”,printf(“\nbefore changed x=%3d y=%3d”,x,y);x=x^y;y=y^x;x=x^y;printf(“\nafter changed x =%3d y=%3d”,x,y);} 用到了位操作异或运算的可逆性,只适用于整数§4.4 选择结构程序设计C程序中,能实现选择结构程序设计的语句有if条件语句和 switch多分支语句。

      C语言中的if条件语句有三种形式:if 形式、if…else形式和 else if 形式 4.4.1引例将百分制的成绩转换成总评成绩选修课:百分制成绩>=60总评成绩 及格[例4.3]编写程序 输入一个学生选修课成绩的分数, 输出该生的总评成绩include “stdio.h” void main() {int score;printf(“\nplease input score(0=60)printf(“Passed\n”); }[例4.4]编写程序 输入一个学生考察课成绩的分数, 输出该生的总评成绩include “stdio.h” void main() {int score;printf(“\nplease input score(0=60)printf(“Passed\n”);elseprintf(“Failed\n”); }[例4.5]编写程序 输入一个学生考试课成绩的分数, 输出该生的总评成绩if(score0)printf(“A is positive.\n”);P69-例4.6、4.7、4.8 2、分支选择 if(e) A else B 当e为真值(非0)时执行A,否则执行B或后续语句。

      如: if(a>0)printf(“A is positive.\n”);else printf(“A is not positive.\n”); 注意:A或B都可以是单一语句,也可以是复合语句(要用{ })else部分不能独立存在即else前面一定有一个;号,它必定是 if语句的一部分 在C语言中,表达式e的值为非0时,系统均按“真值”处理如:if(‘a’) printf(“OK”);x=-5;if(x) printf(“OK”);4.4.2 if语句一、if语句的三种形式 1、if (e) A 2、if(e) A else B P71-例4.9、4.10如:注意区别==与=的区别y=0;if(y==0) printf(“OK”);if(y) printf(“OK”); 3、else if形式if(P1) S1else if(P2)S2.else if(Pn)Snelse Sn+14.4.2 if语句一、if语句的三种形式 3、else if形式 P75-例4.11、例4.12if(P1) S1else if(P2)S2.else if(Pn)Snelse Sn+1系统从上到下的逐个判断条件P,一旦发现某条件Pi满足 时,则执行与它有关的语句Si,并跳过其它剩余的判断。

      若所有条件均不满足,执行最后一个else语句或后续语句 注意:一般else与其上最近的if匹配If语句的流程图如下表达式语句1下一条语句假真(a)传统流程图(b)N-S流程图表达式真 假语句1 下一条语句if...else形式的流程图如下(a)传统流程图(b)N-S流程图表达式真 假语句1 语句2下一条语句表达式语句1下一条语句假真 语句24.4.2 if语句一、if语句的三种形式 二、if语句的嵌套if(P1){if(P2)A ==Aelse B}else{if(P3) C ==Belse D}嵌套的if语句实现了多路分支,注意else与其上最近的 if匹配(花括号除外),花括号可以改变else的层位4.4.2 if语句一、if语句的三种形式 二、if语句的嵌套 三、条件运算符与条件表达式 1、条件运算符: ?和: //C语言中唯一的三目运算符 2、条件表达式:e1?e2:e3如:a>b ? a:b3、执行过程: (1)计算e1 (2)e1值为非0(真),计算并返回e2的值否则计算并返回 e3的值 4、运算顺序:高于赋值运算符,低于算术、关系、逻辑运 算2、条件表达式:e1?e2:e3如:a>b ? a:b3、执行过程: (1)计算e1 (2)e1值为非0(真),计算并返回e2的值否则计算并返回 e3的值 4、运算顺序:高于赋值运算符,低于算术、关系、逻辑运 算 如:y=x==0 ? 1:sin(x)/x;等价于:if(x==0)y=1;else y=sin(x)/x;5、条件运算符的结合方向是“右结合”如:a>b?a:c>d?c:d 等价于 a>b?a:(c>d?c:d) P86-例4.17、4.18§4.5 switch语句(开关语句)也称多分支选择语句,它比用嵌套的if语句实现多路 分支问题,其程序结构清晰、易读。

      一、格式为:P80-81switch(e){ case C1:语句1;(break;)case C2:语句2;case C3:语句3;...case Cn:语句n;default 语句n+1; }§4.5 switch语句(开关语句)switch(e){ case C1:语句1;(break;)case C2:语句2;case C3:语句3;...case Cn:语句n;default 语句n+1; }其中:表达式e可以是整型、字符型,不能是浮点型常量表达式Ci必须与表达式类型一致(整 型与字符型通用)switch(e){ case C1:语句1;(break;)case C2:语句2;case C3:语句3;...case Cn:语句n;default 语句n+1; }执行过程二、执行过程(P81-例4-14、4-15)1、计算表达式e的值2、若与常量表达式Ci值一致,则 从语句i,开始执行;直到遇到 break语句或switch语句的“}”3、若与任何常量表达式值均不一 致时,则执行default语句,或执 行后续语句注意:1、常量表达式Ci仅起语句标号作用,不作求值判断2、常量表达式的值必须是唯一的,没有先后次序3、多个case语句可共用一组执行语句Switch语句的传统流程图如下所示:常量表达式1常量表达式2常量表达式n计算表达式语句n+1语句2语句n语句1真真真假假假Ø[例4.19]输入一个纳税人的月收入,计 算应缴纳的个人所得税。

      P87) Ø[例4.20]输入一个用整数表示的年份, 输出该年份是否为闰年P88)§4.7 程序举例P90-2、4、13、14、15课后作业课后作业。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.