学习好资料 欢迎下载
《C语言程序设计》课程教案表
授课题目 第三章 程序的控制结构(3)——选择结构if 课时安排 授课时间 1 教学目的和要求 1.掌握:条件表达式、if语句 2.熟悉:关系运算符和关系表达式、逻辑运算符和逻辑表达式 教学内容 1.基本内容:(1)关系运算符和关系表达式(2)逻辑运算符和逻辑表达式(3)条件语句 2.重点:条件语句 讲课进程和时间分配 引子(15分钟) 关系运算就是比较运算,即将两个数据进行比较,判定两个数据是否符合给定的关系。 a > b a = = b a != b 1、关系运算符和关系表达式 (1)关系运算符及其优先次序 1)关系运算符 C语言中关系运算符为二目运算符,共有6种: < 小于关系运算符 <= 小于等于 > 大于 >= 大于等于 = = 等于) != 不等于 关系操作数可以是数值类型数据和字符型数据。 2)关系运算符的优先级 ①<、<=、> 和 >= 为同一级, == 和 != 为同一级。且前4个高于后2个;结合方向均为自左至右。 ②关系运算符的优先级低于算术运算符,但高于赋值运算符。 例如: a+b > b+c 等效于 (a+b)>(b+c)。 (2+a)==(b-a) 等效于2+a == b-a。 (2)关系表达式 1)关系表达式的概念 是指用关系运算符将两个表达式连接起来进行关系运算的式子。 例如: a + b > b + c 比较两个算术表达式的值 a <= 2 * b 比较变量和算术表达式的值 'a' < 'b' 比较两个字符的ASCII码值 2)关系表达式的值—逻辑值(“真”或“假”) 由于C语言没有逻辑型数据,所以,用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。 例如,假设a=3,b=4,c=5则: a>b的值为0(假)。 (a>b)!=c的值为1(真)。 (a
注意:C语言用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。所以,关系表达式的值,还可以参与其它种类的运算,例如算术运算、逻辑运算等。 3)关系运算符的结合律 C语言规定关系表达式采取左结合律。表达式中出现优先级别为同一级别的运算符时,则按从左到右结合方向处理。 例如: int a=2,b=3,c=1; a>b
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语句的三种格式 引子:例如计算分段函数 3-x (x<0) y= 2x (x>=0) 计算 x<0 ,如果结果为1:计算:y=3-x; 否则,计算:y=2 * x; 需要根据x的值进行流程选择(分支)。 首先先判断表达式的值 若为非0则执行下面的语句 若为0则跳过该语句 1)单分支选择语句 学习好资料 欢迎下载
一般形式:i f (表达式) 语句 假(0) 表达式 真(非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
else printf (“%f”, b ); } 练习:下面程序的输出结果是[ ] main() { int x=2,y=-1,z=2; if(y<0) z=0 else z+=1; printf(“%d\\n”,z); } 3)多分支选择语句 一般形式:if (表达式) 语句1 else if (表达式)语句2 else … 写一个程序完成下列功能: 1 输入一个分数score 2 score<60 输出 E 3 60<=score <70 输出 D 4 75<=score <80 输出 C 5 80<=score <90 输出 B 5 90<=score 输出 A main( ) { int score; scanf(“%d”, &score); if ( score<60) printf(“%c” , ’E’); else if ( score <70) printf(“%c” , ’D’); else if (score <80) printf(“%c” , ’C’); else if (score <90) printf(“%c” , ’B’); else printf(“%c” , ’A’); } 说明:if语句中的表达式一般为关系或逻辑表达式,也可以为任何数值类型的表达式。 执行语句可以是一条简单语句、空语句或复合语句,也可以嵌套其它流程控制语句。 4)复杂条件选择 问题: 输入两个字符ch1和ch2, 如果ch1==‘Z’ 且 ch2==‘B’, 则输出“You are right ! “ main() { char ch1,ch2; ch1=getchar( ); ch2=getchar( ); if ( ch1 == ‘Z’ && ch2==‘B’ ) printf( “You are right ! “ );