第四章 选择结构程序设计(c语言程序设计)
中国水利水电出版社
4
辑运算符和逻辑表达式
4.2逻辑运算符和逻辑表达式 4.2逻辑运算符和逻辑表达式
4.2.1 逻辑运算符及其优先次序 1.逻辑运算符 C语言提供3种逻辑运算符: && 逻辑与(相当于“同时”) || 逻辑或(相当于“或者”) ! 逻辑非(相当于“否定”) 其中,&&和||为双目运算符,且结合方向为自左至右;! 为单 目运算符,仅对其右边的操作数进行逻辑求反运算。 2.逻辑运算符的运算优先级 (1)在逻辑运算符中,逻辑非!的优先级最高,逻辑与&&次 之,逻辑或||最低。 (2)与其它种类运算符的优先关系
中国水利水电出版社 14
条件语句
方法1: main() { int x,y; scanf(″%d″,&x); if(x<0) y=-1; else if(x= =0) y=0; else y=1; printf(″x=%d,y=%d\n″,x,y); } 方法2: main() { int x,y; scanf(″%d″,&x); y=-1;
中国水利水电出版社 7
第二种形式: 双分支if if语句 2. 第二种形式: 双分支if语句 格式: if(表达式) 〈语句1〉; else 〈语句2〉; 功能:首先计算表达式的值,若表达式的值为“真”(为非0), 则执行语句1;否则,执行语句2。其流程图如图4-1(b)所示。 例如: if(x>y) printf(″%d″,x); else printf(″%d″,y);
中国水利水电出版社
5
逻辑运算符和逻辑表达式
高 高低高 !(非) 算术运算符 关系运算符 &&和 || 赋值运算符
低
4.2.2 逻辑表达式 1.逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达式连接 起来,进行逻辑运算的式子。在C语言中,可以用逻辑表达式表 示多个条件的组合。 例如,(a+b)&&(c<=0) 逻辑表达式的值也是一个逻辑值,“真”或“假”。 2.逻辑量的真假判定 C语言用整数“1”表示“逻辑真”,用“0”表示“逻辑 假”。但在判断一个表达式或变量的“真”或“假”时,如果为 0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。
中国水利水电出版社 6
条件语句
4.3条件语句 4.3条件语句
if语句是条件选择语句,它是通过对给定条件的判断,来决定所要 执行的操作。 if语句的三种形式 4.3.1 if语句的三种形式 第一种形式:单分支if if语句 1.第一种形式:单分支if语句 格式: if(表达式) 〈语句〉; 功能:首先计算表达式的值。若表达式的值为“真”(为非0), 则执行语句;若表达式的值为“假”(为0),则直接转到此if语句的 下一条语句去执行。其流程图如图4.1(a)所示。 例如: if(x>y) printf(″%d″,x); 如果x>y为真,则打印x的值,否则执行下面的语句。
中国水利水电出版社 12
条件语句
4.3.2 if语句的嵌套 一个if又包含一个或多个if语句,称为if语句的嵌套。在if语句中 可以根据需要,用if语句的三种形式进行互相嵌套。一般形式如 下: 1.if( )内嵌if if( ) 〈语句1〉 内嵌if else 〈语句2〉 else if( ) 〈语句3〉 内嵌if else 〈语句4〉 2.if( ) if( ) 〈语句1〉 else if( ) 〈语句2〉 内嵌if else 〈语句3〉
条件语句
图4-1 选择结构的流程图表示 中国水利水电出版社 8
条件语句
第三种形式:多分支if if语句 3. 第三种形式:多分支if语句 格式: if(表达式1)〈语句1〉; else if(表达式2)〈语句2〉; … else if(表达式n)〈语句n〉; else 〈语句n+1〉; 功能:从表达式1的值开始进行判断,当出现某个表达式的值 为真时,则执行其对应分支的语句,然后跳出整个if 语句,执行后 续语句。若所有表达式的值都为“假”(为0),则执行语句n+1。 其流程图如图4-2所示。
C语言程序设计案例教程
第4章 选择结构程序设计
中国水利水电出版社
1
关系运算符和关系表达式
4.1 关系运算符和关系表达式
4.1.1 关系运算符及其优先次序 1.关系运算符 所谓“关系运算”实际上就是“比较运算”,即将两个数 据进行比较,判定两个数据是否符合给定的关系。 关系运算符均为二目运算符,共有以下6种: > 大于 < 小于 >= 大于或等于 <= 小于或等于 == 等于 != 不等于 注意: 在C语言中,“等于”关系运算符是双等号“= =”,而不 是单等号“= ”(赋值运算符)。
中国水利水电出版社
9
条件语句
图4-2 第三种形式if语句的流程图表示
说明: (1)if语句中的表达式应该是C语言的合法表达式。在执行if 语句时先对表达式求解,若表达式的值为0,按“假”处理;若 表达式的值为非0,按“真”处理,执行指定的语句。
中国水利水电出版社 10
条件语句
(2)在if和else后面可以含有多个操作语句,当两个或两个以上 的操作语句时应用花括号“{ }”将几个语句括起来,构成一个复 合语句。 (3)多分支语句中,出现了多个if与else语句,其中,else语句不 能作为语句单独使用,它必须与if配对使用。配对原则是;从后往前 查找,else 总是与离它最近的、尚未与其它else配对的if语句配对。 4.1 s 【例4.1】将两个数中较大者赋给s。 main() { int a,b,s; a=10; b=20; if(a>b) s=a; else s=b; printf(″s=%d\n″,s); } 运行结果: s=20
中国水利水电出版社 3
关系运算符和关系表达式
2.关系表达式的值——逻辑值(“真”或“假”) .关系表达式的值 逻辑值( 逻辑值 由于C语言没有逻辑型数据,所以,用整数“1”表示“逻 辑真”,用整数“0”表示“逻辑假”。 例如,假设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”表示“逻辑假”。 所以,关系表达式的值,还可以参与其它种类的运算,例如算 术运算、逻辑运算等。
中国水利水电出版社 2
关系运算符和关系表达式
2.关系运算符的优先级 (1)在关系运算符中,前4个优先级相同,后2个相同;且前4个 高于后2个;结合方向均为自左至右。 (2)关系运算符的优先级低于算术运算符,但高于赋值运算符。 4.1.2 关系表达式 1.关系表达式的概念 所谓关系表达式是指用关系运算符将两个表达式连接起来进行关 系运算的式子。 例如,下面的关系表达式都是合法的: a+b>c-6; (a=3)<=(b=5); 'a'>='b'; (a>b)= =(b>c);
中国水利水电出版社 11
条件语句
【例4.2】比较两个数,按由大到小输出。 ① 用if语句的第一种形式,又称单分支语句编程: main() { int a=10,b=20,x; if(a<b) {x=a; a=b; b=x;} printf(″%d,%d″,a,b); } 运行结果: x=20,y=10 ②用if语句的第二种形式,又称双分支语句编程: main() { int a,b,x,y; a=10; b=20; if(a>b){x=a;y=b;} else {x=b;y=a;} printf(″x=%d,y=%d\n″,x,y); }
中国水利水电出版社 16
条件语句
说明: (1)条件表达式中的“表达式2”和“表达式3”,又可以是条件 表达式,即嵌套使用。 (2)条件运算符的优先级,高于赋值运算符,但低于关系运算 符和算术运算符。 (3)其结合性为“从右到左”(即右结合性)。 【例4.4】输入两个整数,并将其中较大者显示出来。 #include <stdio.h> main() { int a,b,max; scanf(″%d%d″,&a,&b); max=a>b?a:b; printf(″max=%d″,max); }
中国水利水电出版社 19
多分支语句
说明: (1)switch后面圆括号内的表达式的值和case后面的常量表达式 的值,必须是整型或字符型。 (2)同一个switch语句中的所有case后面的常量表达式的值都必 须互不相同,其中default和〈语句n+1〉可以省略。 (3)switch语句中的case和default的出现次序是任意的。
中国水利水电出版社 15
条件语句
} if(x= =0) y=0; else if(x>0) y=1; printf(″x=%d,y=%d\n″,x,y);
思考:用if语句的三种形式进行互相嵌套,可以看出编写一个 程序的方法不是唯一的,方法1较直观;方法2较巧妙。自己动手试 一下,再找到一种方法来完成该问题的程序。 条件运算符(? 4.3.3 条件运算符(? :) 条件运算符的格式: 变量=〈表达式1〉?〈表达式2〉:〈表达式3〉; 执行过程:当表达式1的值为“真”时,将表达式2的值赋给变量; 当表达式1的值为“假”时,将表达式3的值赋给变量。 即:无论表达式1为“真”还是为“假”,都执行一个赋值语句 且给同一个变量赋值。可以看出,用条件运算符“?:”的功能, 来实现if 语句的第2种格式。
中国水利水电出版社 20
多分支语句
(4)由于switch语句中的“case常量表达式”部分只起语句标号 的作用,所以,在执行完某个case后面的语句后,如果没有 “break”来结束多分支语句,将自动转到该语句后面的语句去执行, 直到遇到switch语句的右花括号为止,而不再进行条件判断。 (5)每个case的后面既可以是一个语句,也可以是多个语句, 当是多个语句的时候,也不需要用花括号括起来。 (6)多个case的后面可以共用一组执行语句。如: switch(n) { case 1: case 2: x=10; break; … } 它表示当n=1或n=2时,都执行下列语句: x=10;break;
C语言第四章.选择结构程序设计
case 常量表达式n: 语句n; default : 语句n+1; }
语句的执行过程:
先计算表达式的值,并逐个与其后的常量表达式值相 比较; 当表达式的值与某个常量表达式的值相等时,即执行
其后的语句;
然后不再进行判断,继续执行后面所有case后的语句;
如表达式的值与所有case后的常量表达式均不相同时,
a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b)
2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”
来表示。
反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”。
3)逻辑运算的规则:
(1)与运算&&
条件运算符和条件表达式
条件表达式通常用于赋值语句之中。 例如条件语句:
if(a>b) max=a;
else max=b; 可用条件表达式写为 max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a 赋予max, 否则把b 赋予max。
注意以下几点:
条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。 因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
注意:
(3) 在if 语句的三种形式中,所有的语句应为单个语句,
如果要想在满足条件时执行一组(多个)语句,则必须
把这一组语句用{ } 括起来组成一个复合语句。 例如:交换两个变量 if (a>b) { t= a; a=b; b=t; }
c语言程序设计教程第二版课后答案
c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
C语言-第4章 选择结构程序设计
第4章选择结构程序设计注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。
弄明白这两个知识点,就能够以不变应万变了。
一、单项选择题1. 在C语言中,能代表逻辑值"真"的是。
A) true B)大于0的数C)非0整数D)非0的数2. 表示关系x<=y<=z的c语言表达式为。
A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)3. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是。
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=04、判断char型变量c1是否为大写字母的表达式为。
A)’A’<=c1<=’Z’ B)(c1>=’A’) & (c1<=’Z’)C)(’A’<=c1)AND (‘Z’>=c1) D)(c1>=’A’)&& (c1<=’’Z’)5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为。
A) ‘A’=<c<=’Z’ B)c>=‘A’&& c<=’Z C)A=<c<=Z D) c>=A && c<=Z6. 设有语句“int a=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是。
A)1B)0 C)-1 D)出错7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是。
第4章 选择结构程序设计《C语言程序设计(第三版)》-电子教案
【注意】
switch后跟的"表达式"允许为任何类型的表达式,其 后跟的"表达式"允许为任何类型的表达式, 后跟的 数据类型和case后面的常量表达式的数据类型一致. 后面的常量表达式的数据类型一致. 数据类型和 后面的常量表达式的数据类型一致 每一个case后的各常量表达式的值不允许重复,否则 后的各常量表达式的值不允许重复, 每一个 后的各常量表达式的值不允许重复 会报错. 会报错. 每一个case后允许有多条语句 可以不用花括号" 后允许有多条语句, 每一个case后允许有多条语句,可以不用花括号"{}" 括起来. 括起来. case和default子句出现的先后顺序可以变动,不会影 子句出现的先后顺序可以变动, 和 子句出现的先后顺序可以变动 响程序的执行结果. 子句也可以省略不用. 响程序的执行结果.default子句也可以省略不用. 子句也可以省略不用 多个case可以共用一组执行语句.例如: 可以共用一组执行语句. 多个 可以共用一组执行语句 例如: … case 'A': case 'B': case 'C':printf("Pass\n");break;
3<5 || ++b
【例4-2】测试短路现象 】
#include <stdio.h> void main() { int a,b; a=b=0; a || ++b; printf("%d,%d\n",a,b); a=b=1; a || ++b; printf("%d,%d\n",a,b); a=b=0; a && ++b; printf("%d,%d\n",a,b); a=b=1; a && ++b; printf("%d,%d\n",a,b); }
C语言 第4章 选择结构程序设计
#include <stdio.h> int main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) 如果 a>b,将a和b对换 , 和 对换 是 、 中的小者 { t=a; a=b; b=t; } a是a、b中的小者 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); return 0; }
if (disc<0) 8<0为假 为假 printf(“has not real roots\n”); else 的值变为-1 的值变为 { p=-b/(2.0*a); p的值变为 的值变为0.71 的值变为 q=sqrt(disc)/(2.0*a); q的值变为 x1=p+q; x1的值变为 的值变为-0.29 的值变为 x2=p-q; x2的值变为 的值变为-1.71 的值变为 printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; }
if (disc<0) printf(“has not real roots\n”); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; 复合语句 }
C语言有两种选择语句: 语言有两种选择语句: 语言有两种选择语句 (1)if语句,实现两个分支的选择结构 语句, 语句 (2)switch语句,实现多分支的选择结构 语句, 语句
四《C语言程序设计》实验四选择结构程序设计实验目的1、掌握分支
四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
C语言程序设计第四单元选择结构程序设计
思路指导
输入:输入学生的成绩存储到变量score中 输出:根据学生的成绩输出学生的等级 条件判断:判断学生成绩符合哪个范围 处理:根据判断,输出学生的等级
相关知识
1.多重if(多分支if语句)的语法格式 if(表达式1)
{语句体1} else if(表达式2)
{语句体2} else if(表达式3)
/*母亲身高*/
printf("你是男孩(b) 还是女孩(g)?");
scanf("%1s", &sex);
printf("你输入你爸爸的身高(cm):");
scanf("%f", &faheight);
printf("你输入你妈妈的身高(cm):");
scanf("%f", &moheight);
条件1 条件2
语句组1 语句组2
条件
语句组n+1 语句组n
语句组n 语句组n+1
相关知识
(二)解决选择问题的基本步骤和方法
选择结构是结构化程序设计的三种结构之一,也是常用的一种 结构,在大多数的程序中都包含有选择结构,一般来说解决这样 的问题用以下的方法和步骤:
1. 判断解决的问题是否是选择问题。 2. 若是选择问题,则判断是哪种选择结构类型,是单分支、双 分支还是多分支结构。 3. 若是选择问题,确定选择结构,确定选择条件、执行过程与 结束过程。 4. 用C语言描述。
此外,如果喜爱体育锻炼,那么可增高身高2%;如果有良 好的卫生饮食习惯,那么可增加身高1.5%。
思路指导
输入:性别(用字符型变量sex存储,输入字母g表示女性, 输入字符b表示男性)、父母身高(用实型变量存储, faheight为其父身高,moheight 为其母身高)、是否喜爱体 育锻炼(用字符型变量sports存储,输入字符y表示喜爱,输 入字符n表示不喜爱)、是否有良好的饮食习惯(用字符型变 量diet存储,输入字符y表示喜爱,输入字符N表示不喜爱)。 输出:身高 处理:利用给定公式和身高预测方法对身高进行预测。 判断条件:性别男还是女、是否喜爱体育锻炼、是否有良好 的饮食习惯。
C语言程序设计第四章 选择结构程序设计
辑量。
Page 4
4.1 逻辑量
逻辑表达式 1.逻辑运算符 逻辑运算符有以下3种:&&(逻辑与)、||(逻辑或)、!(逻辑非) “&&”和“||”是双目运算符,“!”是单目运算符,逻辑运算的运算对 象是逻辑量。其中“!”的优先级别高于“&&”,“&&”的优先级高于
“||”。“&&”和“||”是左结合运算符,“!”是右结合运算符。
Page 6
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ① “&&”运算的短路规则。 例如:a&&b
当左目a为逻辑假时,有当左目a为逻辑真时,才运算右目b。
Page 7
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ②“||”运算的短路规则。 例如:a||b
逗号运算符高,结合性为右结合。
Page 12
4.2 if语句
条件表达式 2.条件表达式 用条件运算符将运算对象连接起来的符合C语言规则的表达式称为条 件表达式。 条件表达式的运算过程为:先判断第1目逻辑量,如果逻辑量为真,
选取第2目的结果作为整个表达式的值,否则选取第3目结果作为整个
表达式的值。 条件表达式中存在类型的自动转换,条件表达式的值的类型是第2目
立的表达式对待。
Page 14
4.2 if语句
if语句的嵌套 从if语句的格式来看,if( )~else只能解决双分支问题。如果要解决多 分支问题,则需使用if语句的嵌套。 例如多分支函数:
1 x0 y= 0 x 0 1 x 0
《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件
►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计
C语言程序设计实例教程(第2版)丁爱萍第4章 选择结构程序设计_百度文库
本文由xjsir2010贡献 ppt文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
第4章 选择结构程序设计 章 第4章 选择结构程序设计 章 4.1 关系运算符及其表达式 4.2 逻辑运算符及其表达式 4.3 条件运算符 4.4 单条件选择if语句 单条件选择 语句 4.5 开关分支 开关分支switch语句 语句 习题4 第4章 选择结构程序设计 章 4.1 关系运算符及其表达式 关系表达式是由关系运算符连接表达式构成的。
1. 关系运算符 1) 关系运算符 关系运算符都是双目运算符,共有如下6种: >,<,>=,<=,==,!= 分别是大于、小于、大于或等于、小于或等于、 等于和不等于。
第4章 选择结构程序设计 章 2) 运算符的优先级和结合性 前4种关系运算符的优先级别相同,后2种也相同,前4 种高于后2种。
关系运算符具有自左至右的结合性。
关系运算符、算术运算符和赋值运算符之间的优先级次序 为:算术运算符优先级最高,关系运算符次之,赋值运算 符最低。
2. 关系表达式 1) 关系表达式 由关系运算符组成的表达式称为关系表达式。
关系运算符两边的运算对象可以是C语言中任意合法 的表达式。
例如,x>y,(x=5)<=y,x==y等。
第4章 选择结构程序设计 章 2) 关系表达式的值 关系表达式的值是整数0(代表结果为逻辑假)或 1(代表结果为逻辑真),在C语言中不存在专门的“逻 辑值”,此处请读者务必清楚。
例如,关系表达式 (x=3)>(y=4)的值为0。
关系表达式常用在条件语句和循环语句中。
3) 举例 一般情况下,关系表达式用在选择结构或循环结 构的关系判断中,并不需要输出关系表达式的值,这 里我们为了了解关系表达式的内部运行机制,在例4-1 中可以看到关系表达式的值只能是0或1。
第4章 选择结构程序设计 章 【例4-1】关系表达式示例。
#include "stdio.h" main( ) { char x='m' , y='n' ; int n ; n=x<y ; printf("%d\n" , n) ; n=x==y-1 ; printf("%d\n" , n) ; n=('y'!='Y')+(5<3)+(y-x==1) ; printf("%d\n" , n) ; } 第4章 选择结构程序设计 章 运行结果: 1 1 2 通过上面的程序可以看出:关系运算的结果为 “真”时,值等于1;结果为“假”时,值等于0。
