三C语言的基本控制结构

上传人:豆浆 文档编号:26656263 上传时间:2017-12-29 格式:PPT 页数:55 大小:2.94MB
返回 下载 相关 举报
三C语言的基本控制结构_第1页
第1页 / 共55页
三C语言的基本控制结构_第2页
第2页 / 共55页
三C语言的基本控制结构_第3页
第3页 / 共55页
三C语言的基本控制结构_第4页
第4页 / 共55页
三C语言的基本控制结构_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《三C语言的基本控制结构》由会员分享,可在线阅读,更多相关《三C语言的基本控制结构(55页珍藏版)》请在金锄头文库上搜索。

1、第三章 C语言的基本控制结构,Chapter 3 Control Flow,问题,#include #include void main(void) float a,b,c,x1,x2; scanf(“%f,%f,%f”,b*b-4ac0?,yes,求实根,no,求复根,问题:如何构造条件? 如何根据条件实现不同算法?,3.1 程序的三种控制结构,结构化程序设计是软件设计的第三次革命。结构化程序设计的基础是采用三种程序的控制结构。,1966年BHM &Jacopini 证明:只要三种控制结构就能表达用一个入口和一个出口框图所能表达的任何程序逻辑。,三种控制结构如下:,顺序结构Sequence,

2、算法描述: f; g;,框图:,f;,g;,选择结构Selection(分支结构),算法描述: if(e) f; else g;,框图:,e?,yes,f;,no,g;,循环结构Repetition,当型循环,while c is true do f,c?,f,YES,NO,直到循环,do f until c is false,f,c?,YES,NO,三种控制结构有如下共同的特点:,一个入口和一个出口;无死语句;无死循环。,如何构造条件 ?,复合语句 CompoundStatement,概念:C语言可以用 包括一系列的语句。一对 所包含的内容称为一个复合语句。其中可以含有0到多条C语言语句。,

3、#include void main (void) int a,b; scanf(“%d,%d”,复合语句,复合语句,复合语句可以嵌套,凡是可以出现单一语句的地方都可以使用复合语句。,复合语句的作用:,作为分支和循环的块。,作为标识符的作用域。,交换算法演示,3.2 关系运算和逻辑运算,关系运算(Relational Operator),关系运算是比较两个表达式的数值相互关系的运算。,关系运算规则:参加运算的表达式的从左到右按关系运算符提供的关系进行比较,满足关系得到整型值1 , 不满足关系得到整型值0。,int a=1,b=3,c,d;c=ab ; d=a+2=b+3;,逻辑运算(Logic

4、al Operator),逻辑运算运算时判断对象真、假的运算。C语言没有提供逻辑类型。任何类型的值都可以表示逻辑状态,如下表:,运算对象非0代表逻辑真,是0代表逻辑假。也就是说任何类型的量都有逻辑值。,逻辑运算的结果用整型值表示。运算结果为真时,得到整型值1;运算结果为假时,得到整型值0。,int a=2,b=0; a b a+b,C语言的逻辑运算,其中,!运算是单目运算。,逻辑运算演示,复杂逻辑关系的表示,在实际应用中,经常会遇到描述复杂的关系。如:判断 x是否大于等于5或小于3。此类关系的描述在程序设计中会大量使用。,0,3,5,x=5,0,-2,3,-2x3 ? x=4,-2x&x=a&

5、ch=A&chc+d&a=b*34,注意:在无法确定优先级时,加()区分。简化表达式。,c=b*=a+2,c=(b*=(a+2),优先级总表,优先级特例,自加、自减运算优先级遵循原则: 前置:先运算后引用; 后置:先引用后运算。,#include void main(void) int a=3,b; b=a+a+; printf(“b=%d”,b); b=+a+(+a); printf(“b=%d”,b);,CHAP3EX0,在逻辑运算中,如果逻辑值能够确定,则不再进行运算。,int a=0,b=0+a | +b; printf(“a=%dnb=%d”,a,b);a=0;a&+b;/*b的值?

6、*/,+,CHAP3EX1,3.3 分支结构(选择结构Selection),if 及 if-else 的三种结构。,由标准的分支结构可以演化成单分支、多分支结构。C语言的分支语句有if 、if else、switch三种。,if语句,格式:if(expression)statement;,语句,表达式,非0为yes,0为no。,语句,可以是复合语句。,流程图:,e?,statement;,yes,no,举例:,#include void main(void) char ch; ch=getchar( ); if(ch=a,CHAP3EX2, if else 结构,格式:if(expressio

7、n) stat1;else stat2;,语句或复合语句。,流程图:,e?,false,stat2;,stat1;,true,入口,出口,举例:输出| x |。,#include void main (void) int x ; scanf ( “%d” , , if else if结构(Muliline ),格式: if(e1) stat1; else if(e2) stat2; else if(e3) stat3; else if(en-1) statn-1; else statn;,框图:,e1?,t,stat1;,f,e2?,t,stat2;,出口,f,en-1?,t,statn-1;

8、,f,statn;,n-1个条件,满足某个条件,执行对应的语句,然后到出口。,if else if结构举例:,征税问题: 1000以下税率为3% 10002000税率为4% 20003000税率为5% 3000以上税率6%输入收入,求应缴税款。,#include void main(void) float x ,rate; scanf(“%f ”,3/100?,if语句的嵌套,对于如下的结构: if(e1) stat1; else stat2;,在stat1或stat2中又含有if结构:if(e2) stat3;else stat4;称为if结构的嵌套。各种if结构都可以嵌套。,如求符号函数:

9、 -1 (x0),#include void main ( void) int x,y ; scanf (“%d” , ,外层,内层,在外层else语句中,含有一个if结构。,说明:,书写采取缩进形式,便于区分。,内层缩进。,else与最近的if 相匹配,从内到外。,y=-1;if (x!=0) if (x0) y=1;else y=0;,x=0结果?,举例:求一元二次方程ax2+bx+c=0的根。,#include #include void main(void) float a,b,c,d,x1,x2; scanf(“%f,%f,%f”, ,外层,内 层,求相等实根。,求不等实根。,求共扼

10、复根。,CHAP3EX4,判断实型量相等或不等用误差的方法。,flaot a=1.0/*a=1.000001或0.999999*/a=1.0?,switch语句(多分支结构),格式:switch (expression) case 常量表达式1: statement 1; case 常量表达式2: statement 2; case 常量表达式n-1: statement n-1; default : statement n; ,只能是整型或字符型表达式。,整型字符型常量表达式。表达式的值要互不能相等!,流程:,先求expression的值。,依次比较expression和各常量表达式的值。,

11、如果与第i个常量表达式相等,则执行第i条以后的语句。,如果都不相等,则执行default以后的语句。,语句标号的概念:,#include void main(void) char grade; grade=getchar( ); switch(grade) case A: printf (“90100n”); case B: printf (“8089n); case C: printf (“7079n”); case D: printf (“60 69n”); case E: printf (“60n”); default : printf (“errorn”); ,CHAP3EX5,语句标

12、号。,break语句:,格式: break;,作用:中断switch流程。,break; break; break; break;break;,CHAP3EX6,例:输出五分制对应的百分制范围。,#include void main(void) char chGrad; chGrad=getchar( ); switch(chGrad) case a: case A: printf(“90100n”); break; case b: case B: printf(“8089n”); break; case c: case C: printf(“7079n”); break; case d: case D: printf(“6069n”); break; case e: case E: printf(“60n”);break; default : printf(“Data Error!n”); ,

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

当前位置:首页 > 经济/贸易/财会 > 综合/其它

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