第4讲 选择结构程序设计
合集下载
清华大学VB经典教案第四节——选择结构程序设计

【例4-10】输入变量a的值(以角度 为单位),按下列公式计算函数b的值 并输出,程序运行结果如图4-10所示。 sin a cos a a>0 b sin a cos a a=0 sin a cos a a<0 2 【例4-11】求一元二次方程 ax bx c 0 的根,程序运行结果如图4-11所示。 b b 2 4ac x1, 2 分析:一元二次方程的求根公式为 2a 方程的根有如下几种可能: (1)若a=0且b=0,则提示“数据输入错误,请重新输入!” ; (2)若a=0且b≠0,则方程有一个实根x=-c/b; (3)若a≠0且b2-4ac=0,则方程有两个相等的实根x1=x2=b/(2*a); (4)若a≠0且b2-4ac>0,则方程有两个不相等的实根; (5)若a≠0且b2-4ac<0,则方程有两个共轭复根。
对于单行结构双分支If语句,当<条件表达式>的值为 True时,执行Then和Else之间的<语句组1>,否则,执行 Else后面的<语句组2>。在单行结构双分支If语句中,如果语
பைடு நூலகம்
句组包含多条语句,相互间用冒号“:”分隔。
对于块结构双分支If语句,当<条件表达式>的值为True时, 执行Then和Else之间的<语句组1>,否则,执行Else和End If 之间的<语句组2>。如果语句组包含多条语句,一般写成多行, 如果要写成一行,相互间用冒号“:”分隔。 注意:在块结构双分支If语句中,Else语句必须是其所在 行的第一条语句,即Else语句不能接在其他语句的后面。
4.3 单选按钮与复选框控件 单选按钮与复选框控件的区别:单选按钮控件在其组内, 任意时刻最多只能选择一项而且必须选择一项;复选框控件则 可以在0~所有项之间任意选择。 4.3.1 单选按钮 1.单选按钮的常用属性 (1)Value属性 表示单选按钮的状态。Value属性值为True,表示选中了 该单选按钮,显示一个黑点“●”,为False则没有选中。 (2)Style属性 设置单选按钮的显示样式。Style属性值有两个:0Standard(标准样式,默认设置)、1-Graphical(图形样 式)。 2.单选按钮的常用事件 单选按钮的常用事件是Click事件。
第四篇选择结构程序设计

以某表达式的值等于0作为条件时可写成对该表达式 取反的形式。
例如,语句:if(x==0) printf(“x=0”);可以简写成:
if(!x) printf(“x=0”);
4.3 if语句
说明: (3)无论是if语句中的语句还是if-else语句中的语
句1、语句2,都可以是任何语句。当它们中的某 一个是有多条语句组成时,必须写成复合语句的 形式。例如,语句:
优先级: 高 算术运算符
< ,<=, >, >=
低
==, !=
赋值运算符
4.2 关系运算与逻辑运算
2.关系表达式
一般形式为:〈表达式〉〈关系运算符〉〈表达式〉
合法的关系表达式:
a>b
a+b<c-d
(a=3)<=(b=5)
‘a’>=‘b’
(a>b)==(b>c)
关系表达式的值:
——逻辑值
“真” “1”表示
else
printf(“n=%d NO\n”,n); }
➢多分支if语句
4.3 if语句
当if-else语句中的语句2是另一条if语句时,就构成了多分支if语句。
语句的一般形式为: 表 达 式
1
if(表达式1) 语句1 真
假 执行过程:
假 表达式2
else if(表达式2) 语句2
真
假
else if(表达式3) 语句3
用N-S流程图表示例4.1的算法 输入weight
成立
weight≤50
不成立
pay=weight*0.35
pay=50*0.35+(weight50)*0.5
C语言程序设计第4章选择结构程序设计ppt课件

