第3章 选择结构.ppt
《第3章 选择结构.ppt》由会员分享,可在线阅读,更多相关《第3章 选择结构.ppt(67页珍藏版)》请在三一文库上搜索。
1、第3章 选择结构,主要内容,C 语言的运算符,学习运算符应注意的问题: 运算符的功能 与运算量的关系 要求运算量的个数(单目运算符?双目运算符?) 要求运算量的类型(整型?实型?字符型?其他类型?) 运算符的优先级别 结合方向(从左至右?从右至左?) 运算结果的类型,算术运算符和算术表达式,基本的算术运算符: +:加法(或正值)运算符 如:3+2,+3.5 - :减法(或负值)运算符 如:3-2,-3.5 * :乘法运算符 如:3*2,3.5*2 / :除法运算符 如:3/2,3.5/2 要说明的是:两个整数相除的结果仍为整数:5/3=1 若结果为负值,多数机器采用向零取整的办法:-5/3=-
2、1 % :模运算符(两个运算量都是整数) 如:3%2,算术运算符和算术表达式,算术表达式 用算术运算符和括号,将运算对象(操作数)连接起来 符合C语法规则的式子 例如:a*b/c+1.5-3.28+f,算术运算符和算术表达式,问题:在C语言中,能正确地表示 数学关系的表达式是: (-b + sqrt(b*b-4*a*c) ) / (2*a),算术运算符和算术表达式,基本的算术运算符:+,-,*,/,% 结合方向:从左至右(左结合性) 优先级别:- (负值) * / % + - (减法) 说明: 整数的算术运算结果仍为整数 若算术运算中有一个实数,则运算结果为double型 %只能进行整数间的取
3、模运算,余数与被除数符号相同 “”为负值运算符时(单目运算),为右结合性,2 3 4,5 / 3 - 3 * 2 + - 2.5 =,- 7.500000,5 / - 2 = 5 / - 2.0 = 5 % 2 = -5 % 2 = 5 % -2 = -5 % -2 = 5 % 1 = 5 % 1.0 =,- 2,- 2.500000,1,- 1,1,- 1,0,O,赋值运算符和赋值表达式,变量赋初值: C语言允许定义变量的同时使变量初始化,变量数据类型 变量名变量初值; 变量数据类型 变量名; 变量名变量初值;,若同时给几个变量赋值:,int a = 5, b = 5, c = 5 ; in
4、t a = b = c = 5 ;,O,赋值运算符和赋值表达式,简单的赋值运算符: 符号:= 格式:变量标识符 = 表达式 将一个表达式的值(或一个常量的值)赋给一个变量 结合方向:从右至左 注意:左边必须是变量,不可以是表达式 优先级:14,3.2关系运算与逻辑运算,3.2.1 关系运算 1关系运算符 设变量 x=-2,表3-1关系运算符,3.2.1 关系运算,2优先级 (1)在关系运算符中,、= 这4个运算符的优先级相同。 (2)=和!= 这2个运算符的优先级也相同,但比上述4个运算符优先级低。 (3)关系运算符的优先级,低于算术运算符,但高于赋值运算符。,关系运算: 将两个值进行比较,判
5、断比较的结果是否符合给定的条件 种类: = = != 优先级: 结合方向:从左至右 关系表达式的值:逻辑值“真”和“假”,用1和0表示 用途:通常用于选择和循环结构的条件判断中,6,7,int a=3, b=2, c=1, d, f; ab (ab)=c b+cb f=abc,32,表达式值:1 (1=1)的值为1,表达式值:1 b+c=3,表达式值:0 ab的值为1,赋值后,d=1 ab的值为1,1c的值为0,f=0,关系运算符和关系表达式,关系运算符和关系表达式,关系运算应注意: 应当避免对实数进行相等或不相等的关系运算 应区分“=“和“=“,1.0/3.0*3.0=1.0 结果不一定为1
6、 可改写为:fabs(1.0/3.0*3.0-1.0)1e-6,int a=3, b=2; printf(“%d“, a=b); /* 输出:0 */ a=b; /*将b的值赋值给a*/,3.2.3 逻辑运算,1逻辑运算符,表3-2逻辑运算符,2运算规则 & 当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。 | 当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。 ! 当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。 逻辑表达式的值只有“真”和“假”两种,用“1”和“0”来表示。,3.2.3 逻辑运算,逻辑运算符: ! &
7、 | 优先级: 结合方向:!(从右至左), & 和 |(从左至右) 逻辑表达式的值:逻辑值“真”和“假”,用1和0表示 运算量(操作数):0表示“假”,非0表示“真”,2 11 12,逻辑运算符和逻辑表达式,逻辑运算符和逻辑表达式,逻辑表达式举例:,a=4; b=5; !a a&b a|b !a|b 4&0|2 53&2|84-!0 c&d,表达式的值:0 表达式的值:1 表达式的值:1 表达式的值:1 表达式的值:1 (53)&2)|(8(4-(!0) = 1|0 = 1 表达式的值:1,逻辑运算符和逻辑表达式,短路特性: 逻辑表达式求解时,并非所有的逻辑运算符都被执行, 只是在必须执行下一
8、个逻辑运算符才能求出表达式的解时,才执行该运算符,a (m=ab)&(n=cd) /* m=0,n=1,表达式的值是0 */,3.2.3 逻辑运算,【例3-2】逻辑运算举例 #include void main(void) int c,x=0,y=-5; printf(“%d,%dn“, !x*y, x ,-5,0 2,1,1 1,0,0 Press any key to continue,c=x|y x=x+1,+x:先执行x=x+1,再将x的值作为表达式+x的值。 x+:先将x的值作为表达式x+的值,再执行x=x+1。,c=x&y x=x+1,逻辑运算符和逻辑表达式,问题:在C语言中,能正
9、确地表示数学关系xyz的表达式是: (A) (x=y) & (y=z) (B) (x=y) AND (y=z) (C) (x=y=z) (D) (x=y) & (y=z),O,O,O,逻辑运算符和逻辑表达式,问题:用逻辑表达式来表示闰年的条件: 某一年year为闰年的条件,需要满足下列条件之一: 1) 能被4整除,但不能被100整除 2)能被400整除,year%4=0,year%100!=0,year%400=0,( & ),|,3.2.3 逻辑运算,常见的编程错误: 1、将关系运算符=误写为=。例如if(x=5)误写为if(x=5)因为赋值运算表达式是有效的,所以编译器不会产生警告和错误信
10、息。为了避免这类错误发生,在编写程序时,建议将所有等于判断条件表达式写成常数在左边。例如:if(5=x),这样如果你误写成if(5=x),编译器将产生一个错误,从而防止了这类错误的发生。,3.2.3 逻辑运算,常见的编程错误: 2、对于区间判断。例如:x在0,5区间上,经常会写成if(0=0&x1e-6)的形式。,第3章 选择结构,提出问题: 如何根据学生的成绩判断他(她)是否及格? 如何根据学生的成绩划分多个优劣等级? 自然语言: 如果 那么 C语言 选择语句(分支语句),二重分支:if语句 多重分支:switch语句,第3章 选择结构,主要内容 两种选择结构语句 if 语句 switch
11、语句,if 语句,if 语句的三种形式: 形式1: if (exp) statement;,if 语句,if 语句的三种形式: 形式2: if (exp) statement1; else statement2;,3.3 两个分支的if 语句,【例3-4】随机的输入两个数,输出其中的大数。,#include void main(void) int a, b; printf(“input two numbers: “); scanf(“%d%d“, ,input two numbers: 0 3 3 是最大数 Press any key to continue,if 语句,if 语句的三种形式:
12、 形式3:,if (exp1) s1; else if (exp2) s2; else else if (expn) sn; else s;,if 语句,if 语句说明: if 后面的表达式exp可以是任意类型 if (exp) statement1; else statement2;,if (a=b ,if (a=2) printf(“%d“, a); else printf(“wrong“);,if (a=0) printf(“%d“, a); else printf(“wrong“);,if 语句,if 语句说明: if 和else后面的语句statement可以是单个语句,或一个复合语
13、句 if (exp) statement1; else statement2;,main() int x,y; scanf(“%d,%d“, ,Compile Error!,if 语句,if 语句说明: if 和else后面的语句statement可以是单个语句,或一个复合语句 if (exp) statement1; else statement2;,main() int x, y; scanf(“%d,%d“, ,注意:,注意表达式与语句的区别,if(x0) printf(“%f”,x); else printf(“%f”,-x);,在if和else后面如果有多个操作语句,此时用“ ”将几
14、个语句括起来形成一个复合语句,if(a+bc,if 语句示例,输入两个实数,按代数值由小到大输出:,输入两个实数:x, y ( float型) 比较x和y的值,若x的值大于y,则交换x和y的值 按顺序输出x和y的值,The 3 sides are: 4.000000,5.000000,6.000000,#include void main() float x, y, temp; printf (“Please input two numbers:n“); scanf (“%f %f“, ,Please input two numbers:,13.2 2.1 ,The two numbers a
15、re: 2.1, 13.2,#include void main() float x, y, temp; printf (“Please input two numbers:n“); scanf (“%f %f“, ,3.4 一个分支的语句,【例3-6】从键盘上随机的输入三个数,输出最大数。,#include void main(void) int a, b, c, max; printf(“输入三个数: “); scanf(“%d%d%d“, ,输入三个数: 3 5 8 8 是最大数 Press any key to continue,例 输入三个数,要求按由小到大顺序输出,分析: if (
16、ab) 将a和b对换 if (ac) 将a和c对换 if (bc) 将b和c对换 需要定义几个变量?才能完成对换? 在有“变量对换”这一类的操作中,都要定义一个暂存变量,常起名为temp或者t,if 语句示例,输入三个实数,按代数值由小到大输出:,输入两个实数:x, y, z ( float型) 确定x, y和z中最小值,通过交换,赋值给x 确定y和z中较小值,通过交换,赋值给y 按顺序输出x,y和z,#include void main(void) float x, y, z, temp; printf (“Please input three numbers:n“); scanf (“%f
17、 %f %f“, ,Please input two numbers:,3.4 2.3 123.456,Output: 2.30, 3.40,123.46,3.3 两个分支的if 语句,【例3-5】输入三角形的三边的边长,输出三角形的面积。,#include #include void main(void) float a,b,c,s,area; printf(“请输入三角形的三边:n“, ,请输入三角形的三边: 3 4 5 area=6.000000 Press any key to continue,请输入三角形的三边: 1 2 3 输入数据错误! Press any key to con
18、tinue,判断输入数据的有效性,即a,b,c是否能构成三角形。我们利用公式任意两边之和大于第三边,任意两边之差小于第三边,if 语句的嵌套,if 语句的嵌套: 在if语句中又包含一个或多个if语句,称为if语句嵌套 if (exp1) if (exp2) statement1; else statement2; else if (exp3) statement3; else statement4;,if else配对原则 :它缺省时, else总是与上面的 最近的、未配对的 if配对,if 语句的嵌套,if 语句的嵌套: 在if语句中又包含一个或多个if语句,称为if语句嵌套,if else
19、配对原则 :它缺省时, else总是与上面的 最近的、未配对的 if配对,if (exp1) if (exp2) statement1; else statement2;,if (exp1) if (exp2) statement1; else statement2;,if 语句的嵌套,if 语句的嵌套: 在if语句中又包含一个或多个if语句,称为if语句嵌套,if else配对原则 :它缺省时, else总是与上面的 最近的、未配对的 if配对,if (exp1) if (exp2) statement1; else statement2;,if (exp1) if (exp2) state
20、ment1; else statement2;,3.5 多个分支的if语句,【例3-8】从键盘上输入一个字符,判断该字符是数字、大写字母、 小写字母或其它字符。,#include void main(void) char c; printf(“请输入一个字符: “); c=getchar(); if(c=0 ,请输入一个字符: b b是小写字母 Press any key to continue,if 语句示例,根据学生的成绩,输出学生成绩的等级:,90, 100: 等级 A 75, 90): 等级 B 60, 75): 等级 C 0, 60): 等级 D,输入成绩 score (float型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 选择结构 选择 结构
链接地址:https://www.31doc.com/p-4333572.html