C语言程序设计(4选择结构程序设计)
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语言第四章.选择结构程序设计
case 常量表达式n: 语句n; default : 语句n+1; }
语句的执行过程:
先计算表达式的值,并逐个与其后的常量表达式值相 比较; 当表达式的值与某个常量表达式的值相等时,即执行
其后的语句;
然后不再进行判断,继续执行后面所有case后的语句;
如表达式的值与所有case后的常量表达式均不相同时,
a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b)
2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”
来表示。
反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”。
3)逻辑运算的规则:
(1)与运算&&
条件运算符和条件表达式
条件表达式通常用于赋值语句之中。 例如条件语句:
if(a>b) max=a;
else max=b; 可用条件表达式写为 max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a 赋予max, 否则把b 赋予max。
注意以下几点:
条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。 因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
注意:
(3) 在if 语句的三种形式中,所有的语句应为单个语句,
如果要想在满足条件时执行一组(多个)语句,则必须
把这一组语句用{ } 括起来组成一个复合语句。 例如:交换两个变量 if (a>b) { t= a; a=b; b=t; }
山东理工大学史上最全C语言C程序设计(4 选择结构)
思考:输入年和月,输出这个月份的天数?
定义年(year),月(month),天数(day),输入年,月
switch
month
1,3,5,7,8,10,12
case 4,6,9,11
day=31;
day=30;
2
Y 闰年? N
day=29
day=28
输出年,月对应的天数
19
#include <stdio.h>
6
4.5从键盘输入两个整数,求出其中的较大数并输出。
#include<stdio.h> main() {
int a,b,max; printf("请输入两个整数:\n"); scanf("%d%d",&a,&b); if(a>=b) max=a; else max=b; printf("较大数为%d\n",max); }
else if(income<=5000)
5 >12500
tax=(income-3500)*0.03;
税率(%) 0 3 10 20 30
else if(income<=8000)
tax=(5000-3500)*0.03+(income-5000)*0.1;
else if(income<=12500)
• 结合方向:自右向左
取expr2值
如 a>b?a:c>d?c:d a>b?a:(c>d?c:d)
取expr3值
• expr1、expr2、expr3类型可不同,表达式值取较高的类 型
例 x?‘a’:‘b’ //x=0,表达式值为‘b’; x‡0,表达式值为‘a’ x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
第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章 选择结构程序设计
#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
(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语言程序设计第四单元选择结构程序设计
思路指导
输入:输入学生的成绩存储到变量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表示不喜爱)。 输出:身高 处理:利用给定公式和身高预测方法对身高进行预测。 判断条件:性别男还是女、是否喜爱体育锻炼、是否有良好 的饮食习惯。
《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语言程序设计
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语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
C语言程序设计实例教程(第2版)丁爱萍第4章 选择结构程序设计_百度文库
本文由xjsir2010贡献 ppt文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
第4章 选择结构程序设计 章 第4章 选择结构程序设计 章 4.1 关系运算符及其表达式 4.2 逻辑运算符及其表达式 4.3 条件运算符 4.4 单条件选择if语句 单条件选择 语句 4.5 开关分支 开关分支switch语句 语句 习题4 第4章 选择结构程序设计 章 4.1 关系运算符及其表达式 关系表达式是由关系运算符连接表达式构成的。
1. 关系运算符 1) 关系运算符 关系运算符都是双目运算符,共有如下6种: >,<,>=,<=,==,!= 分别是大于、小于、大于或等于、小于或等于、 等于和不等于。
第4章 选择结构程序设计 章 2) 运算符的优先级和结合性 前4种关系运算符的优先级别相同,后2种也相同,前4 种高于后2种。
关系运算符具有自左至右的结合性。
关系运算符、算术运算符和赋值运算符之间的优先级次序 为:算术运算符优先级最高,关系运算符次之,赋值运算 符最低。
2. 关系表达式 1) 关系表达式 由关系运算符组成的表达式称为关系表达式。
关系运算符两边的运算对象可以是C语言中任意合法 的表达式。
例如,x>y,(x=5)<=y,x==y等。
第4章 选择结构程序设计 章 2) 关系表达式的值 关系表达式的值是整数0(代表结果为逻辑假)或 1(代表结果为逻辑真),在C语言中不存在专门的“逻 辑值”,此处请读者务必清楚。
例如,关系表达式 (x=3)>(y=4)的值为0。
关系表达式常用在条件语句和循环语句中。
3) 举例 一般情况下,关系表达式用在选择结构或循环结 构的关系判断中,并不需要输出关系表达式的值,这 里我们为了了解关系表达式的内部运行机制,在例4-1 中可以看到关系表达式的值只能是0或1。
第4章 选择结构程序设计 章 【例4-1】关系表达式示例。
#include "stdio.h" main( ) { char x='m' , y='n' ; int n ; n=x<y ; printf("%d\n" , n) ; n=x==y-1 ; printf("%d\n" , n) ; n=('y'!='Y')+(5<3)+(y-x==1) ; printf("%d\n" , n) ; } 第4章 选择结构程序设计 章 运行结果: 1 1 2 通过上面的程序可以看出:关系运算的结果为 “真”时,值等于1;结果为“假”时,值等于0。
c语言实验4:选择结构程序设计
实验4:选择结构程序设计实验名称:选择结构结构程序设计实验日期:年月日实验报告日期:年月日一、实验目的1、掌握关系、逻辑运算符及其表达式的正确使用。
2、掌握if语句和switch语句的使用。
二、实验环境Vc++6.0三、实验内容在v C下完成程序题:1、有如下函数,要求输入x的值,求y的值。
|X|,X<0Y= X2,0≤X<10LogX,X≥102、输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值。
3、某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。
工龄和现工资从键盘输入,编程求加工资后的员工工资。
四、实验要求1、实验前绘制程序框图,编制源程序、准备测试数据。
2、在vc下完成程序的编辑、编译、运行,获得程序结果。
3、实验中可以采用vc程序调试基本方法协助查找程序中的逻辑问题。
五、实验步骤、过程1、编辑、编译、运行程序题1,分别使用数据-5,0,5,10,100做测试。
人工计算结果分别是。
2、编辑、编译、运行程序题2,分别使用数据1,7,8做测试。
3、编辑、编译、运行程序题3,测试数据见下表:工龄y(年)现工资S0(元)调整后工资S(元)-人工计算结果25 220022 190018 170016 14004、尝试跟踪程序题1运行。
用F7或F8键单步跟踪程序,用^F7检查变量值,用F4可以将程序运行到光标当前位置。
X。
【c语言程序设计】选择结构程序设计
【c语言程序设计】选择结构程序设计C语言程序设计 - 选择结构程序设计C语言是一种通用的程序设计语言,广泛应用于计算机科学和软件开发领域。
选择结构是C语言中的一种重要控制结构,用于根据条件的真假来决定程序运行的路径。
本文将介绍选择结构在C语言程序设计中的应用以及相关的编程技巧。
一、IF语句IF语句是最简单的选择结构,用于根据一个条件的真假来决定程序的下一步动作。
它的基本语法如下:if (条件) {// 如果条件为真,执行这里的代码}例如,如果我们想判断一个数字是否为正数,可以使用如下的C代码:```c#include <stdio.h>int main() {int num;printf("请输入一个数字:");scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n");}return 0;}```上述代码中,用户输入一个数字,程序会判断这个数字是否大于0,如果是,则输出"这是一个正数"。
二、IF-ELSE语句IF-ELSE语句是在条件为真或假的情况下,分别执行不同的代码块。
它的基本语法如下:if (条件) {// 如果条件为真,执行这里的代码} else {// 如果条件为假,执行这里的代码}例如,我们想判断一个数字是否为奇数,可以使用如下的C代码:```c#include <stdio.h>int main() {int num;printf("请输入一个数字:");scanf("%d", &num);if (num % 2 == 0) {printf("这是一个偶数。
\n");} else {printf("这是一个奇数。
\n");}return 0;}```上述代码中,用户输入一个数字,程序会通过判断这个数字是否能被2整除来确定是奇数还是偶数,并输出相应的结果。
c语言第04章 选择结构
设:int x=4,y=2,z=3;求下面各表达式的值 求下面各表达式的值 0 (1) abs(x-y)<1.0E-06 0 (2) z>y+x 1 (3) x!=y==z-2
3)逻辑运算符和表达式 逻辑运算符和表达式 – 逻辑运算符: ! && || 逻辑运算符: – 逻辑运算真值表
a 真 真 假 假 b 真 假 真 假 !a 假 假 真 真 !b 假 真 假 真 a&&b 真 假 假 假
C语言程序设计 语言程序设计
主 讲:李晓勇 Email:lxyonghn@
第四章 选择结构程序设计
一, 条件表达式及运算 if语句 二, if语句 switch语句 三, switch语句 四,程序举例
一, 条件表达式及运算 1 关系运算符 种类: 种类:< <= == >= > != 2 关系条件表达式 关系运算符和两个运算对象组成 结果:逻辑值"真"或"假",用1和0表示 结果:逻辑值" 例 int a=3,b=2,c=2,d; a>b 1 (a>b)==c 0
a||b 真 真 真 假
C语言中, 语言中,
运算量: 运算量: 运算结果: 运算结果:
0表示" 0表示"假", 表示 表示" 非0表示"真", 0表示 表示" 0表示"假", 1表示"真", 表示"
优先级: 算术运算符 关系运算符>(&&;||)>赋值运算符 算术运算符, 优先级 ! >算术运算符,关系运算符 赋值运算符 优先级: 优先级: ! && 低 || 高 结合方向: 结合方向: ! && || :从右向左 :从左向右 :从左向右
C语言程序设计第四章
运行情况: 1989↙ 1989is not a leap year.
2000↙
2000 is a leap year.
C程序设计
第五章
选择结构程序设计
例4.6 求
2 ax bx c 0 方程的解
#include "stdio.h" #include "math.h" main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if (fabs(a)<=1e-6) printf("is not a quadratic"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }
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的值。
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)
实验4选择结构程序设计
实验4 选择构造程序设计一、实验目的:1、熟悉C语言逻辑值“真〞、“假〞的表示;2、掌握关系运算符的种类、运算优先级、运算结果的类型,清楚一个关系表达式对应的相反式;3、掌握逻辑运算符的种类、运算优先级、结合性、操作数与运算结果的类型,能根据要求构建相应的逻辑表达式,理解逻辑运算中“短路〞现象;4、掌握if语句的用法,可以根据要求纯熟使用单分支、双分支、多分支(嵌套)构造;5、掌握switch语句的格式、功能及本卷须知;6、熟悉条件运算符和条件表达式的根本用法;7、初步学习随机函数rand()的使用。
二、实验内容1、(根底题)分析、运行以下程序,验证逻辑值、关系运算相关内容,并答复相关问题:#include<stdio.h>int main(){int x=15,y=5,z=50;printf("x=%d, y=%d, z=%d\n",x,y,z);printf("x>y? %d\n",x>y);printf("x<=y? %d\n",x<=y);printf("x+y<z? %d\n",x+y<z);printf("z-30>=x+y? %d\n",z-30>=x+y);printf("y==z-30>x? %d\n",y==z-30>x);return 0;}问题:(1)C语言逻辑值“真〞、“假〞如何表示?输入、输出时有什么不同?(2)关系运算符包含哪几个? 它们的优先级如何?(3)关系表达式的运算结果是什么?(4)哪些关系运算符互为相反式?它们的运算结果有什么关联?2、(根底题分析、运行以下程序,验证逻辑运算的相关内容,并答复相关问题:#include<stdio.h>int main(){int a=3, b=4, c=5;int x,y,z;printf("a=%d, b=%d, c=%d\n",a,b,c);printf("a+b>c&&b==c ? %d\n",a+b>c&&b==c);printf("!a||!c||b ? %d\n",!a||!c||b);printf("a||b+c&&b>c ? %d\n",a||b+c&&b>c);printf("a*b&&c+a ? %d\n\n",a*b&&c+a);printf("执行x=a<b||c++后,x=%d,a=%d,b=%d,c=%d\n",x=a<b||c++,a,b,c);printf("执行y=a>b&&c++后,y=%d,a=%d,b=%d,c=%d\n",y=a>b&&c++,a,b,c);printf("执行z=a||b++||c++后,z=%d,a=%d,b=%d,c=%d\n",z=a||b++||c++,a,b,c);return 0;}问题:(1)逻辑运算符包含哪几个? 它们的优先级如何?它的运算级别高于算术运算符、赋值运算符吗?(2)逻辑表达式的操作数、运算结果是什么?(3)什么是逻辑运算中“短路〞现象?这会带来什么影响?3、(根底题以下程序的功能是:输入学生四门课程的成绩,然后根据要求构建相应的逻辑表达式,之后计算这些表达式的值并输出。
C语言程序设计教程:选择结构程序设计
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}
c语言实验四选择结构程序设计
c语言实验四选择结构程序设计实验四:选择结构程序设计选择结构是C语言中的一种基本控制结构,用于根据条件的真假来选择执行不同的代码块。
本篇文章将介绍C语言中选择结构的概念、语法和常见的应用场景。
一、概述选择结构是一种基于条件判断的控制结构,根据条件的真假来选择执行不同的代码块。
C语言中的选择结构主要有if语句、if-else语句和switch语句。
二、if语句if语句是最简单的选择结构,它的语法格式如下:```cif (条件) {// 条件为真时执行的代码块}```其中,条件是一个表达式,如果条件为真,则执行if语句后面的代码块。
如果条件为假,则跳过if语句后面的代码块。
if语句还可以和else语句一起使用,形成if-else语句。
if-else语句的语法格式如下:```cif (条件) {// 条件为真时执行的代码块} else {// 条件为假时执行的代码块}```如果条件为真,则执行if语句后面的代码块;如果条件为假,则执行else语句后面的代码块。
三、switch语句switch语句用于根据表达式的值选择执行不同的代码块。
它的语法格式如下:```cswitch (表达式) {case 值1:// 表达式的值等于值1时执行的代码块break;case 值2:// 表达式的值等于值2时执行的代码块break;// ...default:// 表达式的值都不等于上述值时执行的代码块break;}```switch语句中的表达式的值会依次与每个case后面的值进行比较,如果相等,则执行对应的代码块。
如果所有的case都不匹配,则执行default后面的代码块。
四、应用场景选择结构在程序设计中有着广泛的应用场景,以下是一些常见的例子:1. 根据用户的输入选择不同的操作:比如在一个菜单程序中,根据用户输入的选项执行相应的操作。
2. 根据条件判断执行不同的计算:比如在一个学生成绩管理系统中,根据不同的分数段给出不同的评价。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其格式为: if(表达式1) 语句1 else if(表达式2) 语句2 …… else if(表达式n) 语句n else 语句n+1
多分支if语句:if-else if
【例3-3】将学生成绩由百分制转化为等级制。规则如下: ⑴ 85分(含)以上为A级。 ⑵ 70分(含)以上且85分以下为B级。 main() ⑶ 60分(含)以上且70分以下为C级。 { ⑷ 60分以下为D级。 float score; printf("\n please input a score:"); 程序运行结果如下: scanf("%f",&score); please input a score:89↙ if(score>=85) the score 89.000000 is A printf("the score %f is A \n",score); else if(score>=75) printf(" the score %f is B \n",score); else if(score>=60) printf("the score %f is C \n",score); else printf("the score %f is D \n",score); }
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
一般是一个整数表达 switch语句(开关语句) 一般形式: 式(或字符表达式) switch(<表达式>) { case <常量表达式1>: <语句序列1> case <常量表达式2>: <语句序列2> ……. case <常量表达式n>: <语句序列n> default: <语句序列n+1> } 执行过程: <表达式>的值与某一case后面的<常量表达式>值匹配 时,则执行此case后面的所有的<语句序列>,直至遇 到break语句或switch的结束“}”,否则,执行default后 的<语句序列>。
C语言程序设计
第四章 选择结构程序设计
按给定条件进行判断,按判断后的不同情况进行不同处理。
选择结构有两种:
if语句: 1.单分支if语句 2.双分支if语句 3.多分支if语句
switch 语句
if语句(条件分支语句)
if语句常用的两种形式
形式一(缺省形式):
表达式
非0 语句 0
格式:if (expression)
缺省{ }时,else总是和它上面离它最近的未配对的 if 配对
if(…) if(…) if(…) else…... else…... else…...
main() { int x=100,y=10,a=30,b=20,k1=10,k2=6; if(a>b) if(b!=10) if(!k1)x=1; else if(k2) x=10; else x=20; 运行结果: printf("x =%d\n",x); x=10 }
if语句嵌套
例: #include “stdio.h” main() { int x=4,y=5,z=2,max; max=x; if(z>y) if(z>x) max=z; else if(y>x) 结果? max=y; printf(“max=%d”,max); }
if ~ else 配对原则:
实现if ~ else 正确配对方法
例: if (a==b) 注意:书写格式不能 if(b==c) printf(“a==b==c”); 代替程序逻辑 else printf(“a!=b”); 修改: if (a==b) { if(b==c) printf(“a==b==c”); 实现if ~ else 正确配对 } 方法:加{ } else printf(“a!=b”);
【例4-6】编写程序测试是数字、空白、还是其他字 符。
main() { int c; switch(c) {
case case case case case case case case case case
if语句嵌套一般形式:
if (expr1) if (expr2) statement1 else statement2 if (expr1) statement1 else if(expr3) statement2 else statement3 if (expr1) { if (expr2) 内嵌if statement1 } else statement2 if (expr1) if (expr2) else else if(expr3) else
说明:
else要与if配对使用 if后面的表达式类型任意 语句可以是复合语句 如:if(a==b&&x==y) printf(“a=b,x=y”); 同一个条件的多种表达方式 if(3) printf(“OK”); 例 考虑下面程序的输出结果: 如:if(x)printf(“%d”,‟a‟); if(„a‟) if(x!=0) 如:if(a<b) #include printf(“hello”); if(!x){ if(x==0) if(s=2) <stdio.h> main() if(s=2,s<0) r=a*a-b*b; printf(“false”); { int x,y; s=a/b; scanf(“%d,%d”,&x,&y); } Compile Error! if(x>y) else x=y; y=x; { 错误信息: else r=b*b-a*a; misplaced else in function main x++; y++; s=a/b+4; printf(“%d,%d\n”,x,y); } }
main()
【例4-1】在两个数中取大数。
{ int num1,num2,max; printf("\n input two numbers: "); scanf("%d%d",&num1,&num2); max=num1; if(max<num2) max=num2; printf("max=%d\n",max); }
【例】输入1—7中的数字,将其转换成相应的星期英文单词。 main() { int num; scanf(”%d”,&num); switch(num) { case 1:printf(”Monday\n”); break; case 2:printf(”Tuesday\n”); break; case 3 :printf(”Wednesday\n”); break; case 4:printf(”Tursday\n”); break; 若无break? case 5:printf(”Friday\n”);break; case 6:printf(”Saturday\n”);break; case 7:printf(”Sunday\n”);break; default:printf(”error\n”); } }
运行:Enter integer x:10 when X=10,f(x)=21 Enter integer x:-1 when X=-1,f(x)=0
例
1 y = -1
ቤተ መጻሕፍቲ ባይዱ
( x!= 0) ( x = 0)
#include <stdio.h> main() { int x,y; printf("Enter integer x:"); scanf("%d",&x); 运行:Enter integer x:10 if(x) if(x!=0) when X=10,y=1 y=1; Enter integer x:0 else when X=0,y=-1 y=-1; printf(“when X=%d,y=%d\n“,x,y); }
statement 执行过程: 例:if (x>y)
形式二(一般形式): printf(“%d”,x); 非0 格式:if (expression) statement1 语句1 else statement2 执行过程:
表达式
0 语句2
例:if (x>y) max=x; else max=y;
main() { int num1,num2;
printf("\n input two numbers: "); scanf("%d%d",&num1,&num2); if(num1>num2) printf("max=%d\n",num1); else printf("max=%d\n",num2); }
输入两数并判断其大小关系
#include <stdio.h> main() { int x,y; printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y) if(x>y) printf("X>Y\n"); else printf("X<Y\n"); else printf("X==Y\n"); }