语言05C程序流程设计课件

上传人:我*** 文档编号:144722391 上传时间:2020-09-13 格式:PPT 页数:44 大小:856KB
返回 下载 相关 举报
语言05C程序流程设计课件_第1页
第1页 / 共44页
语言05C程序流程设计课件_第2页
第2页 / 共44页
语言05C程序流程设计课件_第3页
第3页 / 共44页
语言05C程序流程设计课件_第4页
第4页 / 共44页
语言05C程序流程设计课件_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《语言05C程序流程设计课件》由会员分享,可在线阅读,更多相关《语言05C程序流程设计课件(44页珍藏版)》请在金锄头文库上搜索。

1、第五章 C程序流程设计,C语句概述 程序的三种基本结构(顺序、选择、循环) 选择型程序设计(if else , switch) 循环型程序设计(for, while) 辅助控制语句(break, continue,goto,return),9/13/2020,2,C语句概述,C语句:以“;”作分隔符, 编译后产生机器指令 C语句分类 表达式语句:表达式加分号构成 空语句: ; 程序控制语句(9种): 复合语句:用 括起来的一组语句 一般形式: 数据说明部分; 执行语句部分;,如 total=total+limit; a=3; func( ); printf(“Hello,world!n”);,

2、复合语句的说明: “”后不加分号 语法上和单一语句相同 复合语句可嵌套, t=x; x=y; y=t; ,9/13/2020,3,复合语句,在什么情况下使用复合语句? 条件语句和循环语句在语法上只允许带一条语句 当分支和循环中需要进行多项操作时, t=x; x=y; y=t; ,被当作一条语句来处理,复合语句在语法上是一个整体,相当于一个语句。凡 是能 使用简单语句的地方,都可以使用复合语句。 复合语句内还可以包含复合语句,即复合语句的嵌套 使用,9/13/2020,4,C程序的三种基本结构 结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) 结构化

3、程序:三种基本结构反复嵌套构成 优点:结构清晰,易读,提程序质量和效率 三种基本结构 顺序结构 选择结构 二分支选择 多分支选择 循环结构 当型循环 直到型循环,9/13/2020,5,5.1关系运算符和表达式 功能:比较两个常量、变量或表达式的值的大小 符号: = != 结合方向:从左向右 优先级:= (6) = != (7) 关系表达式的值:逻辑“真”和“假”,用1和0表示 用途:循环语句和选择语句中,例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc),例int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,例int a=3,

4、b=2,c=1,d,f; ab/表达式值1 (ab)=c b+cb f=abc,例int a=3,b=2,c=1,d,f; ab/表达式值1 (ab)=c/表达式值1 b+cb f=abc,例int a=3,b=2,c=1,d,f; ab/表达式值1 (ab)=c/表达式值1 b+cb f=abc,例int a=3,b=2,c=1,d,f; ab/表达式值1 (ab)=c/表达式值1 b+cb/d=1 f=abc,例int a=3,b=2,c=1,d,f; ab/表达式值1 (ab)=c/表达式值1 b+cb/d=1 f=abc/f=0,例:若a=0; b=0.5; x=0.3; 则 a=x=

5、b的值为,例:若a=0; b=0.5; x=0.3; 则 a=x=b的值为 0,例:5278在C中是允许的,值为,例:5278在C中是允许的,值为 0,例:int i=1, j=7,a; a=i+(j%4!=0); 则a=,例:int i=1, j=7,a; a=i+(j%4!=0); 则a= 2,例 a0 结果为 A100 结果为,例 a0 结果为 1 A100 结果为 0,关系运算请注意: (1) 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为,关系运算请注意: (1) 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为 0,关系运算请注

6、意: (1) 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)1E-6,(2) 注意区分“=”与“=” 如 int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);,(2) 注意区分“=”与“=” 如 int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);,(2) 注意区分“=”与“=” 如 int a=0,b=1;

7、 if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);,(2) 注意区分“=”与“=” 如 int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);,9/13/2020,6,5.2逻辑运算符和表达式 功能:判断逻辑值和对逻辑值进行操作 符号: ! b=5; !a a b=5; !a/0 a b=5; !a/0 a b=5; !a/0 a b=5; !a/0 a b=5; !a/0 a b=5; !a/0 a b=5; !a

8、/0 a,例:if (xy) max=x; else max=y;,9/13/2020,8,5.3 选择程序设计 if 语句(条件选择语句) if 语句的三种形式 形式一: 格式: if (expression) statement 执行过程: 形式二: 格式: if (expression) statement1 else statement2 执行过程: 形式三: 格式: 执行过程:,if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 . else statementn ,例:if

9、(salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0;,9/13/2020,9,如: if(a=b,例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,关于if语句的说明: if后面的表达式类型任意 语句可以是复合语句 i

10、f(x) if(x!=0) if(!x) if(x= =0),Compile Error!,9/13/2020,10,/*ch4_1.c*/ #include main() int x,y; printf(Enter an integer:); scanf(%d, ,例1 求一个数的绝对值,运行:Enter an integer:-12 integer:-12-absolute value :12,9/13/2020,11,/*ch4_2.c*/ #include main() int a,b; printf(Enter integer a:); scanf(%d, ,例2 输入两个数并判断两

11、数相等否,运行:Enter integer a:12 Enter integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,9/13/2020,12,/*ch4_3.c*/ #include main() char c; printf(Enter a character:); c=getchar(); if(c=0 ,例3 判断输入字符种类,运行: Enter a character: The character is a control character,运行: Enter a character:8 The charact

12、er is a digit,运行: Enter a character: D The character is a capital letter,运行: Enter a character: h The character is a lower letter,运行: Enter a character:* The character is other character,9/13/2020,13,if语句嵌套:,9/13/2020,14,例 输入两数并判断其大小关系,/*ch4_4.c*/ #include main() int x,y; printf(Enter integer x,y:);

13、 scanf(%d,%d, ,运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,if else 配对原则: 缺省 时,else总是和它上面离它最近的未配对的if配对,9/13/2020,15,例: if (a= =b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,实现if else 正确配对方法:加 ,例 考虑下面程序输出结果: main() int x=100,a

14、=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); ,结果:-1,if else 配对原则: 缺省 时,else总是和它上面离它最近的未配对的if配对,9/13/2020,16,条件运算符和表达式 功能:相当于条件语句,但不能取代if语句 形式: exp1 ? exp2 : exp3 结合方向:从左向右 优先级:13 条件运算符可嵌套 结果类型:取exp1、exp2和exp3中最高者,例 求 a+|b| printf(“a+|b|=%dn”,b0?a+b:a

15、-b);,例 x0?1:(x0?-1:0),例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a x0,表达式值为a xy?1:1.5 /xy ,值为1.0; xy ,值为1.5,9/13/2020,17,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . case En: 语句组 n; break; default: 语句组 ; break; ,switch语句(开关分支语句) 一般形式:,执行过程:,9/13/2020,18,关于switch语句的说明: E1,E2,En是常量表达式,且值必须互不相同 语句标号作用内,必须用break跳出 case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,如: case A: case B: case

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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