大学C语言 第4章 选择结构

合集下载

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章 选择结构

35
35
说明: 1、条件运算符优先级高于赋值运算符 ,低于关系运算 符和算术运算符。 2、条件运算符的结合方向为“自右至左”。 3、“表达式2”和“表达式3”不仅可以是数值表达式, 还可以是赋值表达式或函数表达式。 4、条件表达式中,表达式1的类型可以与表达式2和表 达式3的类型不同。
36
if语句的3种形式(3)
if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 …… else if(表达式m)语句m else 语句n
37
if语句的3种形式(3)
if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 …… else if(表达式m)语句m else 语句n
45
45
选择结构程序设计---主要内容
1、关系运算符和关系表达式 2、逻辑运算符和逻辑表达式 3、用if语句实现选择结构 4、利用switch语句实现多分支选择结构 5、程序举例

4、利用switch语句实现多分支选择结构 switch 语句是实现多分支选择结构的一个语句 格式 switch (算术表达式) { case 常量表达式1:语句1; case 常量表达式2:语句2; „ case 常量表达式n:语句n; default :语句n + 1; }
switch语句(多分支语句)
27
if 语句
if if(表达式)语句; if(表达式)语句1; else 语句2;
if–else
else–if
if(表达式1)语句1; else if(表达式2)语句2; … else if(表达式m)语句m; else 语句 n;
28
3、用if语句实现选择结构

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

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

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语言程序设计第4章 选择结构程序设计-2018

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
问题
– 如果今天下雨,我就不去植物园 – 鱼与熊掌不可兼得 – 同样一件衣服,京东、天猫、唯品会、
官网、实体店都有售,价格、送货时间、 品质保障、优惠方式等各不同,到底选 择买哪一家的呢 – 复杂决策问题

第4章 选择结构

第4章 选择结构

第4章选择结构1、以下选项中,当x为大于1的奇数时,值为0的表达式是A) x%2==0B) x/2C) x%2!=0D) x%2==1参考答案:A【解析】算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。2、当变量c的值不为2、4、6时,值为"真"的表达式是A) (c>=2 && c<=6)&&(c%2!=1)B) (c==2)||(c==4)||(c==6)C) (c>=2 && c<=6)&& !(c%2)D) (c>=2 && c<=6) || (c!=3) || (c!=5)参考答案:D【解析】逻辑或表达式中有一个值不为0,结果即为真,逻辑与表达式中只有两个运算对象均非零,结果才为真。所以只有选项D满足要求。3、以下叙述中正确的是A) 在C语言中,逻辑真值和假值分别对应1和0B) 关系运算符两边的运算对象可以是C语言中任意合法的表达式C) 对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误D) 分支结构是根据算术表达式的结果来判断流程走向的参考答案:B【解析】A选项中,在C语言中,逻辑真值对应非0; C选项中,表达式:x==y 是合法的;D选项中,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值。

因此B选项正确。

4、下列关系表达式中,结果为"假"的是A) 3 <= 4B) (3 < 4) == 1C) (3 + 4) > 6D) (3 != 4) > 2参考答案:D【解析】B选项中,关系表达式(3<4)==1即1==1,结果为真; C选项中,(3+4)>6即7>6,结果为真;A选项中,3<=4结果为真。

c语言程序设计教程第4章选择结构

