5 选择结构1.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《5 选择结构1.ppt》由会员分享,可在线阅读,更多相关《5 选择结构1.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计语言程序设计第1页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E第第5章章 选择结构程序设计选择结构程序设计5.1 关系运算符及表达式5.2 逻辑运算符及表达式5.3 if语句5.4 switch语句5.5选择结构程序设计举例C语言程序设计语言程序设计第2页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E问题与说明问题与说明【问题问题】1、从键盘输入一个数,如果该数为正,打印,否则不打印;2、解一元二
2、次方程,求出相应的实根或复根。解决办法:解决办法:1、引入新的程序结构:选择结构,又称之为分支结构选择结构,又称之为分支结构 2、为了配合分支结构相,需引入逻辑表达式的概念。3、有三种形式可进行分支结构的程序设计 A、if 结构(三种具体形式)B、多重选择结构(switch语句,即情形结构)C、无条件转移结构(goto语句,不要求)C语言程序设计语言程序设计第3页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.1 关系运算符及表达式关系运算符及表达式关系运算符关系运算符 含义含义 例子例子 结果结果
3、优先级优先级 大于大于 4+69 T 小于小于 8=大于或等于大于或等于 6=5 T =小于或等于小于或等于 8=x+14521 结果为结果为0C语言程序设计语言程序设计第5页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.1 关系表达式实例关系表达式实例 用关系运算符将两个算术表达式或两个字符串表达式联起来的式子,其值为逻辑值。例5101#includemain()int a,b;a=10=56;b=(10=5)6;printf(“%d,%dn”,a,b);输出结果:例5102#includemai
4、n()int a,b;a=6*77+8;b=7!=73;printf(“%d,%dn”,a,b);输出结果:0,11,1C语言程序设计语言程序设计第6页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E1)C语言提供三种逻辑运算符:语言提供三种逻辑运算符:&逻辑与(相当于“同时”)|逻辑或(相当于“或者”)!逻辑非(相当于“否定”)2)运算规则运算规则 1)&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。2)|:当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。3)
5、!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。5.2 逻辑运算及其表达式逻辑运算及其表达式C语言程序设计语言程序设计第7页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.2 逻辑运算符逻辑运算符例如,假定例如,假定x=5,则则 (x=0)&(x10)的值为的值为“真真”,(x5)的值为的值为“假假”。3)运算结果为数值型)运算结果为数值型:0表示假,表示假,1表示真。表示真。4)结合方向)结合方向:从左到右(从左到右(&、|););从右到左(!)。从右到左(!
6、)。例:例:f=!(34)结果为结果为1 5)优先级别)优先级别:(高)(高)!,&、|(低)(低)C语言程序设计语言程序设计第8页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.2 逻辑表达式中的优先级图示逻辑表达式中的优先级图示2、运算符的优先级、运算符的优先级1、逻辑运算符的优先级、逻辑运算符的优先级!&|高高低低()!,+,-,(类型类型),sizeof*,/,%+,-自右至左自右至左,=,!=&|赋值运算符赋值运算符?:C语言程序设计语言程序设计第9页T THHE E C C P PR RO
7、 OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E2 2、逻辑表达式、逻辑表达式用逻辑运算符连接关系表达式的式子称逻辑表达式。用逻辑运算符连接关系表达式的式子称逻辑表达式。例:用逻辑表达式表达下述数学式例:用逻辑表达式表达下述数学式(1)0 x10 (2)x80(3)10 x 30,50 x 90相应的逻辑表达相应的逻辑表达:(1)0 x&x10(2)x80(3)(x=10&x=50&x=90)C语言程序设计语言程序设计第10页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU U
8、A AG GE E逻辑运算的特殊规则逻辑运算的特殊规则1)a&b&c:只有只有a 为非为非0时才计算时才计算b 的值;只有的值;只有a和和b 都为非都为非0时才计时才计算算c 的值;的值;2)a|b|c:只要只要a 为非为非0时就不必计算时就不必计算b 和和c;只有;只有a为为0时才计算时才计算b 的的值;值;只有只有a和和b 都为都为0时才计算时才计算c 的值;的值;3)a|b&c:当当a的值为的值为0时才计算时才计算b;只有当;只有当a的值为的值为0,且,且b的值为真的值为真(非(非0)时才计算)时才计算c;4)a&b|c:当当a的值为真(非的值为真(非0)时才计算)时才计算b;当(;当(
9、a&b)运算后的)运算后的值为假时才计算值为假时才计算c;C语言程序设计语言程序设计第11页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E逻辑运算的特殊规则实例逻辑运算的特殊规则实例例:写出程序运行结果main()int a=0,b=1,c=-1;a+|-b&c+;printf(“%d%d%dn”,a,b,c);-a|b+|+c;printf(“%d%d%dn”,a,b,c);-a+&ba;printf(“%d%d%dn”,a,b,c);输出结果:1 0 -10 1 01 1 0分析:a+|-b&c+;
10、中,先判断a(为0),然后a在自加边为1;要执行-b;b 变为0;则c+不被执行,所有c的值不变。第一次输出结果为:1 0 -1C语言程序设计语言程序设计第12页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.3 if 语句语句5.3.1 简单if语句语句一般格式一般格式:if(表达式)语句体【说明说明】1)表达式可以是任意类型的值,具体形式有:常量、变量、函数调用、表达式(包括算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式、条件运算表达式、)2)表达式必须加()括起来。3)语句体中的语句
11、可以是:一条语句;多条语句(当语句体包含多个语句时,语句体要用括起来。可以单独占一行)。C语言程序设计语言程序设计第13页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E4)执行过程:当表达式的值为非0时,执行语句体的语句5)一个if语句总体上只算一条语句注意:(1)c中对“真”、“假”的表示:只要表达式的值为非0则认为是“真”,否则是“假”;(2)“假”(0值)的几种具体形式:0、0.0、0、NULL(3)关系、逻辑运算的结果(的表示)与“真”、“假”值的区别与联系。5.3 if 语句语句C语言程序设计
12、语言程序设计第14页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E 例例5.2输入任意三个数a、b、c,按从小到大的顺序排序输出。分析:if(ab)a和b交换,另a为a,b中较小值 if(ac)a和c交换,另a为a,b,c中最小值 if(bc)b和c交换,另b为次大值,c为最大值 C语言程序设计语言程序设计第15页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E 例例5.2输入任意三个数a、b、c,按从小到大的顺序
13、排序输出。main()int a,b,c,t;printf(input three numbers:);scanf(%d,%d,%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(%d,%d,%dn,a,b,c);input three numbers:11,22,1811,18,22C语言程序设计语言程序设计第16页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.3.2 复合复合ifelse语句语句1复合
14、if语句的一般格式 if(表达式表达式)语句组语句组1;else 语句组语句组2;【说明说明】(1)表达式可以是任意类型的值,具体形式有:常量、变量、表达式(2)if语句中的“表达式”必须用“(”和“)”括起来。(3)else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。(4)if语句允许嵌套,但嵌套的层数不宜太多。(5)“语句组1”和“语句组2”,可以只包含一个简单语句,也可以是复合语句。C语言程序设计语言程序设计第17页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE Eif 逻辑表达
15、式“真”复合语句 1 else 复合语句 2 计算逻辑表达式的值真否?复合语句1复合语句2执行复合语句后的语句FT执行复合语句后的语句ifelse 的执行过程的执行过程不管是简单语句,还是复合语句中的各个语句,每个语句后面的分号必不可少!例如:if(ab)max=a;else max=b;C语言程序设计语言程序设计第18页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E5.3.2 ifelse if语句语句1符合if语句的一般格式 if(表达式1)语句组1else if(表达式2)语句组2 else if
16、(表达式3)语句组3 else if(表达式4)语句组4 else if(表达式n)语句组n else 语句组n+1【注意】if语句嵌套时,else子句 与在它上面、距它最近、且尚未匹配的if配对。计算表达式1的值真否?语句组1语句组2FT执行复合语句后的语句计算表达式2的值真否?TF计算表达式3的值真否?T 语句组3C语言程序设计语言程序设计第19页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE EIfIfelseelse配对配对规则可能产生的规则可能产生的“副作用副作用”例例5.3:有符号函数,要求输入
17、不同的x的值能输出正确的符号数。算法思路1:先可以用简单的if语句实现,用三个if 语句就可以。算法思路2:要求用简单的ifelse语句实现,分析以下几个程序。C语言程序设计语言程序设计第20页T THHE E C C P PR RO OG GR RA AMMMMI IN NG G L LA AN NG GU UA AG GE E程序1:程序2:if(x=0)if(x0)y=1;else if(x=0)y=0;else y=0;else y=1;else y=-1;程序3:程序4:y=-1;y=0;if(x!=0)if(x=0)if(x0)y=1;if(x0)y=1;else y=0;else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择结构1 选择 结构
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内