顺序和选择结构程序设计.ppt_第1页
顺序和选择结构程序设计.ppt_第2页
顺序和选择结构程序设计.ppt_第3页
顺序和选择结构程序设计.ppt_第4页
顺序和选择结构程序设计.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第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-1,A B,(a)传统流程图,(b)N-S流程图,实例:“回家”的顺序结构流程图:,(a)传统流程图,(b)N-S流程图,4.1.2 结构化程序设计的三种基本结构 2.选择结构的流程图:P60图4-3,(a)传统流程图,(b)N-S流程图,选择结构流程图的实例:,(a)传统流程图,(b)N-S流程图,4.1.2 结构化程序设计的三种基本结构 3.循环结构有两种:当型循环和直到型循环 当型循环结构的流程图:P61图4-5,(a)传统流程图,(b)N-S流程图,直到型循环结构的流程图: P61图4-6 P62 图4-7、4-8实例,(a)传统流程图,(b)N-S流程图,P为真,A,当型循环结构:先判断后执行A 直到型循环结构:先执行A后判断 直到型循环结构比当型循环结构多执行一次循环体,4.2 语句与分程序,一、语句:用来对数据进行加工(完成操作任务)。是构成程序的基本单位。通常一个C程序由若干个函数(系统、用户)组成。 二、C语句的分类 可分为三大类:简单语句、复合语句、空语句 (一)简单语句 (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(i100)/计算1到100的和 sum+=i; i+; 注意:1、复合语句的之后不能有;号 2、复合语句中可以是简单句、复合语句、空语句 (三)空语句: ; /*仅有一个;号*/ 空语句什么也不做。有时用作被转向点,或者循环语句提供空体 如:做大系统时,初步给出一个框架,以后再 写具体语句 如: for(i=0;i=10;i+); /以后编码;或者 得到一个i值,空语句,赋值语句:即赋值表达式后加;号构成 要区分赋值表达式与赋值语句 如: if(a=b)0) 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”, ,例4.2:编写程序:输入x和y,交换它们的值,并输出交换前后的数,交换时不能使用第三个变量。,#include “stdio.h” void main() int x,y,temp; printf(“nplease input two int:”); scanf(“%d%d”, 用到了位操作异或运算的可逆性,只适用于整数,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(0=60) printf(“Passedn”); ,例4.4编写程序 输入一个学生考察课成绩的分数,输出该生的总评成绩。,#include “stdio.h” void main() int score; printf(“nplease input score(0=60) printf(“Passedn”); else printf(“Failedn”); ,例4.5编写程序 输入一个学生考试课成绩的分数,输出该生的总评成绩。,if(score60) printf(“Failedn”); else if(score70) printf(“Passedn”); else if(score80) printf(“Middlingn”); else if(score90) printf(“Finen”); else printf(“Excellentn”);,4.4.2 if语句 一、if语句的三种形式 1、条件执行 if(e) A e是条件,即关系表达式、者逻辑表达式、常量、变量 如:if(a0)printf(“A is positive.n”);P69-例4.6、4.7、4.8 2、分支选择 if(e) A else B 当e为真值(非0)时执行A,否则执行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 如:注意区别=与=的区别 y=0;if(y=0) printf(“OK”); if(y) printf(“OK”); 3、else if形式 if(P1) S1 else if(P2)S2 . else if(Pn)Sn else Sn+1,4.4.2 if语句 一、if语句的三种形式 3、else if形式 P75-例4.11、例4.12 if(P1) S1 else if(P2)S2 . else if(Pn)Sn else Sn+1 系统从上到下的逐个判断条件P,一旦发现某条件Pi满足时,则执行与它有关的语句Si,并跳过其它剩余的判断。若所有条件均不满足,执行最后一个else语句或后续语句。 注意:一般else与其上最近的if匹配,If语句的流程图如下,(a)传统流程图,(b)N-S流程图,if.else形式的流程图如下,(a)传统流程图,(b)N-S流程图,4.4.2 if语句 一、if语句的三种形式 二、if语句的嵌套 if(P1) if(P2)A =A else B else if(P3) C =B else D 嵌套的if语句实现了多路分支,注意else与其上最近的if匹配(花括号除外),花括号可以改变else的层位,4.4.2 if语句 一、if语句的三种形式 二、if语句的嵌套 三、条件运算符与条件表达式 1、条件运算符: ?和: /C语言中唯一的三目运算符 2、条件表达式:e1?e2:e3 如:ab ? a:b 3、执行过程: (1)计算e1 (2)e1值为非0(真),计算并返回e2的值否则计算并返回e3的值 4、运算顺序:高于赋值运算符,低于算术、关系、逻辑运 算,2、条件表达式:e1?e2:e3 如:ab ? a:b 3、执行过程: (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、条件运算符的结合方向是“右结合” 如:ab?a:cd?c:d 等价于 ab?a:(cd?c:d) P86-例4.17、4.18,4.5 switch语句(开关语句),也称多分支选择语句,它比用嵌套的if语句实现多路分支问题,其程序结构清晰、易读。 一、格式为:P80-81 switch(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,开始执行;直到遇到brea

温馨提示

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

评论

0/150

提交评论