1、 把把y=y%(4+x)y=y%(4+x)转变为复合赋值表达式;转变为复合赋值表达式;把表达式把表达式a/=b-3a/=b-3转换为一般赋值形式;转换为一般赋值形式;程序段:程序段:int a;float s=9;a=s%4;int a;float s=9;a=s%4;是否是否合法,若有错,将如何将其改正?合法,若有错,将如何将其改正?程序:程序:#define PI 3 define PI 3 main()main()int a;PI+;a=PI;printf(int a;PI+;a=PI;printf(“a=%da=%d”,a);,a);是否有错,若有错,错在哪里?是否有错,若有错,错在哪
2、里?若:若:int a=4;char t=int a=4;char t=0 0;float d=9;float d=9;则表则表达式达式:19:19*a-t/da-t/d的值类型是什么?的值类型是什么?考查上次内容考查上次内容关系运算和逻辑运算关系运算和逻辑运算关系运算关系运算v关系运算是指数据之间的关系(比如数间关系运算是指数据之间的关系(比如数间的大小等)的大小等)v关系运算的结果要么为真,要么为假,若关系运算的结果要么为真,要么为假,若为真,就用为真,就用1 1表示,为假,就用表示,为假,就用0 0表示。表示。逻辑运算逻辑运算v逻辑是指事物之间的内在联系,它常用来逻辑是指事物之间的内在联
3、系,它常用来组合若干个关系运算,来描述一定的条件。组合若干个关系运算,来描述一定的条件。关系运算关系运算关系运算符关系运算符 、=、=、=、!=!=相同优先级相同优先级相同优先级相同优先级高高低低关系表达式关系表达式 若若a=3,b=2,c=1,a=3,b=2,c=1,则下列表达式的值则下列表达式的值 分别为多少?分别为多少?(a b a b)=c=c b+c a b+c a f=a c f=a c (ab)=c=11 b+c a3 30 f=a c0 101逻辑表达式逻辑表达式逻辑运算符逻辑运算符&(逻辑与)(逻辑与)|(逻辑或)(逻辑或)!(逻辑非)!(逻辑非)见书P29表2.6逻辑运算符
4、的优先级逻辑运算符的优先级逻辑运算的优先级逻辑运算的优先级|&!优先级优先级低低高高说明说明&和和|的优先级低于关系运算符,但的优先级低于关系运算符,但!高于高于算术运算符;逻辑表达式中的逻辑量,若不算术运算符;逻辑表达式中的逻辑量,若不是是0 0,则认为该量为真;,则认为该量为真;见书见书29说明部分说明部分逻辑表达式逻辑表达式逻辑表达式逻辑表达式说明:说明:逻辑表达式的值是一个具有真假属性的逻辑量,若一个量为非0值,则认为是真,用1表示。应用示例应用示例判断某年year是否为闰年;(提示:某年若是闰年,则必须符合下列条件之一:.该年可以被4整除,但不能被100整除;.该年可以被400整除)
5、y%4=0y%100!=0&()y%400=0()|活活 动动用用C语言描述下列逻辑关系语言描述下列逻辑关系1.x1.x和和y y中有一个大于中有一个大于z z;2.x不能被不能被y整除;整除;xz|yz xz|yz 或或(xz)|(yz)xz)|(yz)x%y!=0 x%y!=0 关于逻辑运算的特殊说关于逻辑运算的特殊说明明说明说明在逻辑表达式的求解过程中,并不是所有的逻辑在逻辑表达式的求解过程中,并不是所有的逻辑量、运算符都被执行,只是必须执行该逻辑量才量、运算符都被执行,只是必须执行该逻辑量才能求出整个表达式的解时,才执行该运算量或运能求出整个表达式的解时,才执行该运算量或运算符。算符。
6、见书见书P29(2)示例示例表达式表达式1&1&表达式表达式2 2中,若表达式中,若表达式1 1为为0 0,则计算,则计算机不再考虑表达式机不再考虑表达式2 2的值的情况,也就是说表达的值的情况,也就是说表达式不再执行式不再执行。活活 动动1.1.若有程序段若有程序段int a=5,b=9,s;s=(a-=5)&+b;int a=5,b=9,s;s=(a-=5)&+b;则计算机执行该程序段后,则计算机执行该程序段后,s s、a a和和b b分别是多少?分别是多少?2.2.若若a=9,b=10,c=1,d=7,x=8,y=15 a=9,b=10,c=1,d=7,x=8,y=15,则计算机执则计算
7、机执行了语句:行了语句:m=(x=ab)&(y=cb)&(y=cb?a:b 条件运算符的应用条件运算符的应用说明说明条件运算符的结合方向为从右往左条件运算符的结合方向为从右往左。如:如:a b?a:b c?b:c a b?a:b c?b:c 等价于等价于ab?a:(b c?b:c)ab?a:(b c?b:c)示例示例用条件运算符求三个数中的大者,编程实现用条件运算符求三个数中的大者,编程实现 main()main()int a,b,c,max;int a,b,c,max;scanf(%d,%d,%d,&a,&b,&c);scanf(%d,%d,%d,&a,&b,&c);max=a(bc?b:c)?a:(bc?b:c);max=a(bc?b:c)?a:(bc?b:c);printf(a=%d,b=%d,c=%d,max=%dn,a,b,c,max);printf(a=%d,b=%d,c=%d,max=%dn,a,b,c,max);作作 业业书本作业书本作业P35-P37:一、二题剩余部分编程作业编程作业P37P37:3 3、4 4