8
printf("grade is E" );
9 else if (score >=60 && score<70 )
10
printf( "grade is D");
11 else if (score >=70 && score<80 )
12
printf( "grade is C");
13 else if (score>=80 && score<90 )
printf("a,b="); scanf("%d,%d",&a,&b); if (a>b) max=a; else max=b; printf("max=%d\n",max); }
结束
8
3.if-else if-else语句
(1)语句格式:
if (表达式1) 语句1
else if (表达式2) 语句2
不再判断,顺序执 行下面的语句
21
4.2 switch语句
switch (表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n [default:语句n+1] }
注意:
1. <表达式>可以是整型或字 符型表达式; 2. case后面必须是常量表达 式,不能包含变量; 3. 每个常量表达式的值应互 不相同; 4. case语句先后顺序随意; 5.若从上至下没有找到与表 达式的值相匹配的case,含有 default子句时,执行语句n+1。
第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章 选择结构程序设计-2018

(3) x、y和z中有两个为负数。 设x、y、z均为int型变量,则对应表达式为:
(x<0&&y<0&&z>=0)|| (x>=0&&y<0&&z<0)|| (x<0&&y>=0&&z<0)
(2) x和y中至少有一个小于z。
设x、y、z均为int型变量,则对应表达式为: (x<z)||(y<z)
注意
– 可等价于一条语句 – 可以嵌套使用
• 格式
{ <语句序列> { <语句序列> } <语句序列>
}
4.3.2 复合语句
• 【例4-2】迪士尼门票规定65周岁及以上的老 年人,平日票价为280元,高峰日票价为375元。
– 语句1为内嵌语句,只允许是一条语句,可以是简单的语句、复合 语句或者另一个if语句等
• 执行过程
– 先求解表达式
– 如果表达式的值为“真”,则执行语句1
– 否则,如果表达式的值为“假”,则什么都不做
4.3.2 复合语句
• 复合语句
– 用一对大括号将一组语句序列括起来,通常可以出现在允 许单条语句出现的地方
第4章 选择结构程序设计
目录
4.1 门票价格问题 4.2 条件的表示 4.3 单分支结构 4.4 双分支结构 4.5 多分支结构 4.6 综合案例 练习 4
问题
– 如果今天下雨,我就不去植物园 – 鱼与熊掌不可兼得 – 同样一件衣服,京东、天猫、唯品会、
官网、实体店都有售,价格、送货时间、 品质保障、优惠方式等各不同,到底选 择买哪一家的呢 – 复杂决策问题
(x<0&&y<0&&z>=0)|| (x>=0&&y<0&&z<0)|| (x<0&&y>=0&&z<0)
(2) x和y中至少有一个小于z。
设x、y、z均为int型变量,则对应表达式为: (x<z)||(y<z)
注意
– 可等价于一条语句 – 可以嵌套使用
• 格式
{ <语句序列> { <语句序列> } <语句序列>
}
4.3.2 复合语句
• 【例4-2】迪士尼门票规定65周岁及以上的老 年人,平日票价为280元,高峰日票价为375元。
– 语句1为内嵌语句,只允许是一条语句,可以是简单的语句、复合 语句或者另一个if语句等
• 执行过程
– 先求解表达式
– 如果表达式的值为“真”,则执行语句1
– 否则,如果表达式的值为“假”,则什么都不做
4.3.2 复合语句
• 复合语句
– 用一对大括号将一组语句序列括起来,通常可以出现在允 许单条语句出现的地方
第4章 选择结构程序设计
目录
4.1 门票价格问题 4.2 条件的表示 4.3 单分支结构 4.4 双分支结构 4.5 多分支结构 4.6 综合案例 练习 4
问题
– 如果今天下雨,我就不去植物园 – 鱼与熊掌不可兼得 – 同样一件衣服,京东、天猫、唯品会、
官网、实体店都有售,价格、送货时间、 品质保障、优惠方式等各不同,到底选 择买哪一家的呢 – 复杂决策问题
C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版

