04 选择结构程序设计

合集下载

C语言程序设计第4章选择结构程序设计ppt课件

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。

C语言-第4章 选择结构程序设计

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语言程序设计(第三版)》-电子教案

第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); }

d04_选择结构程序设计24页PPT

d04_选择结构程序设计24页PPT

第四章 选择结构程序设计
退出
第四章 选择结构程序设计
退出
第四章 选择结构程序设计
退出
求任意数据的平方根
算法设计 (1) 定义实型变量x和y (2) 从键盘输入变量x的值 (3) 如果变量x的值大于等于0
①求变量x的平方根并赋值给变量y ②输出变量y的值
第四章 选择结构程序设计
退出
求任意数据的平方根prg4-1.c
if(x > 0 ) //调用{ 数学库函数sqrt求平方根,包含头文件
void m{
printf("x的平方根是:%10.2lf\n", y);
dproiunbtlfe("x从, 键y;盘输入变量x的/值/定:义"}e)变l;se量x和yprintf("x的平方根是:0\n");
d04_选择结构程序设计
41、俯仰终宇宙,不乐复何如。 42、夏日长抱饥,寒夜无被眠。 43、不戚戚于贫贱,不汲汲于富贵。 44、欲言无予和,挥杯劝孤影。 45、盛年不重来,一日难再晨。及时 当勉励 ,岁月 不待人 。
关系运算符与关系表达式 逻辑运算符与逻辑表达式 if语句 switch语句 结构嵌套程序举例
printf("x的平方根是:%10.2lf\n", y); //输出变量y的值
}
else
//处理不合法的数据
printf("输入的数据有错误\n");
}
第四章 选择结构程序设计
退出
多分支if语句
语法格式
if(表达式1)
语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
if(表达式) 语句1;

选择结构程序设计

选择结构程序设计

选择结构程序设计选择结构程序设计什么是选择结构程序设计选择结构程序设计是一种编程范例,用于根据给定的条件决定程序的执行路径。

在选择结构中,程序根据条件的真假选择执行不同的代码块。

选择结构可以帮助程序员根据不同情况采取不同的操作,增加程序的灵活性和适应性。

在选择结构程序设计中,最常见的选择结构是`if-else`语句和`switch`语句。

if-else语句`if-else`语句是选择结构中最基本和常用的语句。