c语言程序设计教程第4章选择结构
第四章 选择结构程序设计(4节) 选择结构程序设计(4
选择结构由选择语句(也称分 选择结构由选择语句( 支语句)组成, 支语句)组成,选择语句控制程序 执行流程的方式是:根据给定条件, 执行流程的方式是:根据给定条件, 选择执行两个或两个以上分支程序 段中的某一个。选择语句有(if) 段中的某一个。选择语句有(if) 条件语句和开关语句(switch)。 条件语句和开关语句(switch)。 4.1 4.2 4.3 条件语句 中断语句 开关语句
4.3
开关语句
开关语句是switch 语句 开关语句是 switch语句 , 也称多选择语 switch 语句, 句 , 它是可以根据给定的条件, 从多个分支 它是可以根据给定的条件 , 语句序列中选择执行一个分支语句。 语句序列中选择执行一个分支语句。
已知成绩mark 要求显示对应五级制的评定, mark, 【 例 3.3】 已知成绩 mark , 要求显示对应五级制的评定 , 评 定条件: 定条件:
#include “iostream.h” void main( ) 算法: 算法: 1、输入mark 输入mark { float mark; 2、若mark≥90 则输出 mark≥ cin>>mark; “优” cout<<“mark”<<mark; 否则, mark≥80, 否则,若mark≥80, 则输出“ 则输出“良” if (mark >= 90) 否则, 否则,若 cout<< "优"; "优 mark≥70,则输出“ mark≥70,则输出“中” else if ( mark>=80) 若 cout<< "良"; "良 mark≥60,则输出“及格” mark≥60,则输出“及格” 否则, 否则, else if ( mark>=70) 输出“不有格” 输出“不有格” cout<< "中"; "中 else if (mark>=60) cout<< "及格"; "及格 及格"; else cout<< "不及格"; "不及格 不及格"; }

C语言第4章选择结构

C语言第4章选择结构

第四章选择结构选择:1.以下关于运算符优先级的描述中,正确的是()。

A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算B)&&(逻辑与)>算术运算>关系运算>赋值运算C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)2.逻辑运算符的运算对象的数据类型()。

A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型D)任何类型的数据3.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)4.判断字符型变量ch为数字的表达式是( ) 。

A) 0<=ch<=9 B)(ch>=0)&&(ch<=9)C)'0'<=ch<='9' D)(ch>='0')&&(ch<='9')5.若有以下函数关系x<0 → y=2xx>0 → y=xx=0 → y=x+1下面程序段能正确表示以上关系的是()。

c语言第4章 选择结构程序设计习题答案

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计习题(P111)4。

2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。

4.3 写出下面各逻辑表达式的值。

设a=3,b=4,c=5。

(1)a+b〉c&&b==c (2)a||b+c&&b-c (3)!(a〉b)&&!c||1(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c—1&&b+c/2解:该题在求解过程中注意:一、优先级。

逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;二、逻辑表达式的求值规则。

(P94)所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)14。

4有3个整数a、b、c,由键盘输入,输出其中最大的数。

分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。

该题不用函数调用实现,但方法类似。

法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。

法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。

其中都要用到单分支或双分支选择结构语句。

参考程序如下:法一:main(){ int a,b,c,max;/*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf(”\ninput the value of a,b,c:"); /*提示输入*/scanf(”%d%d%d",&a,&b,&c);/*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/if(a>b) max=a;else max=b;if(max<c) max=c;printf("\nmax=%d\n",max);}法二:main(){int a,b,c,max;printf(”\ninput the value of a,b,c:”);scanf(”%d%d%d",&a,&b,&c);max=a;if(max〈b) max=b;if(max<c) max=c;printf("\nmax=%d\n”,max);}4.6有一个函数:写一段程序,输入x,输出y的值。

第4章(405)

第4章(405)

/*语句3*/
若x为6则条件1不满足,执行语句3,输出“no”;若x为
5则条件1满足,条件2不满足,执行语句2,输出“no”;若x
为9则条件1、条件2均满足,执行语句1,输出“yes”。
22
2. 在else语句中嵌套分支结构
1) 语法形式
if(表达式1) 语句1
else if(表达式2) 语句2
else 语句3
为了控制计算机各操作的执行次序,程序设计语言中引 入了控制语句。选择结构是结构化程序设计的三种结构之一。 C语言提供了二分支和多分支选择结构,本章将进行详细介 绍。
2
4.1 语句与复合语句
1. 语句
C语言规定,在表达式的后面加上一个分号(;)即成为
语句。例如:
x=1; scanf("%d",&y); y++;
赋值语句 输入语句
自增运算语句
3
在C语言中除了结构控制行之外,其他的内容均由语句
组成,即所有的语句均由一个分号(;)结束。有时为了程序
的需要,我们会遇到只有一个分号而没有表达式的情形,这
在C语言中也是合法的,称为空语句,例如:
main()
{
;
/*空语句*/
}
在第1章的C语言特点中提到,C语言书写灵活,允许一
13
2) 执行过程 首先计算表达式的值,然后根据其真假来决定程序的走 向。若表达式为真(值为非零)则执行语句1,若为假(值为零) 则执行语句2。退出分支结构后程序继续执行if-else结构后 面的语句,如图4.2所示。
14
图4.2 if-else结构流程图
15
3) 举例
if(a>b) b++; else a++;

