顺序和选择结构程序设计

上传人:宝路 文档编号:48002578 上传时间:2018-07-08 格式:PPT 页数:55 大小:2.13MB
返回 下载 相关 举报
顺序和选择结构程序设计_第1页
第1页 / 共55页
顺序和选择结构程序设计_第2页
第2页 / 共55页
顺序和选择结构程序设计_第3页
第3页 / 共55页
顺序和选择结构程序设计_第4页
第4页 / 共55页
顺序和选择结构程序设计_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《顺序和选择结构程序设计》由会员分享,可在线阅读,更多相关《顺序和选择结构程序设计(55页珍藏版)》请在金锄头文库上搜索。

1、第4章 顺序和选择结构程序设 计1、运算符(算术、赋值、关系、逻辑、增1/减1 、位、逗号、求字节数、指针)2、优先级(逻辑非算数运算符关系运算符逻辑与和逻辑或赋 值运算符)3、结合性4、不同数据类型数据间的混合运算(自动转换 和强制转换)第2、3章是给编写C程序做了一些准备知识第三章回顾复习4.1.1 结构化程序设计思想的产生程序设计最初是追求空间和时间效率的,而现在追求的是程 序的清晰度。一个好的程序首先应该具有良好的可读性,以方便检测、修 改和维护。1971年Niklaus Wirth首次提出了结构化程序设计的思想。 这个思想的重点是:不要求一步就编制成可执行的程序, 而是要分若干步进行

2、,也就是逐步求精。结构化程序设计方法又称为“自顶向下”法或“逐步求 精”法。4.1 结构化程序设计4.1.2 结构化程序设计的三种基本结构三种基本结构为:顺序结构、选择结构和循环结构。早在1966年就证明了只要 有顺序、选择和循环三种形式的控制结构,就足以导出其 它各式各样的程序结构。 a.顺序结构顺序结构就是一组逐条执行的可执行语句。按照书写的顺序 ,自上而下的执行。 b.选择结构选择结构是一种先对给定的条件进行判断,再根据判断的结 果执行相应的命令的结构。4.1.2 结构化程序设计的三种基本结构 c.循环结构它是指多次重复执行同一组命令的结构。 具有循环结构的程序一般必须指定循环的终止条件

3、,以免进 入无限循环(死循环)状态。 用流程图来表示以上三种结构,更加直观形象、易于理解。本 书中使用的是:传统流程图和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、真假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语句的分类可分为三大类:简单语句、复合语句、空语句

5、 (一)简单语句 (1)表达式语句:由一个表达式后跟;构成,赋值语句:赋值表达式后加;号如 s=3.1415*r*r; +i;(与+i不同)函数调用语句:函数调用表达式加一个;号如:printf(“Hello world!n”); (2)结构控制语句:控制程序流向选择语句(2个):ifelse switch循环语句(3个):for while dowhile转向语句:continue break return goto(一)简单语句 (二)复合语句:将一组语句括在一对 中如: while(i0) t=a; 前-表达式 后-语句注意:赋值表达式可包含在其它表达式之中,而赋值语句不 行赋值语句只能

6、作为一条单独的语句,或放在符合语句 中赋值语句用途很广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

7、.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=xy;y=yx;x=xy;printf

8、(“nafter changed x =%3d y=%3d”,x,y); 用到了位操作异或运算的可逆性,只适用于整数4.4 选择结构程序设计C程序中,能实现选择结构程序设计的语句有if条件语句和 switch多分支语句。 C语言中的if条件语句有三种形式:if 形式、ifelse形式和 else if 形式。 4.4.1引例将百分制的成绩转换成总评成绩。选修课:百分制成绩=60总评成绩 及格例4.3编写程序 输入一个学生选修课成绩的分数, 输出该生的总评成绩。#include “stdio.h” void main() int score;printf(“nplease input score

9、(0=60)printf(“Passedn”); 例4.4编写程序 输入一个学生考察课成绩的分数, 输出该生的总评成绩。#include “stdio.h” void main() int score;printf(“nplease input score(0=60)printf(“Passedn”);elseprintf(“Failedn”); 例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,否

10、则执行B或后续语句。 如: if(a0)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如:注意区别=与=的区别

11、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语

12、句的流程图如下表达式语句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 Belseif(P3) C =Belse D嵌套的if语句实现了多路分支,注意else与其上最近的 if匹配(花括号除外),花括号可以改变else的层位4.4.2 if语句一、if语句的三种形式 二、if语句的嵌套 三、条件运算符与条件表达式 1、条件运算符

13、: ?和: /C语言中唯一的三目运算符 2、条件表达式:e1?e2:e3如:ab ? a:b3、执行过程: (1)计算e1 (2)e1值为非0(真),计算并返回e2的值否则计算并返回 e3的值 4、运算顺序:高于赋值运算符,低于算术、关系、逻辑运 算2、条件表达式:e1?e2:e3如:ab ? 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、条件运算符的结合方向是“右结合

14、”如:ab?a:cd?c:d 等价于 ab?a:(cd?c:d) P86-例4.17、4.184.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;

15、 其中:表达式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课后作业课后作业

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

当前位置:首页 > 中学教育 > 教学课件

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