C语言05C程序流程设计.ppt
《C语言05C程序流程设计.ppt》由会员分享,可在线阅读,更多相关《C语言05C程序流程设计.ppt(44页珍藏版)》请在三一文库上搜索。
1、第五章 C程序流程设计,C语句概述 程序的三种基本结构(顺序、选择、循环) 选择型程序设计(if else , switch) 循环型程序设计(for, while) 辅助控制语句(break, continue,goto,return),2019/3/3,2,C语句概述,C语句:以“;”作分隔符, 编译后产生机器指令 C语句分类 表达式语句:表达式加分号构成 空语句: ; 程序控制语句(9种): 复合语句:用 括起来的一组语句 一般形式: 数据说明部分; 执行语句部分;,如 total=total+limit; a=3; func( ); printf(“Hello,world!n”);,复
2、合语句的说明: “”后不加分号 语法上和单一语句相同 复合语句可嵌套, t=x; x=y; y=t; ,2019/3/3,3,复合语句,在什么情况下使用复合语句? 条件语句和循环语句在语法上只允许带一条语句 当分支和循环中需要进行多项操作时, t=x; x=y; y=t; ,被当作一条语句来处理,复合语句在语法上是一个整体,相当于一个语句。凡 是能 使用简单语句的地方,都可以使用复合语句。 复合语句内还可以包含复合语句,即复合语句的嵌套 使用,2019/3/3,4,C程序的三种基本结构 结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) 结构化程序:
3、三种基本结构反复嵌套构成 优点:结构清晰,易读,提程序质量和效率 三种基本结构 顺序结构 选择结构 二分支选择 多分支选择 循环结构 当型循环 直到型循环,2019/3/3,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,b=
4、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;
5、 x=0.3; 则 a=x=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.
6、0 结果为 0,关系运算请注意: (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) 注意区分“=”与“=”
7、如 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”);,2019/3/3,6,5.2逻辑运算符和表达式 功能:判断逻辑值和对逻辑值进行操作 符号: ! & | 逻辑运算真值表 结合方向:!从右向左, & |从左向右 优先级:! (2) & (11) | (12) 逻辑运算中: 运算参量:0表示假,非0表
8、示真 运算结果:0表示假,1表示真 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符,例 ab&xy a=b|x=y !a|ab,例 ab&xy a=b|x=y !a|ab,例 ab&xy /(ab)&(xy) a=b|x=y !a|ab,例 ab&xy /(ab)&(xy) a=b|x=y /(a=b)|(x=y) !a|ab,例 ab&xy /(ab)&(xy) a=b|x=y /(a=b)|(x=y) !a|ab /(!a)|(ab),例 a=4; b=5; !a a&b a|b !a|b 4&0|2 53&2|
9、84-!0 c&d,例 a=4; b=5; !a /0 a&b a|b !a|b 4&0|2 53&2|84-!0 c&d,例 a=4; b=5; !a /0 a&b /1 a|b !a|b 4&0|2 53&2|84-!0 c&d,例 a=4; b=5; !a /0 a&b /1 a|b /1 !a|b 4&0|2 53&2|84-!0 c&d,例 a=4; b=5; !a /0 a&b /1 a|b /1 !a|b /1 4&0|2 53&2|84-!0 c&d,例 a=4; b=5; !a /0 a&b /1 a|b /1 !a|b /1 4&0|2 /1 53&2|84-!0 c&d,
10、例 a=4; b=5; !a /0 a&b /1 a|b /1 !a|b /1 4&0|2 /1 53&2|83)&2|(8(4-(!0), 1 c&d,例 a=4; b=5; !a /0 a&b /1 a|b /1 !a|b /1 4&0|2 /1 53&2|83)&2|(8(4-(!0), 1 c&d /1,例 a&b&c /只在a为真时,才判别b的值 /只在a、b都为真时,才判别 c的值,例 a&b&c /只在a为真时,才判别b的值 /只在a、b都为真时,才判别 c的值 a|b|c /只在a为假时,才判别b的值 /只在a、b都为假时,才判别 c的值,例 a (m=ab)&(n=cd),例
11、 a (m=ab)&(n=cd) /结果m=0,n=1,2019/3/3,7,5.3 选择程序设计 if 语句(条件选择语句) if 语句的三种形式 形式一: 格式: if (expression) statement 执行过程: 形式二: 格式: if (expression) statement1 else statement2 执行过程:,例:if (xy) printf(“%d”,x);,例:if (xy) max=x; else max=y;,2019/3/3,8,5.3 选择程序设计 if 语句(条件选择语句) if 语句的三种形式 形式一: 格式: if (expression)
12、 statement 执行过程: 形式二: 格式: if (expression) statement1 else statement2 执行过程: 形式三: 格式: 执行过程:,if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 . else statementn ,例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400)
13、index=0.1; else index=0;,2019/3/3,9,如: if(a=b,例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,关于if语句的说明: if后面的表达式类型任意 语句可以是复合语句 if(x) if(x!=0) if(!x) if(x= =0),Compile Error!,2019/3/3,10,/*ch4_1.c*/ #include main() int x,y; printf(“Ente
14、r an integer:“); scanf(“%d“, ,例1 求一个数的绝对值,运行:Enter an integer:-12 integer:-12-absolute value :12,2019/3/3,11,/*ch4_2.c*/ #include main() int a,b; printf(“Enter integer a:“); scanf(“%d“, ,例2 输入两个数并判断两数相等否,运行:Enter integer a:12 Enter integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,2019/3
15、/3,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 character is a digit,运行: Enter a character: D The character is a capital letter,运行: Enter a character: h Th
16、e character is a lower letter,运行: Enter a character:* The character is other character,2019/3/3,13,if语句嵌套:,2019/3/3,14,例 输入两数并判断其大小关系,/*ch4_4.c*/ #include main() int x,y; printf(“Enter integer x,y:“); scanf(“%d,%d“, ,运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,if else 配对原则: 缺省 时,else总是
17、和它上面离它最近的未配对的if配对,2019/3/3,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=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); ,结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 05 程序 流程 设计
链接地址:https://www.31doc.com/p-2201081.html