顺序结构程序+运算符

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//表达式值1 //表达式值1 //表达式值0 //d=1 //f=0
C语言程序设计
第五章 选择结构程序设计
关系运算几点注意:
例 5>2>7>8在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2 例 ‘a‟>0 结果为 1 ‘A‟>100 结果为0
C语言程序设计
第五章 选择结构程序设计
§5.2 逻辑运算符和逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起 来的式子就是逻辑表达式。
逻辑运算符: 含义 名称 示例 C语言提供3种逻辑运算符 运算符 && 逻辑与 a && b 若a 、 b同时为真,则a && b为真 逻辑或 a || b 若a 、 b之一为真,则a || b为真 || 逻辑非 ! a ! 若a为真,则!a为假;a为假,则!a为真
||(或)
(12)低 从左向右
<
>
(a>b)&&(x>y) //写成 a>b&&x>y 写成 a==b||x==y (a==b)||(x==y) // //写成 !a||a>b (!a)||(a>b)
C语言程序设计
第五章 选择结构程序设计
逻辑表达式
C语言中, 运算量: “假 ”, 0表示“假”,运算结果: 0表示
例2:已知三角形两边及其夹角,求第三边及面积 #include <stdio.h> #include <math.h> #define PI 3.14159265 void main() { float a,b,jc,c,area; printf("a="); scanf("%f",&a); printf("b="); 角度=弧度除以π再乘以180 scanf("%f",&b); printf("jc="); 弧度=角度乘以π后再除以180 scanf("%f",&jc); c=sqrt(a*a+b*b-2*a*b*cos(PI*jc/180)); 面积=1/2a*b*sina area=1.0/2*sin(jc/180*PI)*a*b; printf("c=%f\n",c); printf("area=%f\n",area); }
("a="); t a,b,{ jc,c; ntf("a="); %f",&a); oat a,b,jc,c; printf("a="); ("b="); f("%f",&a); ntf("b="); %f",&b); anf("%f",&a); printf("b="); f("%f",&b); "jc="); ntf(" %f",&jc); anf("%f",&b); jc="); printf(" f("%f",&jc); 2*a*b*cos(jc) jc="); a*b*cos(pi*jc/180)); anf("%f",&jc); *b-2*a*b*cos(jc) =%f\n",c); +b*b-2*a*b*cos(jc) 2*a*b*cos(pi*jc/180)); "c=%f\n",c); *b-2*a*b*cos(pi*jc/180)); tf("c=%f\n",c);
<
>
wenku.baidu.com
(16) 设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是
A. 10<a<15 C. a>10 && a<15 B. a= =11|| a= =12 || a= =13 || a= =14 D. !(a<=10) && !(a>=15)

当然是选 A 啊,C 语言中怎么可能直 接出现10<a<15这 样数学化的式子
C语言程序设计
第四章 顺序程序设计
§4.6 顺序结构程序举例
例4.10 输入三角形边长,求面积 文件包含预处理命令 #include <math.h> #include <stdio.h> void main() 变量定义 输入数据 { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=1.0/2*(a+b+c); 输出数据 area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s); 输入:3,4,6 < printf("area=%7.2f\n",area); > 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50
>结合方向 自左至右
<
>
用ASCII值 比较
C语言程序设计
第五章 选择结构程序设计
关系运算中应该注意 应避免对实数作相等或不等于0的判断 如 1.0/3.0*3.0==1.0 可改写为: fabs(1.0/3.0*3.0-1.0)<1e-6 注意区分“ = ”与“ = = ” int a = 0,b =1; if(a = b) printf(“a equal to b”); else printf(“a not equal to b”);

C语言程序设计
第五章 选择结构程序设计
例5.4
输入一个字母,大写转小写,然后输出字母
#include <stdio.h> void main() { char ch; scanf("%c",&ch); ch=(ch>=„A‟ && ch<=„Z‟)? (ch+32) : ch; printf(“%c“,ch); 输入:A }
复习巩固
10.以下程序的输出结果是() #include <stdio.h> main() { int x=10,y=10; printf("%d%d\n",x--,--y); } A.10 10 B.99 C.9 10 D.10 9
C语言程序设计
第五章 选择结构程序设计
条件运算符
if语句中,当表达式为“真”和“假”时,都只执行一 个赋值语句给同一个变量赋值时,可以用条件运算符处理。
判断某一年year是否为闰年
<
(6) 逻辑运算符中,运算优先级按从高到低依次为

A. &&,!,||
A. !((x||a)==b)
B. ||,&&,!
C. &&,||,!

