当前位置:
文档之家› 《C语言程序设计》教案第三章程序的控制结构—选择结构if
《C语言程序设计》教案第三章程序的控制结构—选择结构if
C 语言逻辑运算符的优先级规定如下: 1) 优先级顺序为 ! →&&→ ¦¦ 2) 与其他种类运算符的优先关系: 高
!(非) 算术运算符 关系运算符 &&和 || 低 赋值运算符 例如:!a&& b > 5计算顺序:(!a)&&(b > 5)a = = b ¦¦ a < c 计算顺序:a = = (b¦¦(a< c)) (3)逻辑表达式 1)逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将 1 个或多个表达式连接起来,进行逻辑运算的式 子。在 C 语言中,可以用逻辑表达式表示多个条件的组合。 例如:!(a > b) 对关系表达式的值取非, (a > b)&&(b > c) (a > b)&&(b > c)¦¦(b == 0) 2)逻辑量的真假判定 C语言用整数“1”表示“逻辑真”,用“0”表示“逻辑假”。但在判断一个表达式或变 量的“真”或“假”时,如果为 0,则判定为“逻辑假”;如果为非 0,则判定为“逻辑真”。 3)逻辑运算符的结合性 C 语言逻辑运算符采用左结合律。表达式中出现优先级别为同一级别的运算符时, 按从 左到右的结合方向处理。例如:a && b && c 计算顺序为:(a&& b)&& c。 3、条件语句(25 分钟) (1)if 语句的三种格式 引子:例如计算分段函数 y= 3-x (x<0)
例:main()
{ float x , y;
scanf(“%f ”, &x);
y=2*x;
if ( x < 0 )
printf(“y= %6.2f”, y );
}
如果 x<0 为真,则打印 y 的值,否则跳过 printf(“y= %6.2f”, y )直接执行下面的语句。
练习:运行下面程序时,若从键盘输入“3,4<CR>”,则程序的输出结果是[
]
main()
{
int a,b,s;
scanf(“%d,%d”,&a,&b);
s=a;
if(s<b) s=b;
s=s*s;
printf(“%d\n”,s);
} A、14 B、16 C、18 D、20 2)双分支选择语句 if (表达式) 语句 1
else 语句 2 例:输入两个数, 比较其大小,将较大的数输出 流程分析:
关系运算就是比较运算,即将两个数据进行比较,判定两个数据是否符合给定的关系。
a > b a = = b a != b
1、关系运算符和关系表达式
(1)关系运算符及其优先次序
1)关系运算符
C 语言中关系运算符为二目运算符,共有 6 种:
< 小于关系运算符
<= 小于等于
>
大于
>= 大于等于
= = 等于)
!= 不等于
(2)关系表达式
1)关系表达式的概念
是指用关系运算符将两个表达式连接起来进行关系运算的式子。
例如:
a+b>b+c
比较两个算术表达式的值
a <= 2 * b
比较变量和算术表达式的值
'a' < 'b'
比较两个字符的 ASCII 码值
2)关系表达式的值—逻辑值(“真”或“假”)
由于C语言没有逻辑型数据,所以,用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。
(a < b) && (a > 0)
值:0,因为 a<b 的值为 0。
3)逻辑或 ¦¦
逻辑或也是二元运算,只要两个操作数中有一个为非 0(逻辑真),结果就为 1。
例如:
int a=5,b=3
a ¦¦ b
值:1
(a < b) ¦¦ (a > 0) 值:1
因为 a > 0 的值为 1。
(2)逻辑运算符优先级
当操作数值为非 0 时,逻辑非运算的结果为 0。例如:
int a=5,b=3;
!a
结果:0
!(a < b)
结果:1。因为 a < b 的值为 0
2)逻辑与 &&
逻辑与是二元运算,只有参加逻辑与运算的两个操作数值均为非 0(逻辑真)时,结果才
为真。例如:
int a = 5,b = 3;
a && b
值: 1
2、逻辑运算符和逻辑表达式
(1)逻辑运算符
C 语言提供 3 种逻辑运算符:
&& 逻辑与(相当于“同时”)
||
逻辑或(相当于“或者”)
!
逻辑非(相当于“否定”)
其中,&&和||为双目运算符,且结合方向为自左至右;! 为单目运算符,仅对其右边的操作
数进行逻辑求反运算。
1)逻辑非!
逻辑非是一元运算符。
操作数值为 0,逻辑非运算的结果为 1(逻辑真);
例如,假设 a=3,b=4,c=5 则:
a>b 的值为 0(假)。
(a>lt;b)+c 的值为 6,因为 a<b 的值为 1,1+5=6。
注意:C 语言用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。所以,关系表达式的值,
还可以参与其它种类的运算,例如算术运算、逻辑运算等。
2x (x>=0) 计算 x<0 ,如果结果为 1:计算:y=3-x; 否则,计算:y=2 * x; 需要根据 x 的值进行流程选择(分支)。
首先先判断表达式的值 若为非 0 则执行下面的语句 若为 0 则跳过该语句
1)单分支选择语句
一般形式:i f (表达式) 语句
表达式
假(0)
真(非0) 语句
3)关系运算符的结合律
C 语言规定关系表达式采取左结合律。表达式中出现优先级别为同一级别的运算符时,
则按从左到右结合方向处理。
例如:
int a=2,b=3,c=1;
a>b<c 值 : 1
先计算 a>b,值是 0 ,
再计算 0<c,值是 1
6>3<2 值 : 1
先计算 6>3 ,值是 1 ,
再计算 1<2,值为 1
授课题目
《C 语言程序设计》课程教案表 课时安排 1
第三章 程序的控制结构(3)——选择结构 if 授课时间
教学目的和要求
1.掌握:条件表达式、if 语句 2.熟悉:关系运算符和关系表达式、逻辑运算符和逻辑表达式 教学内容
1.基本内容:(1)关系运算符和关系表达式(2)逻辑运算符和逻辑表达式(3)条件语句 2.重点:条件语句 讲课进程和时间分配 引子(15 分钟)
关系操作数可以是数值类型数据和字符型数据。
2)关系运算符的优先级 ①<、<=、> 和 >= 为同一级, == 和 != 为同一级。且前 4 个高于后 2 个;结合方向 均为自左至右。
②关系运算符的优先级低于算术运算符,但高于赋值运算符。
例如:
a+b > b+c 等效于 (a+b)>(b+c)。
(2+a)==(b-a) 等效于 2+a == b-a。