《C语言程序设计》教案第三章程序的控制结构—选择结构if_第1页
《C语言程序设计》教案第三章程序的控制结构—选择结构if_第2页
《C语言程序设计》教案第三章程序的控制结构—选择结构if_第3页
《C语言程序设计》教案第三章程序的控制结构—选择结构if_第4页
《C语言程序设计》教案第三章程序的控制结构—选择结构if_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习好资料欢迎下载C语言程序设计课程教案表授课题目课时安排1第一章程序的控制结构(3)选择结构if授课时间教学目的和要求1 .掌握:条件表达式、if语句2 .熟悉:关系运算符和关系表达式、逻辑运算符和逻辑表达式教学内容1 .基本内容:(1)关系运算符和关系表达式(2)逻辑运算符和逻辑表达式(3)条件语句2 .重点:条件语句讲课进程和时间分配引子(15分钟)关系运算就是比较运算,即将两个数据进行比较,判定两个数据是否符合给定的关系。a > b a = = b a ! = b1、关系运算符和关系表达式(1)关系运算符及其优先次序1)关系运算符C语言中关系运算符为二目运算符,共有6种:>

2、 小于关系运算符> =小于等于> 大于> =大于等于=等于)!二不等于关系操作数可以是数值类型数据和字符型数据。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 &

3、lt;= 2 * b比较变量和算术表达式的值a' < 'b'比较两个字符的 ASCII码值2)关系表达式的值 一逻辑值(真”或 假”)由于C语言没有逻辑型数据,所以,用整数“1 ”表示 逻辑真”,用整数“昧示 逻辑假”例如,假设a=3, b=4, c=5则:a>b的值为0 (假)。(a>b)!=c的值为1 (真)。(a<b)+c 的值为 6, 因为 a<b的值为 1, 1+5=6。注意:C语言用整数1”表示 逻辑真”,用整数0”表示 逻辑假”。所以,关系表达式的值,还可以参与其它种类的运算,例如算术运算、逻辑运算等。3)关系运算符的结合律C

4、语言规定关系表达式采取左结合律。表达式中出现优先级别为同一级别的运算符时,则按从左到右结合方向处理。例如:int a=2,b=3,c=1 ;a>b<c 值:1先计算a>b,值是0 ,再计算0<c,值是16>3<2 值:1先计算6>3,值是1 ,再计算1<2,值为12、逻辑运算符和逻辑表达式(1 )逻辑运算符C语言提供3种逻辑运算符:&& 逻辑与(相当于“同时”)|逻辑或(相当于“或者”)!逻辑非(相当于“否定”)其中,&窗口 |为双目运算符,且结合方向为自左至右; !为单目运算符,仅对其右边的操作 数进行逻辑求反运算。1)

5、逻辑非!逻辑非是一元运算符。操作数值为0,逻辑非运算的结果为1(逻辑真);当操作数值为非0时,逻辑非运算的结果为 0。例如:int a=5,b=3;!a结果:0!(a < b)结果:1。因为a < b 的值为02)逻辑与&&逻辑与是二元运算,只有参加逻辑与运算的两个操作数值均为非0(逻辑真)时,结果才为真。例如:int a = 5,b = 3;a && b值:1(a < b) && (a > 0)值:0,因为a<b的值为0。3)逻辑或|逻辑或也是二元运算,只要两个操作数中有一个为非0(逻辑真),结果就为1。例如:in

6、t a=5,b=3a | b值:1(a < b) | (a > 0)值:1因为a > 0 的值为1。(2)逻辑运算符优先级C语言逻辑运算符的优先级规定如下:1)优先级顺序为 ! 一&&- |2)与其他种类运算符的优先关系:高A !(非)算术运算符关系运算符&& 和 1|低赋值运算符例如:! a && b > 5 计算顺序:(!a)&&(b> 5) a = = b | a < c计算顺序:a = = ( b | (a<c)(3)逻辑表达式1 )逻辑表达式的概念所谓逻辑表达式是指,用逻辑运算符

7、将1个或多个表达式连接起来,进行逻辑运算的式子。在C语言中,可以用逻辑表达式表示多个条件的组合。例如:!(a > b)对关系表达式的值取非,(a > b) &&(b > c)(a > b ) && (b > c ) | ( b = 0)2)逻辑量的真假判定C语言用整数“1 ”表示“逻辑真”,用“ 0”表示“逻辑假”。但在判断一个表达式或变 量的“真”或“假”时,如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。3 )逻辑运算符的结合性C语言逻辑运算符采用左结合律。表达式中出现优先级别为同一级别的运算符时,按从左到右的结合