C语言知识点:第4章 选择结构

C语言知识点:第4章 选择结构

7. 分支结构程序设计
作用:根据条件控制程序流向。 条件的组成:各种类型的常量、变量、表达式(常用:关系/逻辑表达式)
8. 单分支 if 语句
1、如果令狐冲的 C 语言考试成绩大于 90 分,师父就奖励他一本武功秘笈 使用 if 条件结构可以解决 if 条件结构是根据条件判断之后再做处理 基本的 if 条件结构 if ( 条件 ) { //语句 ~2~
C 语言程序设计知识点
主讲教师:杨剑
第 4 章:选择结构
1. 本章目标
熟练使用多重 if 结构 熟练使用嵌套 if 结构 熟练使用 switch 结构 理解条件运算符的用法
2. 结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程序设计的基本单元 只有一个入口; 只有一个出口; 采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设计
C 语言程序设计知识点
主讲教师:杨剑
case 3: printf ("出任峨嵋掌门"); default: printf ("被逐出师门"); } 如果需要每个 case 执行完后跳出, 在每个 case 后不要忘记写 break; int mingCi = 1; switch (mingCi){ case 1: printf ("出任武林盟主"); case 2: printf ("出任武当掌门"); case 2: printf ("出任峨嵋掌门"); default: printf ("被逐出师门"); } case 后面的常量必须各不相同
C 语言程序设计知识点
主讲教师:杨剑
D. y=sqrt(x>=0?x:-x); 答案:B

c语言 第四章 选择结构课件

c语言 第四章 选择结构课件

if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)

C语言第四章选择结构ppt课件

C语言第四章选择结构ppt课件
/* 定义实型变量 x , y */
/* 求 x 的绝对值并赋给 y */
/* 输入 x 的值 */
/* 输出 x 的绝对值 */
/* 编译预处理:包含头文件 */
二、if ... else 语句
对这一句话“如果x>=0则y=x,如果x<0则y=-x”,可以写出以下语句:
表达式1 ? 表达式2 :表达式3
表达式1为真,结果为表达式2的值 表达式为假,结果为表达式3的结果; 运算符 “ ?:”的优先级只在逗号和赋值运算 符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。
例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以下语句后表达式的值为多少? n的值为多少? (a < b ) ? ( c + d ) : ( + + n )
if ( 表达式1 ) if ( 表达式2 ) 语句1; else 语句2;else if ( 表达式3 ) 语句3; else 语句4;
实现if ~ else 正确配对方法:加{ }
五、条件运算符
能否把两条语句合成一句,更好地体现这种逻辑关系呢?这就是 if ...... else 语句的功能。
简单的if 语句只能表达“如果 ,那么 ”的含义,而if ...... else 语句却能表达“如果 那么 否则 ”的含义。
If ( x>=0) y=x;if (x<0) y=-x;
a>b?a:c>d?c:d
a>b?a:(c>d?c:d)
表达式值为15,n=2
六、 switch 语句
switch 语句是多分支的选择语句又称开关语句。

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

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

