资源描述
第二章 选择结构程序设计,2.1* 关系运算符和关系表达式 2.2 * 逻辑运算符和逻辑表达式 2.3 * if 语句 2.4 switch 语句 2.5 程序举例,关系运算符(共6种) 用于比较两个数据的大小,被比较的数据可以是数值型,也可以 是字符型等。,2.1 关系运算符和关系表达式, (大于) = (大于等于) = = (等于) 优先级相同(低) != (不等于) *优先级别:低于算术运算符,但高于赋值运算符。 结合方向:自左而右。,关系表达式 用关系运算符连接的两个表达式称为关系表达式。如: 3=3+53+24 关系表达式的值:1 或 0 (在C中,没有逻辑常量) *逻辑真 整型数据 1 *逻辑假 整型数据 0,例1:设a=3, b=2, c=1 则: ab 其值为? c = a b 其值为 ?,1,1,例2: 3=3+53+24- - - -,3=854,3=14,3=1,0,说明 *(1)区别: = 条件运算符 = 赋值运算符 (2)字符数据的比较按其ASCII码进行。 d E,2.2 逻辑运算符和逻辑表达式,逻辑运算符 ! 逻辑非 高 (单目运算符,自右而左) printf( input score: ); scanf(%f, ,if(e1) if(e2) 语句1 else 语句2 else if(e3) 语句3 else 语句4,2、if语句的嵌套,if(e1) if(e2) 语句1 else 语句2 else if(e3) 语句3,说明 if与else配对问题,如: if(e1) if(e1) if(e2) if(e2) 语句1 语句1 else else 语句2 语句2,*C语言规定, else总是与上面最近的if配对。 若要改变这种默认的配对关系,在相应的if语句上加花括号。,例 有一函数,编一程序,输入一个x值,输出y值。,程序1: main( ) int x,y; scanf(%d, scanf(“%d”, ,因此,在执行完一个case分支后,要想跳出switch语句,转到switch语句的后续语句去执行,应在下一个case开始前,插入一个break语句。,break;,若输入 1,说明 4.多个case的后面可以共用一组执行语句。 switch(n) case 1: case 2: case 3: x=10;break; ,5.switch语句允许嵌套。 switch( ) switch( ) ,例 根据考试成绩的百分制分数段打印出相应的等级。,main( ) float score ; int n; printf( input score: ); scanf(%f, ,#include main( ) float score ; printf( input score: ); scanf(%f, ,思考一下这条语句的作用?,例 根据考试成绩的等级打印出百分制分数段。,main( ) char grade ; printf( input AE: ); scanf(%c, ,程序举例 例 通过条件语句嵌套实现 在直角坐标系中有一个以原点为中心的单位圆,今任给一点(x,y),试判断该点是在单位圆内、单位圆上,还是单位圆外?若在单位圆外,那么是在x轴的上方,还是在x轴的下方,还是在x轴上?,#include “math.h” main( ) float x , y , z; scanf(%f,%f, printf(% .2f ,% .2f,x,y); if (z=0) if (y0) printf(在单位圆外,x轴上方n); else printf(在单位圆外,x轴上n); else printf(在单位圆外,x轴下方n); ,main( ) int c; scanf(%d, 如果通过键盘输入分别输入:0, 1 ,2时,最后的输出结果分别为?,222,1111,00,作 业 课后习题18,要求: 1.15写书上 2.上机前,将68题的程序写在作业本上 3.上机时,调试程序直到调试出结果,
展开阅读全文