8、方向处理。例如:a && b && c 计算顺序为:(a&& b)&& c 。3、条件语句(25分钟)(1) if语句的三种格式引子:例如计算分段函数y= / 3-X (X<0)L 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( "

9、%f " , &x);y = 2 * x ;if ( x < 0 )printf( "y= %6.2f ” , y );如果x<0为真,则打印y的值,否则跳过printf( "y= %6.2f ”直蹲执行下面的语句。练习:运行下面程序时,若从键盘输入k4<CR>,则程序的输出结果是main()int a,b,s;scanf("%d,%d,&a,&b);s=a;if(s<b) s=b;s=s*s;printf( " %d ,s);A、14 B、16 C、18 D、202)双分支选择语句if(表

10、达式)语句1else 语句2例:输入两个数,比较其大小,将较大的数输出 流程分析:? (1)输入两个数据a,b ;? (2)如果a>b则输出a ;否则,输出b。#include <stdio.h>main()float a, b;scanf( "f, %f ”,&a, &b); if (a>b) printf ("%f" , a );else printf ("%f" , b );练习:下面程序的输出结果是main() int x=2,y=-1,z=2;if(y<0) z=0else z+=1;pr

11、intf("r% d,z);3)多分支选择语句一般形式:if(表达式)语句1else if (表达式)语句2 else 写一个程序完成下列功能:1输入一个分数 score2 score<60输出E3 60<=score<70输出D4 75<=score<80输出C5 80<=score<90输出B5 90<=score输出 Amain() int score;scanf(" %d' , &score);if ( score<60) printf(" %c' ,' E');

12、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)

13、复杂条件选择问题:输入两个字符chi和ch2,如果 ch1= 'Z'且 ch2=如',则输出"You are right !"main() char ch1,ch2;ch1=getchar();ch2=getchar();if ( chi =&&ch2= ' B')printf( "You are right! ");练习:以下不正确的语句为A、if(x>y);B、if(x>y) x+; y+; C、if(x=y)&&(x!=0)x+=y;D、if(x!=y) scanf

14、(" %d' ,&x);else scanf( " %d' ,&y);运行下面程序时,若从键盘输入字母"b;则输入结果是main() char c;c=getchar();if (c>=,a,&&c<=,u,) c=c+4;else if (c>=' v' &&c<= -2z; ) c=celse printf("input ernor!);putchar(c);A) g B)w C)f D) d5) if语句的嵌套一个if又包含一个或多个if语句,称

15、为if语句的嵌套。在if语句中可以根据需要,用if语句的三种形式进行互相嵌套。一般形式如下:if ()内嵌ifif ()语句 1else 语句 2>elseif ()语句 3else 语句 4if ()if ()语句 1elseif ()语句 2else 语句 3>说明:if与else的配对关系,从最内层开始,else总是与离它最近的未曾配对的if配对。if与else的个数最好相同,从内层到外层一一对应,以避免出错。如果if与else的个数不相同,可以用花括号来确定配对关系。例如:if ()if ()语句 1else语句2>这时限定了内嵌if语句的范围,因此 else与第一个

16、if配对。例 4.3 对下面的函数编程,要求输入一个x值,输出对应的 y值-1(x<0)y=0(x=0)1(x>0)方法 1: main ()int x , y;scanf C %d " , &x );if (x<0) y=-1;else if (x= =0 ) y=0;else y=1;printf (" x=%d , y=%dn ”, x, y);方法 2: main ()int x , y;scanf C %d " , &x );y=-1;if (x= =0) y=0;else if (x>0) y=1;printf

17、(" x=%d , y=%dn ”, x, y);练习:运行下面程序,若从键盘输入“3和”5;则程序的输出结果是main() int x,y;scanf("%d,%cT ,&x,&y);if(x=y) printf( "x=y" ); else if(x>y) printf("x>y” );else printf("x<y" );A) 3<5B) 5>3C) x>y执行下列程序的输出结果是 main() int a=258;if(a>=100) if(a>=1000) printf(D) x<y“%d is greater than n”,a);else printf( " %d is 100 tor999,a); else if(a<10) printf( " %d is less than' 10a);print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论