《 C语言程序设计》
流程图
真 (非0) 表达式
假(0)
语句1
语句2
《 C语言程序设计》
例4.1
【例4.1】试用if…else语句编写程序,判断学生成绩 是否合格。
判断方法: ①如果成绩大于等于60,输出及格 ②否则输出成绩不及格
《 C语言程序设计》
4.2 if语句 if语句
C语言中if条件语句有三种结构形式,分别是: if结构(单分支结构) if if-else if-else结构(双分支结构) if-else-if结构 (多分支结构) if-else-if
《 C语言程序设计》
例4.5 设计一个应用程序,判断某一年是否为闰年
判断方法: ①如果该年能被4整除而不能被100整除,则为闰年; ②或者能被400整除也是闰年。 如: 1996年、2000年是闰年 1996年 2000年是闰年
1998年 1900年不是闰年 1998年、1900年不是闰年
逻辑表达式为: year%4==0 && year%100!=0 || year%400==0
4.4 条件运算符和条件表达式
条件运算符: 1、条件运算符:?:是C语言中惟一的一个三 目运算符。 一般形式为: 2、一般形式为: 表达式1 ? 表达式2 : 表达式3 3、操作过程:如果表达式1成立,则表达式2的 操作过程: 值就是此条件表达式的值;否则,表达式3 的值是此条件表达式的值。
《 C语言程序设计》
《 C语言程序设计》
4.2.2 if-else结构 if-else结构
1、格式: if(条件表达式 语句1 条件表达式) if(条件表达式) 语句1; 真 (非0) else 语句2; 语句 ; 语句1 2、执行过程:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注:1.常量末尾的类型字母不分大小写 2.自动辨认后缀L的类型 3.最多有1个L,L与F不能同时有
提示:程序输出原始数据,利于调试
#include <stdio.h> int main() {double a,b,c,area;
printf(“三角形边a=”);scanf(“%lf”,&a);
printf(“三角形边b=”);scanf(“%lf”,&b); printf(“三角形边c=”);scanf(“%lf”,&c);
三种逻辑运算符:
&& 与 , || 或 , ! 非
&& 和|| 是双目运算符,! 是一目(元)运算符 运算优先顺序是:非!、与&&、或||
什么叫“逻辑表达式”
使用逻辑运算符的式子
逻辑运算的例子
判断年龄在13至17岁之内?P92末 age>=13 && age<=17 判断年龄小于12或大于65?P93第二行 age<12 || age>65 判断x值范围:0<x<10 x>0 && x<10 (注:不可连比,写成 0<x<10 错!)
4.6 选择结构的嵌套
若x < 0, 则y = -1 否则
若 x = 0, 则y = 0
否则 y=1
输出x和y
scanf("%d",&x); if(x<0) y=-1; 提倡内嵌if放在else中 else if(x==0) y=0; 解题思路:方法2 else y=1; (2) 用一个嵌套的if语句处理: printf("x=%d,y=%d\n",x,y); 输入x
else max=b;
写成条件表达式:max=(a>b)?a:b
条件表达式
条件运算符 ?:是三目运算符 条件表达式的一般形式为 表达式1?表达式2: 表达式3
4.5 条件运算符和条件表达式
条件运算符优先于赋值运算符(先运算后赋值) 条件运算符的结合方向为“自右至左” 以下为合法的使用方法:
例4.3 输入3个数a,b,c,要求按 由小到大的顺序输出。P88
解题思路:可以先用伪代码写出算法:
设由小到大为a、b、c。
if a>b,a和b对换 (先搞定a为最小, 须使:a<b,a<c) 编程规律: 总是判断不符要求情况, 若有则处理之。
if a>c,a和c对换
if b>c,b和c对换 顺序输出a,b,c
4.2.2 if语句的一般形式
关系表达式 逻辑表达式 if (表达式) 语句1 数值表达式 [ else 语句2 ]
方括号内的部分,可有可无。 若有,可为: 简单的语句 复合语句 另一个if语句等
P89
最常用的三种if语句形式:P89 1. if (表达式) 语句1 (没有else子句) 2. if (表达式) 语句1 else 语句2 (有一个else子句) 3. if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 ┆ else if(表达式m) 语句m else 语句m+1 (在else部分又嵌套了多层的if语句)
复习-数据类型
类型名 有符号基本整型 无符号基本整型 有符号长整型 无符号长整型 单精度浮点型 双精度 长双精度 类型符 Int, (short int) unsigned int(unsigned short) long Unsigned long float double long double 常量后缀 -12,12(默认) 123U -123L,123L 123UL 12.3f 12.3(默认) 12.3L
4.4.1 逻辑运算符及其优先次序
逻辑运算真值表
逻辑表达式及其值
a 真 真 假 假
b 真 假 真 假
!a 假 假 真 真
!b 假 真 假 真
a && b 真 假 假 假
a || b 真 真 真 假
与-有假得假 ;或-有真得真 运算对象
4.4.1 逻辑运算符及其优先次序 P93
逻辑运算符的优先次序
4.6 选择结构的嵌套
输入x 若 x < 0, 则y =-1 若 x = 0, 则y = 0
若 x > 0, 则y = 1
输出x和y
scanf("%d",&x); if(x<0) y=-1; else if(x==0) y=0; 解题思路:方法2 else y=1; (2) 用一个嵌套的if语句处理: printf("x=%d,y=%d\n",x,y); 输入x
……பைடு நூலகம்.
printf(“三角形面积是%lf\n”,area); printf(“输入的数据是a=%lf,b=%lf,c=%lf”,a,b,c);
}
第4章 选择结构程序设计
4.1 选择结构和条件判断
4.2 用if语句实现选择结构 4.3关系运算符和关系表达式 4.4 逻辑运算符和逻辑表达式 4.5 条件运算符和条件表达式
判断出这是一个多分支选择问题 根据百分制分数将学生成绩分为4个等级 如果用if语句,至少要用3层嵌套的if,进行 3次检查判断
用switch语句进行一次检查即可得到结果
#include <stdio.h> int main() { char grade; scanf("%c",&grade); printf("Your score:"); switch(grade) 若值为A { case 'A': printf("85~100\n");break; case 'B': printf("70~84\n");break; case 'C': printf("60~69\n");break; case 'D': printf("<60\n");break; default: printf("enter data error!\n"); } return 0; }
4.3.1关系运算符及其优先次序
关系、算术、赋值运算符的优先级
算术运算符 关系运算符 赋值运算符 (低) (高) 例:① x+3>5 ② a==b<c
最后赋值!
4.4 逻辑运算符和逻辑表达式
4.4.1 逻辑运算符及其优先次序
4.4.2 逻辑表达式
4.4.3 逻辑型变量
4.4.1 逻辑运算符及其优先次序 P93
末尾分 号不能 少
内嵌if语句 可以与else 不同行
4.3关系运算符和关系表达式
P91
4.3.1关系运算符及其优先次序
4.3.2 关系表达式
4.3.1关系运算符及其优先次序
什么叫“关系运算”: C语言提供6种关系运算符:
< , <= , > , >=,==, !=
优先级高 优先级低
P91
对两个数进行比较运算,结果值为真1/假0。
if(number > 500) cost = 0.15; else if (number > 300) cost = 0.10; else if (number > 100) cost = 0.075; else if (number > 50) cost = 0.05; else cost=0; 等价于:
4.6 选择结构的嵌套
4.7 用switch语句实现多分支选择结构
4.8选择结构程序综合举例
4.1 选择结构和条件判断
C语言有两种选择语句:
(1)if语句 两个分支
P89
(2)switch语句
多分支
4.2.1 用if语句处理选择结构举例 P87
例4.2 输入两个实数,按代数值由小到 大的顺序输出这两个数。( 略 ) 算法一:两个变量a、b交换值 t=a; // t作为过渡变量 a=b; b=t; (下面的例子中要用这个算法)
P94
a && b a || b 1 1 0 1 0 1 0 0
4.4.2 逻辑表达式
闰年的条件是符合下面二者之一:
P95
判别某一年是否闰年,写逻辑表达式 ①能被4整除,但不能被100整除,如2008年 ②能被400整除,如2000年 (year % 4 == 0 && year 100 !=0)
4.4.2 逻辑表达式
例题分析:
(1) 若a=4,则!a的值为__
(2) 若a=4,b=5,则a && b的值为__
(3) a和b值分别为4和5,则a||b的值为__
(4) a和b值分别为4和5,则!a||b的值为__ (5) 4 && 0 || 2的值为__
4.4.2 逻辑表达式
修改后的逻辑运算真值表 a 非0 非0 0 0 b 非0 0 非0 0 !a 0 0 1 1 !b 0 1 0 1
4.6 选择结构的嵌套
一般形式:
if( ) if( ) 语句1 else 语句2 else if( ) 语句3 else 语句4
P99
在if语句中又包含一个或多个if语句称为 if语句的嵌套
else总是与它上面最 近的未配对的if配对
内嵌if
4.6 选择结构的嵌套
例4.5有一函数:
1 ( x 0) y 0 ( x 0) 1 ( x 0)
例4.6 要求按照考试成绩的等级字母,输出百 分制分数段, 85分及以上为‟A‟等, 70~84分为‟B‟等, 60~69分为‟C‟等, 60分以下为‟D‟等。 成绩的等级由键盘输入。
相关文档
最新文档