它的基本语法为:markdownif (condition) {// 如果 condition 为真,执行这里的代码} else {// 如果 condition 为假,执行这里的代码}`if-else`语句的执行过程是这样的:判断条件`condition`的真假,如果为真,则执行`if`语句中的代码块;如果为假,则执行`else`语句中的代码块。

在`if`和`else`语句中,可以嵌套其他的`if-else`语句,以实现更复杂的逻辑判断。

除了`if-else`语句,还有一种类似的语句是`else if`语句。

`else if`语句用于在多个条件之间进行选择,它的语法为:markdownif (condition1) {// 如果 condition1 为真,执行这里的代码} else if (condition2) {// 如果 condition1 为假,但 condition2 为真,执行这里的代码} else {// 如果 condition1 和 condition2 都为假,执行这里的代码}switch语句`switch`语句是另一种选择结构,它用于根据给定的条件选择执行不同的代码块。

`switch`语句的基本语法为:markdownswitch (expression) {case value1:// 如果 expression 的值等于 value1,执行这里的代码break;case value2:// 如果 expression 的值等于 value2,执行这里的代码break;default:// 如果 expression 的值不等于任何一个 case 值,执行这里的代码break;}`switch`语句的执行过程是这样的:计算表达式`expression`的值,然后与每个`case`的值进行比较,如果找到匹配的值,则执行对应的`case`代码块,并通过`break`语句结束`switch`语句。

C语言程序设计第四单元选择结构程序设计

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表示不喜爱)。 输出:身高 处理:利用给定公式和身高预测方法对身高进行预测。 判断条件:性别男还是女、是否喜爱体育锻炼、是否有良好 的饮食习惯。

VB程序设计 习题及答案第4章 选择结构程序设计

VB程序设计 习题及答案第4章 选择结构程序设计

第4章选择结构程序设计4.1 写出数学式|x|<2.5×10-2对应的Visual Basic表达式。

【答案】x<2.5e-2 and x>-2.5e-24.2 逻辑运算符And、Or和Not的优先级最高的是哪一个。

【答案】Not4.3 已知 W=10 X=9 Y=8 Z=7 ,求下列表达式的结果。

(1) W>X And Y<=Z OR X>Y(2) X>Z Or W=Y AND Y<X(3) Not (W>Y And X=Z)(4) Not (Y<>X Or W*3>Z)【答案】(1) True(2) True(3) True(4) False4.4 写出下列十进制整数逻辑运算的结果:(1) X = 23 And 14(2) X = 23 Or 14(3) X = -1 And 19(4) X = -1 Or 10(5) X = Not -1【答案】(1) 6(2) 31(3) 19(4) -1(5) 04.5 已知变量X和Y的值分别为5、6,编写程序,交换变量X和Y的值。

【参考答案】程序代码设计Private Sub Form_Click()x = 5: y = 6t = x: x = y: y = tForm1.Print "x="; x, "y="; yEnd SubPrivate Sub Form_Load()Form1.AutoRedraw = TrueForm1.Print "x = 5", "y = 6"Form1.Print "单击窗体交换x,y的值"图4-1 程序运行结果End Sub程序运行结果如图4-1所示:4.6 从键盘输入一个学生的三科成绩,计算总分,并找出最高分。

【参考答案】(1)用户界面设计(2)控件属性设置(略)(3)程序代码设计Private Sub Command1_Click()g1 = Val(Text1.Text)g2 = Val(Text2.Text)g3 = Val(Text3.Text)Var = (g1 + g2 + g3) / 3g = g1If g < g2 Then g = g2If g < g3 Then g = g3Text4.Text = VarText5.Text = gEnd Sub图4-2 程序运行结果程序运行结果如图4-2所示。

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。

其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。

在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。

C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。

如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。

⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。

常见的关系运算符包括:<、<=、>、>=、==、!=等种类。

其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。

⽽前4种⾼于后2种。

例如, >优先于==。

⽽>与<优先级相同。

并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。

逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。

表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。

⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。

常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。

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

关系运算符
C语言提供6种关系运算符:
关于优先次序:
前4种关系运算符的优先级别相同,后两种也相同。 前4种高于后两种。 关系运算符的优先级 低于 算术运算符。 关系运算符的优先级 高于 赋值运算符。
2013-5-22
5
例: c>a+b 等价于 c>(a+b) ; 关系运算符的优先级低于算术运算符 a>b==c 等价于 (a>b)==c ; “>”优先级高于“==” a==b<c 等价于 a==(b<c) ; “<”优先级高于“==” a=b>c 等价于 a=(b>c) ; 关系运算符的优先级高于赋值运算符。
!A




9
2013-5-22
逻辑运算符 (Logical Operators)
运算符

名称
逻辑非
举例
!(a>b)
优先级
(算术运算符) (关系运算符) && 逻辑与 (x>y)&&(y>z)
||
逻辑或 (x>3)||(x<-3)
(赋值运算符)
2013-5-22
10
逻辑运算符优先级:
(1)!(非) &&(与) “!”为三者中最高。 (2)逻辑运算符中的 &&和|| !高于算术运算符。 例: a>b&&x>y a= =b||x= =y !a||a>b ||(或), 低于 关系运算符,
2013-5-22
20
例:输入三个数a,b,c,按照由小到大的顺序输出。 算法:(伪代码-三个数的选择法排序)
if b<a 将a,b交换 (a是a,b中的小者) if c<a 将a,c交换 (a是a,c中的小者,因此a是三者中的最小者) if c<b 将b,c交换 (在剩下的两个数b,c中选次小数,存放在b中) 输出a,b,c。 main() { float a,b,c,t; /* t-临时变量 */ scanf("%f,%f, %f ",&a,&b,&c); if(b<a){t=a;a=b;b=t;} /* 交换a,b */ if(c<a){t=a;a=c;c=t;} /* 交换a,c */ if(c<b){t=b;b=c;c=t;} /* 交换b,c */ printf("%f,%f, %f ", a,b,c); }
2013-5-22 21
4
if(…)
if语句的嵌套
if语句的嵌套:if语句的if块或else块中,包含一个if语 句。一般形式:
if(…)语句1; else 语句2;
else
if(…)语句3; else 语句4;
注意:应当注意if与else的配对关系。else总是与它上面的最近的 未配对的if配对。特别是if/else子句数目不一样时(if子句数量 只会大于或等于else子句数量)。
if(x>0) y=1; else y=-1;
2013-5-22
16
例4.2 某商品的零售价为每公斤8.5元,批发价为每公斤6.5 元,购买量在10公斤以上,便可按批发价计算,设 某顾客购买此商品weight公斤,请编程计算该顾客 需付费(pay)多少?
2013-5-22
17
main() { float weight,pay; printf("Please input the weight:"); scanf("%f",&weight); if (weight>=10) pay=weight*6.5; else pay=weight*8.5; printf("You should pay %f yuans\n",pay); }
2013-5-22
7
4.3
逻辑运算符和逻辑表达式
4.3.1 逻辑运算符及其优先顺序
C语言提供三种逻辑运算符:
(1) && 逻辑与 (2) || 逻辑或 (3) ! 逻辑非
2013-5-B 真 假 假 假
A
A||B 真 真 真 假
B
A||B A B
真 真 真 假 假 真 假 假
A
A&&B
2013-5-22
31
条件表达式的一般形式:
表达式1 ?表达式2 :表达式3
执行过程:
真 (非0)
表 式 1 达
假 (0)
整 个条 件 表 式 达 取表 式 2的 值 达
整 个条 件 表 式 取 达 表 式 3的 值 达
2013-5-22
32
说明: 条件运算符 的 优先级 高于 赋值运算符, 低于 关系运算符 和 算术运算符。
例如:max=a>b?a:b 等价于: max=((a>b)?a:b)
C程序设计
第四章 选择结构程序设计
2013-5-22
1
第四章 选择结构程序设计
4.1 概述
选择结构是三种基本结构 (顺序、选择、循环) 之一
作用 是 根据 所指定的条件 是否 满足,
决定从给定的 两组操作 选择 其中 的一种。
2013-5-22
2
当p为“真”
Y
a p
当p为“假”
N
A
B
b
P如何表示?
2013-5-22
18
main() { float weight,pay , price; printf("Please input the weight:"); scanf("%f",&weight); if (weight>=10) price =6.5; else price =8.5;
pay = weight * price; printf("You should pay %f yuans\n",pay); }
2013-5-22 25
main() { int x,y; scanf("%d", &x); if(x<0) y= -1; if(x==0) y= 0; if(x>0) y= 1; printf("%d,%d", x,y); }
2013-5-22
26
main() { int x,y; scanf("%d", &x); if(x<0) y= -1; else if(x==0) y=0; else y=1; printf("%d,%d", x,y); }
2013-5-22
6
4 .2 .2
关系表达式
用关系运算符将两个表达式(算术、关系、逻辑、赋值表 达式等)连接起来所构成的表达式,称为关系表达式。
关系表达式的值是一个逻辑值,即“真”或“假”。
C语言没有逻辑型数据,以1代表“真”,以0代表“假”。
例5-3:假如a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”, 即表达式的值为:1。 关系表达式“b+c<a”的值为“假”,即表达式的值为:0。
例:计算:5>3 && 2 || 8<4 - !0
2013-5-22
13
掌握C语言的关系运算符和逻辑运算符后,可以用一个逻 辑表达式来表示一个复杂的条件。 例如:判断某一年是否闰年。 (闰年的条件是符合下面两个条件之一:1、能被4整除, 但不能被100整除;2、能被4整除,又能被400整除)。 因为能够被400整除一定能被4整除所以第二个条件可以简 化为能够被400整除。
表达式 值为真 Y 执行语句 N
if (Number1>=Number2) Number1= Number2;
2、if(表达式) { 语句1; 语句2; 语句3; }
2013-5-22
表达式值为真 Y 执行语句1 执行语句2 执行语句3
N
15
if (Number1< Number2) { Number1= Number2; printf ("The bigNumber is %d", Number1); } 3、if(表达式) 语句1; else 语句2; 例:分段函数: 1, x>0 y= -1, 其它
判断闰年的条件可以用一个逻辑表达式表示: (year%4==0 && year%100!=0) || year%400==0 表达式为“真”,闰年条件成立,是闰年,否则非闰年。
2013-5-22 14
4.4 if语句 和 switch语句
4.4.1 if语句
1、if(表达式) 语句;
例如:if(x>y) printf(“%d”,x);
等价于 等价于 等价于
(a>b)&&(x>y) (a= =b)||(x= =y) (!a)||(a>b)
2013-5-22
11
4.3.2 逻辑表达式
逻辑表达式:用逻辑运算符(与、或、非)将 关系表达式 或 逻辑量 连接起来构成逻辑表达式。 逻辑表达式的 值 是一个 逻辑量 “真”或“假”。
C语言编译系统在给出逻辑运算结果时,以1代表“真”,以0代表“假”, 但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真” (即一个非0的数值是“真”)。
例:非0值作为逻辑值参与运算=“真”(此时与1的作用一样) 若 a=4, 则 !a (假)。 若 a=4,b=5, 则 a&&b(真),a||b(真),!a||b(真) 4&&0||2 (真) ‘c’ && ’d’ (真)
相关文档
最新文档