D. !,&&,||
D. (!x)||(a==b)
(7) 表达式!x||a==b 等效于
B. !(x||y)==b
C. !(x||(a==b))
优先级: 13 结合方向:自右向左 表达式1?表达式2:表达式3 类型可以不同,表达式 x?„a‟:„b‟ //x=0, 表达式值为‘ b‟; x≠0, 表达式值为‘a‟ 值取表达式 2和表达式 3中较高的类型 max=(a>b)? a:b; //max=a>b? a:b; a>b?a:c>d?c:d a>b?a:(c> d?c:d)
输出:a
<
>
C语言程序设计
第五章 选择结构程序设计
关系运算符和关系表达式
“关系运算”即“比较运算,是对两个值进行 比较,比较的结果是得到真假两种值。
关系运算符
A>3
关系表达式 < >
C语言程序设计
第五章 选择结构程序设计
关系运算符及其优先次序
C语言提供6种关系运算符
种类:< <= == >= > 结合方向:自左向右 优先级别: !=
if (a>b) max=a; else max=b;
max=(a>b)? a:b;
表达式1 ? 表达式2 : 表达式3
非0
表达式1
=0 表达式3值
条件运算符是 C 语言中唯一的 三目运算符 < >
表达式2值
C语言程序设计
第五章 选择结构程序设计
条件运算符练习 例求 a+|b| (a==b)?‟Y‟:‟N‟ printf(“a+|b|=%d (x%2==1)?1:0 \n”,b>0?a+b:a-b); (x>=0)?x:-x (c>=„a‟ && c<=„z‟)?c-‟a‟+‟A‟:c 条件运算符几点说明: 条件运算符可嵌套 嵌套:x>0?1:(x<0?-1:0)
< <= > >=
(小于) (小于等于) 优先级6(高) (大于) (大于等于)
优先级7(低)
算术运算符 关系运算符 赋值运算符


= = (等于) ! = (不等于) < >
c>a+b a>b!=c a==b<c a=b>c
// // // //
c>(a+b) (a>b)!=c a==(b<c) a=(b>c)
8.能正确表示x和y同时为正或同时为负的逻辑表达式是( ) A.(x>=0||y>=0)&&(x<0||y<0) B.(x>=0&&y>=0)&&(x<0&&y<0) C.(x+y>0)&&(x+y<=0) D.x*y>0
6.设x和y都是int型变量,则执行表达式x=(y=2,z=4,k=8)后,x的值为( ) A.2 B.4 C.8 D.14 7.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)|| (n=c>d)后n的值为() A.1 B.2 C.3 D.0 9.若有语句 int I=5; I++; 此处表达式I++的值为() A.7 B.6 C.5 D.4
<
>
C语言程序设计
第五章 选择结构程序设计
复杂逻辑条件的表述 判别闰年的条件(int year): 能被4整除: year%4==0 能被4整除但不能被100整除: (year%4==0)&&(year%100!=0) 能被400整除: year%400==0 综合起来: 优化语句: 此表达式为真时是闰年 ((year%4==0)&&(year%100!=0))||year%400==0 (year%4==0&&year%100!=0)||year%400==0 >
非0表示“真”, 1表示 例 a=4;b=5; “真 ”, 值为0 !a 值为1 a&&b 值为1 a||b 值为1 值为1 !a||b //(5>3)&&2||(8<(4-(!0))) 值为1 4&&0||2 值为1 5>3&&2||8<4-!0 > „c‟&&„d‟
<
C语言程序设计
第五章 选择结构程序设计
x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
<
>
嵌套:x>0?1:(x<0?-1:0)
设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为 A. 4 B. 3 C. 2 D. 1
设x=1,y=2,z=3,w=4,则表达式x<y?x:z<w:x:w的结果为( ) A.4 B.3 C.2 D.1
C语言程序设计
运算符
复习巩固
8.以下程序的输出结果是() main() { int a; printf(“%d\n”,(a=3*5,a*4,a+5)); } A.65 B.20 未赋值给a C.15 D.10
复习巩固
有以下程序 mian() { Int x,y,z; x=y=1; z=x++,y++,++y; printf(“%d,%d,%d\n”,x,y,z); } 程序运行后的输出结果是() A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1
“&&”和“ ||”是双目运算符 “!”是单目运算符
<
>
C语言程序设计
第五章 选择结构程序设计
逻辑运算真值表
a 真 真 假 假 b 真 假 真 假 !a 假 假 真 真 !b 假 真 假 真 a&&b 真 假 假 假
a||b 真 真 真 假
逻辑运算符的优先次序 !(非) , &&(与),
优先次序:高(2) (11) 结合方向:从右向左 从左向右 例:优先次序
逻辑运算中的注意点:
短路特性:逻辑表达式求解时,并非所有的逻辑运算符 都被执行,只是在必须执行下一个逻辑运算符才能求 出表达式的解时,才执行该运算符。
a&&b&&c 值 a||b||c
//只在a为真时,才判别b的值; 只在a、b都为真时,才判别 c的
//只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的 若 a=1;b=2;c=3;d=4;m=1;n=1; 值 //结果m=0,n=1 则 (m=a>b)&&(n=c>d)
C语言程序设计
第五章 选择结构程序设计
关系表达式
用关系运算符将两个表达式连接起来的式子
a>b , (a+b)>(b+c) , 5==3
关系表达式的值:是逻辑值“真”或“假”,用1和0 表示 int a=3,b=2,c=1,d,f;
<
>
a>b (a>b)==c b+c<a d=a>b f=a>b>c
相关文档
最新文档