高级语言程序设计(c)5流程设计.pptx
C语言流程设计
梁春燕
华电信息管理教研室
2
主要内容
运算符和表达式(续)
结构化程序设计
选择结构程序设计
循环结构程序设计
辅助控制语句
小结
上机作业4
运算符和表达式(续)
逻辑运算符与表达式
条件运算符与表达式
逻辑运算符和表达式
4
a
b
!a
!b
ab
a||b
真
假
真
假
假
假
真
真
逻辑运算符
种类:!||
逻辑运算真值表
C语言中,运算量:0表示“假”,
非0表示“真”,
运算结果:0表示“假”,
1表示“真”,
真
假
假
假
假
假
真
真
假
假
真
真
真
假
真
真
逻辑运算符和表达式
5
!(2)
(11)
||(12)
高
低
例a=xx=b
abxy
a==b||x==y
!a||ab
优先级:
结合方向:
!:从右向左
:从左向右
||:从左向右
//(a=x)(x=b)
//(ab)(xy)
//(a==b)||(x==y)
//(!a)||(ab)
逻辑运算符和表达式
6
例a=4;b=5;
!a
ab
a||b
!a||b
40||2
532||84-!0
‘c’‘d’
值为1
值为0
值为1
值为1
值为1
值为1
//(53)2||(8(4-(!0)))值为1
逻辑运算符和表达式
7
短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符
例abc//只在a为真时,才判别b的值;
只在a、b都为真时,才判别c的值
例a||b||c//只在a为假时,才判别b的值;
只在a、b都为假时,才判别c的值
例a=1;b=2;c=3;d=4;m=1;n=1;
(m=ab)(n=cd)
//结果m=0,n=1
条件运算符与表达式
8
一般形式:expr1?expr2:expr3
执行过程
功能:相当于条件语句,但不能取代一般if语句
例if(ab)
printf(“%d”,a);
else
printf(“%d”,b);
printf(“%d”,ab?a:b);
例求a+|b|
printf(“a+|b|=%d\n”,b0?a+b:a-b);
expr1
取expr2值
取expr3值
非0
=0
例(a==b)?’Y’:’N’
(x%2==1)?1:0
(x=0)?x:-x
(c=‘a’c=‘z’)?c-’a’+’A’:c
条件运算符可嵌套
如x0?1:(x0?-1:0)
优先级:13
结合方向:自右向左
如ab?a:cd?c:dab?a:(cd?c:d)
expr1、expr2、expr3类型可不同,表达式值取较高的类型
例x?‘a’:‘b’//x=0,表达式值为‘b’;x‡0,表达式值为‘a’
xy?1:1.5//xy,值为1.0;xy,值为1.5
运算符的优先级(附录C)
9
初等运算符
单目运算符
算术运算符
关系运算符
赋值运算符
逻辑运算符(不含!)
条件运算符
逗号运算符
结构化程序设计
结构化程序设计
11
结构化程序设计
基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)
结构化程序:由三种基本结构反复嵌套构成的程序
优点:结构清晰,易读,提高程序设计质量和效率
三种基本结构
顺序结构
A
B
A
B
流程图
N-S图
选择结构
12
P
A
B
真
假
P
B
A
真
假
A1
A2
Ai
An
k=k2
k=k1
k=kn
k=ki
...
...
二分支选择结构
多分支选择结构
循环结构
13
当型循环结构
直到型循环结构
P
A
假
真
当P为真
A
A
P
真
假
A
直到P为真
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
选择结构程序设计
选择结构程序设计
15
if语句(条件选择语句)
if语句的三种形式
形式一:
格式:if(expression)
statement
执行过程:
e