C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
C★ A ● ●★ B
#include <stdio.h> int main() { float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) 如果a>b
{ t=a;
a=b; 将a和b的值互换
b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{ t=a; a=b;
选择结构,用if语句实现的
a && b 真 假 假 假
a || b 真 真 真 假
4.4.1 逻辑运算符及其优先次序
➢逻辑运算符的优先次序
! → && → ||
(!为三者中最高)
➢与其他运算符的优先次序
! 算术运算符 关系运算符
&& 和 || 赋值运算符
(高) (低)
4.4.2 逻辑表达式
➢ 逻辑表达式的值应该是逻辑量“真”或“假” ➢ 编译系统在表示逻辑运算结果时
4.3.1关系运算符及其优先次序
c>a+b a>b==c a==b<c a=b>c
等效于 c>(a+b) 等效于 (a>b)==c 等效于 a==(b<c) 等效于 a=(b>c)
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语言程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
信息科学与技术学院
C语言程序设计
引例—通过判断输入值避免程序的错误执行
#include <stdio.h> 编程提示:数据有效性判 main() 断是程序设计常用的方法 { char lowchar,upchar; printf(“Please input a small character:”); lowchar=getchar(); 通过在此处对得到的输 入字符进行判断,以避 upchar=lowchar-32; 免错误的操作 putchar(upchar); } 4
24
}
信息科学与技术学院
C语言程序设计
例5:计算分段函数值
2x y 10 3 x 1 sin x
构造表达式如下:
x2 2 x 20 x 20
K=1*(x<2)+2*(x>=2 && x<=20)+3*(x>20)
25
信息科学与技术学院
#include<stdio.h> #include<math.h> void main() { float x,y; int k; scanf("%f",&x); k=1*(x<2)+2*(x>=2 && x<=20)+3*(x>20); switch(k) { case 1:y=2*x;break; case 2:y=10-3*x;break; case 3:y=1-sin(x); } printf("y=%f\n",y); }
(对上一讲程序 进行优化) 分析左边程序 中存在的问题
2
信息科学与技术学院
C语言程序设计
引例—通过输入提示避免不合理输入
#include <stdio.h> main() { char lowchar,upchar; printf(“Please input a small character:”); lowchar=getchar(); upchar=lowchar-32; 有输入的地方增 putchar(upchar); 加提示信息。 }
结束
17
信息科学与技术学院
C语言程序设计
switch多分支选择结构(1)
• 尽管用if…else if结构可以实现多分支,但当分支较 多时,程序结构较复杂。 注意:每个case关键字后
switch (表达式) { case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; … case 常量表达式m:语句m; break; default:语句n; break; }
20
C语言程序设计
信息科学与技术学院
C语言程序设计
switch多分支选择结构(4)
• switch语句使用
返回主菜单
结论:需要注意 default分支的位置。
–分析下面switch语句
若grade的值为‟B‟,‟C‟,‟D‟ switch (grade) 时,输出结果是什么? { case „A‟:printf(“Very good\n”); case „B‟: printf(“Good\n”); default: printf(“Very bad\n”); case „C‟: printf(“Bad\n”); }
信息科学与技术学院
结论:为终止switch语句的执行,需要将break语 switch多分支选择结构(3) 句与switch语句一起使用。如果不使用break语句, 一旦进入某个case后面的语句,就由此开始顺序 • switch语句使用 执行后面各个case语句。 –分析下面switch语句 若grade的值为‟B‟, switch (grade) 输出结果是什么? { case „A‟:printf(“Very good\n”); case „B‟: printf(“Good\n”); case „C‟: printf(“Bad\n”); default: printf(“Very bad\n”); }
7
信息科学与技术学院
C语言程序设计
逻辑表达式和逻辑运算(1)
1.2 逻辑运算—逻辑运算符与逻辑表达式
&&(逻辑与)、||(逻辑或)、!(逻辑非) 逻辑表达式的一般形式: P1 逻辑运算符 P2 课堂练习: 求下面逻辑表达式的值: 2>1 && 4 && 7<3&P2
信息科学与技术学院
if选择结构(3)
信息科学与技术学院
ln( x 2 #include <stdio.h> 1 x0 3 if选择结构(4) #includey<math.h> x0 sin x x void main() 例2:输入x,求对应的函数值。 { { float x,y; 开始 float x,y; scanf("%f",&x); 输入x scanf("%f",&x); if(x<=0) y=sin(x*x*x)+fabs(x); 否 是 y=log(sqrt(x*x+1)); x<=0 else if(x<=0) 公式1 公式2 y=sin(x*x*x)+fabs(x); y=log(sqrt(x*x+1)); 输出y值 printf("x=%f,y=%f\n",x,y); printf("x=%f,y=%f\n",x,y); } 结束 16 }
C语言程序设计
逻辑表达式和逻辑运算(2)
1.2a&&b:当a为0时,不管b为何值,结果为0 逻辑运算—逻辑运算的重要规则
利用这个性质,在计算连续的逻辑与运算 时,若有运算分量的值为0,则不再计算 后继的逻辑与运算分量,并以0作为逻辑 与算式的结果。 课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a && b && (c=a+10,d=100) 逻辑表达式执行后,a,b,c,d的值各为多少?
9
信息科学与技术学院
C语言程序设计
逻辑表达式和逻辑运算(3)
1.2 逻辑运算—逻辑运算的重要规则(续)
a || b:当a为1时,不管b为何值,结果为1 利用这个性质,在计算连续的逻辑或运算 时,若有运算分量的值为1,则不再计算后 继的逻辑或运算分量,并以1作为逻辑或算
式的结果。 课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a || b || (c=a+10,d=100) 10 逻辑表达式执行后,a,b,c,d的值各为多少? 信息科学与技术学院
23
信息科学与技术学院
C语言程序设计
#include <stdio.h> 4 选择结构程序举例(3) void main() { int num,ge,shi,bai;
例5(续)
printf(“输入三位整数 :”); scanf(“%d”,&num); ge=num%10; shi=(num/10)%10; bai=num/100; If (num=ge*ge*ge+shi*shi*shi+bai*bai*bai) printf(“%d是水仙花数\n”,num); else printf(“%d不是水仙花数\n”,num);
返回主菜单
表达式1?表达式2:表达式3
条件运算的运算规则是先求表达式1的值,如果表
达式1的值非0(为真),则求表达式2,并以表达式2
的值为条件运算的结果(不再计算表达式3)。如果
表达式1的值为0(为假),则求表达式3,并以表达
式3的值做为条件运算的结果
12
信息科学与技术学院
C语言程序设计
if选择结构(1) if (表达式1) 语句1 if (表达式) else if (表达式2) if 语句 (表达式) 语句2 语句1 非0 … else 表达式 else if (表达式m) 语句2 语句 语句m else 语句n
22
信息科学与技术学院
C语言程序设计
选择结构程序举例(2)
例4:输入一个整数,判断它是否为水仙花数。
所谓水仙花数,是指这样的一些3位整数: 各位数字的立方和等于该数本身。 例如153,1+125+27=153。 输入 处理 输出
3位整数
①分别求3位整数的百位、十位、各位数值 ②判断是否满足水仙花数的条件 输入判断结果
非0 表达式 语句1
单分支
if选择 结构
双分支
0
0
语句2
多分支
13
信息科学与技术学院
C语言程序设计
if选择结构(2) • 分析下面的问题使用哪种选择结构 ①输入两个整数a和b,按从大到小的顺序输出。
②输入x,求对应的函数值
ln( x 2 1 y sin x 3 x
x0 x0
a<b+c
i!=j>=k
1(非0)表示真 0表示假
6
信息科学与技术学院
C语言程序设计
关系表达式和关系运算(2)
1.1 关系运算—关系表达式 • 关系表达式的一般形式
表达式1
关系运算符
表达式2
关系表达式的结果为1(真)或0(假)。 课堂练习: 课堂练习: 设有i=1,j=2,k=3,则下面表达式的值为多少? 变量x的取值范围为0≤x ≤20,在C语言中如何表示 i>j 此关系式? 0<=x<=20 正确吗? i==k>j
信息科学与技术学院
C语言程序设计
本讲主要内容
信息科学与技术学院
C语言程序设计
引例—通过判断输入值避免程序的错误执行
#include <stdio.h> 编程提示:数据有效性判 main() 断是程序设计常用的方法 { char lowchar,upchar; printf(“Please input a small character:”); lowchar=getchar(); 通过在此处对得到的输 入字符进行判断,以避 upchar=lowchar-32; 免错误的操作 putchar(upchar); } 4
24
}
信息科学与技术学院
C语言程序设计
例5:计算分段函数值
2x y 10 3 x 1 sin x
构造表达式如下:
x2 2 x 20 x 20
K=1*(x<2)+2*(x>=2 && x<=20)+3*(x>20)
25
信息科学与技术学院
#include<stdio.h> #include<math.h> void main() { float x,y; int k; scanf("%f",&x); k=1*(x<2)+2*(x>=2 && x<=20)+3*(x>20); switch(k) { case 1:y=2*x;break; case 2:y=10-3*x;break; case 3:y=1-sin(x); } printf("y=%f\n",y); }
(对上一讲程序 进行优化) 分析左边程序 中存在的问题
2
信息科学与技术学院
C语言程序设计
引例—通过输入提示避免不合理输入
#include <stdio.h> main() { char lowchar,upchar; printf(“Please input a small character:”); lowchar=getchar(); upchar=lowchar-32; 有输入的地方增 putchar(upchar); 加提示信息。 }
结束
17
信息科学与技术学院
C语言程序设计
switch多分支选择结构(1)
• 尽管用if…else if结构可以实现多分支,但当分支较 多时,程序结构较复杂。 注意:每个case关键字后
switch (表达式) { case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; … case 常量表达式m:语句m; break; default:语句n; break; }
20
C语言程序设计
信息科学与技术学院
C语言程序设计
switch多分支选择结构(4)
• switch语句使用
返回主菜单
结论:需要注意 default分支的位置。
–分析下面switch语句
若grade的值为‟B‟,‟C‟,‟D‟ switch (grade) 时,输出结果是什么? { case „A‟:printf(“Very good\n”); case „B‟: printf(“Good\n”); default: printf(“Very bad\n”); case „C‟: printf(“Bad\n”); }
信息科学与技术学院
结论:为终止switch语句的执行,需要将break语 switch多分支选择结构(3) 句与switch语句一起使用。如果不使用break语句, 一旦进入某个case后面的语句,就由此开始顺序 • switch语句使用 执行后面各个case语句。 –分析下面switch语句 若grade的值为‟B‟, switch (grade) 输出结果是什么? { case „A‟:printf(“Very good\n”); case „B‟: printf(“Good\n”); case „C‟: printf(“Bad\n”); default: printf(“Very bad\n”); }
7
信息科学与技术学院
C语言程序设计
逻辑表达式和逻辑运算(1)
1.2 逻辑运算—逻辑运算符与逻辑表达式
&&(逻辑与)、||(逻辑或)、!(逻辑非) 逻辑表达式的一般形式: P1 逻辑运算符 P2 课堂练习: 求下面逻辑表达式的值: 2>1 && 4 && 7<3&P2
信息科学与技术学院
if选择结构(3)
信息科学与技术学院
ln( x 2 #include <stdio.h> 1 x0 3 if选择结构(4) #includey<math.h> x0 sin x x void main() 例2:输入x,求对应的函数值。 { { float x,y; 开始 float x,y; scanf("%f",&x); 输入x scanf("%f",&x); if(x<=0) y=sin(x*x*x)+fabs(x); 否 是 y=log(sqrt(x*x+1)); x<=0 else if(x<=0) 公式1 公式2 y=sin(x*x*x)+fabs(x); y=log(sqrt(x*x+1)); 输出y值 printf("x=%f,y=%f\n",x,y); printf("x=%f,y=%f\n",x,y); } 结束 16 }
C语言程序设计
逻辑表达式和逻辑运算(2)
1.2a&&b:当a为0时,不管b为何值,结果为0 逻辑运算—逻辑运算的重要规则
利用这个性质,在计算连续的逻辑与运算 时,若有运算分量的值为0,则不再计算 后继的逻辑与运算分量,并以0作为逻辑 与算式的结果。 课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a && b && (c=a+10,d=100) 逻辑表达式执行后,a,b,c,d的值各为多少?
9
信息科学与技术学院
C语言程序设计
逻辑表达式和逻辑运算(3)
1.2 逻辑运算—逻辑运算的重要规则(续)
a || b:当a为1时,不管b为何值,结果为1 利用这个性质,在计算连续的逻辑或运算 时,若有运算分量的值为1,则不再计算后 继的逻辑或运算分量,并以1作为逻辑或算
式的结果。 课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a || b || (c=a+10,d=100) 10 逻辑表达式执行后,a,b,c,d的值各为多少? 信息科学与技术学院
23
信息科学与技术学院
C语言程序设计
#include <stdio.h> 4 选择结构程序举例(3) void main() { int num,ge,shi,bai;
例5(续)
printf(“输入三位整数 :”); scanf(“%d”,&num); ge=num%10; shi=(num/10)%10; bai=num/100; If (num=ge*ge*ge+shi*shi*shi+bai*bai*bai) printf(“%d是水仙花数\n”,num); else printf(“%d不是水仙花数\n”,num);
返回主菜单
表达式1?表达式2:表达式3
条件运算的运算规则是先求表达式1的值,如果表
达式1的值非0(为真),则求表达式2,并以表达式2
的值为条件运算的结果(不再计算表达式3)。如果
表达式1的值为0(为假),则求表达式3,并以表达
式3的值做为条件运算的结果
12
信息科学与技术学院
C语言程序设计
if选择结构(1) if (表达式1) 语句1 if (表达式) else if (表达式2) if 语句 (表达式) 语句2 语句1 非0 … else 表达式 else if (表达式m) 语句2 语句 语句m else 语句n
22
信息科学与技术学院
C语言程序设计
选择结构程序举例(2)
例4:输入一个整数,判断它是否为水仙花数。
所谓水仙花数,是指这样的一些3位整数: 各位数字的立方和等于该数本身。 例如153,1+125+27=153。 输入 处理 输出
3位整数
①分别求3位整数的百位、十位、各位数值 ②判断是否满足水仙花数的条件 输入判断结果
非0 表达式 语句1
单分支
if选择 结构
双分支
0
0
语句2
多分支
13
信息科学与技术学院
C语言程序设计
if选择结构(2) • 分析下面的问题使用哪种选择结构 ①输入两个整数a和b,按从大到小的顺序输出。
②输入x,求对应的函数值
ln( x 2 1 y sin x 3 x
x0 x0
a<b+c
i!=j>=k
1(非0)表示真 0表示假
6
信息科学与技术学院
C语言程序设计
关系表达式和关系运算(2)
1.1 关系运算—关系表达式 • 关系表达式的一般形式
表达式1
关系运算符
表达式2
关系表达式的结果为1(真)或0(假)。 课堂练习: 课堂练习: 设有i=1,j=2,k=3,则下面表达式的值为多少? 变量x的取值范围为0≤x ≤20,在C语言中如何表示 i>j 此关系式? 0<=x<=20 正确吗? i==k>j
信息科学与技术学院
C语言程序设计
本讲主要内容