c语言程序设计第四章.ppt_第1页
c语言程序设计第四章.ppt_第2页
c语言程序设计第四章.ppt_第3页
c语言程序设计第四章.ppt_第4页
c语言程序设计第四章.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第四章 选择结构 4.1 关系运算和逻辑运算 选择结构是程序基本控制结构之一。 C语言中的选择结构包括三种条件语句: lif 语句 lswitch语句 l 条件表达式语句 4.1.1 C语言中的逻辑值 判断逻辑值:非0值为真,0值为假。 表达逻辑值:“1”为真,“0”为假。 .1.2 关系运算符和关系表达式 . 六个关系运算符 运算符意义义优优先级级结结合性 大于10自左至右 = 大于等于10自左至右 = = 等于9自左至右 ! = 不等于9自左至右 算术运算 关系运算 赋值运算 2关系表达式 关系表达式的值只有两个:为真时值为1,为假值为0。 例: 表达式 值值 2 0 0 3 = 4 0 1.0/3*3=1.0 0 4.1.3 逻辑运算符和逻辑表达式 a b !a !b a 对象值为0,结果为1。 优先级定义: 2. 表达式为0,执行语句B 表达式 语句A语句B 0= 0 例: if(xy) printf(“%d“, x); else printf(“ %d“, y); 注 1. 表达式e:可以是关系表达式, 逻辑表达式, 或任何类型表 达式。其作用是控制整个语句的执行路线。 2. 语句S1和语句S2可以是任何类型的单个语句(包括空语 句和复合语句)。单个语句必须加“;”复合语句外 面不用加“;”。 例如,以下语句是允许的: if (x=0) y=x; s=x+y; else y=-x; s=0; 复合语句 复合语句 3. 整个if 语句,在语法上是一个语句。 一个语句 例4.1 分别用双目if语句和单目if语句求两个变量的最小值。 解1: 用双目if语句,程序如下: #include void main ( ) int x , y , min ; printf(“n Input x y:“); scanf (“ %d%d “, if ( x void main ( ) int x, y, min ; printf(“n Input x y:“); scanf (“ %d%d “, min=x ; if (miny) min=y ; printf ( “n min (%d,%d)=%d “, x, y, min ) ; 解3: 进行变量交换 #include void main ( ) int x, y, t ; printf(“n Input x y:“); scanf (“ %d%d “, if (xy) t=x;x=y;y=t;/或t=x,x=y,y=t; printf ( “n min =%d “, x ) ; 例4.2. 从键盘上输入一字符,判断它是否是英文字母,若是 输出Y, 否则输出 N。 解. #include #include void main ( ) char c; printf(“n Input a char:“); c=getch(); putchar(n); 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(“%5.2f, %5.2f, %5.2f“, a, b, c); 运行情况如下: 3,7,1 1.00, 3.00, 7.00 if语句的S1和S2可以是任何类型的语句。特别地,也可 以是if语句(单目的或双目的)。当语句S1和(或)语句S2又 是if语句时,就构成了if语句的嵌套。 注. 嵌套式if语句中,每个else 通常是同它前边最近的那个if 相匹配。 程序书写时注意层次关系 ,养成良好的习惯。 if (e1) if(e2) else else 两层if 语句的嵌套 4.2.2. if语句的嵌套 例4.4 有一函数 y= 1 (x0) 编一程序,输入一个x值,输出y值。 有以下几种写法,请判断哪些是正确的? 程序1: main ( ) int x, y; scanf(“d“, if (x=0) if (x0) y=1; else y=0; else y= 1; 程序3: 将上述if语句改为: y= 0; if (x! =0) if (x0) y=1; else y=-1; 程序4: y=0; if (x=0) if (x0) y=1; else y= 1; 例4.5 对于已知的int型变量x值,计算并输出 函数f(x)值。f(x)定义为: 程序如下: main ( ) float x, f ; printf(“nInput float x: x=0 printf(“n input score:”); scanf (“%d“, if (score=90) printf (“n A“) ; else if (score=80) printf (“n B“) ; else if (score=60) printf (“n C“) ; else printf (“n D“) ; 条件表达式语句等价于以下的if语句: if (e1) e2 ; else e3 ; 4.3条件表达式构成的选择结构 C语言提供了一个简单的条件赋值语句或条件表达式。 条件运算符为? : 三目运算符。 功能: 先判表达式1, 若非0,则值为表达式2的值,否则 为表达式3的值。 一般形式表达式1?表达式2: 表达式3 max=ab? a:b; 当ab. max a. 否则maxb 例4.7 判断一个int型变量的值是否奇数,是则输出 Odd ,否则输出 Even 。程序如下: main ( ) int n ; printf(“nInput int n:n“); scanf (“%d“, printf ( ( n%2= =1) ? “nOdd“ : “nEven“ ) ; 程序最后一个语句中 printf的参数是条件表达式,其中 n%2= =1为表达式e1 , “nOdd“为表达式e2,“nEven“为 表达式e3。即,printf的参数为“nOdd“或“nEven“。 注: 1. 条件运算符优先于赋值运算符. 例: max=(ab? a:b)可去掉( ) 2. 条件运算符低于关系运算符和算术运算符。 例: max=ab? a:b+1 max= ab? a:(b+1)并不是 max=(ab? a:b)+1 3. 条件运算符结合性为从右至左. 如: ab? a:cd ? c:d 相当于 ab? a:(cd? c:d) 4. 条件表达式不能取代一般的if语句,只有当if 的两 个分支为给同一变量赋值时才可替代if. if (ab) printf(“%d“, a); else printf (“%d“, b) 由于printf.不是表达式,故不可用条件表达式, 但可为: printf(“%d“, ab? a:b); 5. 表达式1、表达式2、表达式3可类型不同。 main ( ) char ch; scanf (“%c“, ch=(ch=A break; case D: printf(“=80 scanf(“%d“, if (year%4= =0) if (year%100= =0) if (year%400= =0) leap=1; else leap=0; else leap=1; else leap=0; if (leap) printf(“%d is“, year); else printf(“%d is not“, y

温馨提示

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

评论

0/150

提交评论