C语言-04-嵌套选择结构
04选择结构程序设计
If ELSE IF多分支条件语句形式
If (表达式1) 语句1 else if (表达式2) 语句2 …... else if (表达式n) 语句n else 语句n+1
依次判断表达式的值, 当出现某个值为真时, 则执行其对应的语句,然 后跳到整个if语句之外 继续执行程序。 如果所 有的表达式均为假,则 执行最后语句n+1,然后 继续执行后续程序。
IF语句
选择程序描述了求解规则:在不同的条件下所进 行的相应操作。
If 语句的基本形式 if
真 语句1 表达式 假 语句2
(条件)
语句序列1 else 语句序列2
若缺省else,则变成不平衡if结构
假(0) 表达式 真(非0) 语句
If
(条件)
语句序列
例ch4_01:求两数中的较大数。 main() { int a,b,max; printf("PLease input 2 numbers:"); scanf("%d,%d",&a,&b); if (a>b) max=a; else } max=b;
当表达式的值与某一个case后面的常量表达式的值相等时,就 执行此case后面的语句,若所有的case中的常量表达式的值都 没有与表达式的值匹配的,就执行default 后面的语句,执行完 一个case后面的语句后,流程控制转移到下一个case继续执行
break 语句作用是中止switch结构 每一个case的常量表达式的值必须互不相等 各个case的出现次序不影响执行结果 多个case可以共用一组执行语句
#include<stdio.h> void main() { int x,y; scanf(“%d”,&x); { 程序段 } printf(“x=%d,y=%d\n”,x,y);}
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语言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
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语言程序设计》实验四选择结构程序设计实验目的1、掌握分支
四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
《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语言程序设计ppt课件-第3章-选择结构
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
c语言选择结构程序设计教案
C语言选择结构程序设计教案第一章:选择结构概述1.1 选择结构的概念介绍选择结构的基本概念和作用解释条件语句的条件表达式和执行过程1.2 选择结构的语法介绍if语句的语法结构和用法解释if-else语句的语法结构和用法第二章:单分支选择结构2.1 单分支选择结构的概念解释单分支选择结构的含义和应用场景2.2 单分支选择结构的语法介绍if语句的语法结构和用法第三章:双分支选择结构3.1 双分支选择结构的概念解释双分支选择结构的含义和应用场景3.2 双分支选择结构的语法介绍if-else语句的语法结构和用法第四章:多分支选择结构4.1 多分支选择结构的概念解释多分支选择结构的含义和应用场景4.2 多分支选择结构的语法介绍if-else if-else语句的语法结构和用法第五章:嵌套选择结构5.1 嵌套选择结构的概念解释嵌套选择结构的含义和应用场景5.2 嵌套选择结构的语法介绍嵌套if-else语句的语法结构和用法第六章:选择结构的实践应用6.1 简单应用案例设计一个程序,根据用户输入的正负数输出相应的提示信息编写一个程序,根据用户输入的年龄判断并输出相应的年龄段6.2 复杂应用案例设计一个程序,根据用户输入的考试成绩判断并输出相应的等级编写一个程序,根据用户输入的天气情况输出相应的建议第七章:选择结构与逻辑运算符7.1 逻辑运算符概述介绍逻辑运算符的概念和作用解释逻辑运算符的优先级和结合性7.2 逻辑运算符的应用展示如何使用逻辑运算符结合选择结构解决问题举例说明逻辑运算符在实际编程中的应用场景第八章:选择结构与函数8.1 选择结构与函数的关系解释选择结构如何在函数中使用展示选择结构在函数中如何影响程序的执行流程8.2 选择结构在函数中的应用案例编写一个函数,根据传入的参数值返回相应的结果设计一个函数,根据传入的条件判断并执行相应的操作第九章:选择结构与循环结构的结合9.1 选择结构与for循环的结合介绍如何将选择结构与for循环结合使用举例说明选择结构与for循环结合的应用场景9.2 选择结构与while循环的结合介绍如何将选择结构与while循环结合使用举例说明选择结构与while循环结合的应用场景第十章:选择结构的扩展与优化10.1 选择结构的扩展介绍选择结构的扩展方法和技巧解释如何提高选择结构程序的可读性和可维护性10.2 选择结构的优化介绍选择结构优化的方法和原则展示如何通过优化选择结构提高程序的性能和效率第十一章:选择结构与数组的结合11.1 选择结构与一维数组的结合介绍如何使用选择结构对一维数组进行排序展示如何根据特定条件对一维数组进行查找11.2 选择结构与二维数组的结合解释如何使用选择结构遍历和处理二维数组举例说明选择结构在二维数组中的应用场景第十二章:选择结构与文件操作12.1 选择结构与文件读写介绍如何使用选择结构实现文件的打开、读取和关闭展示如何根据特定条件对文件内容进行处理12.2 选择结构与文件操作应用案例编写一个程序,根据用户选择实现文件的复制和移动设计一个程序,根据文件内容判断并输出相应的信息第十三章:选择结构与指针13.1 选择结构与指针的关系解释指针在选择结构中的作用和意义展示如何使用指针和选择结构实现复杂的数据操作13.2 选择结构与指针应用案例编写一个函数,根据指针指向的内容判断并执行相应操作设计一个程序,利用指针和选择结构处理动态分配的内存第十四章:选择结构与字符串处理14.1 选择结构与字符串的关系解释字符串在选择结构中的作用和意义展示如何使用选择结构实现字符串的常见操作14.2 选择结构与字符串处理应用案例编写一个程序,根据用户输入的字符串判断并输出其长度设计一个程序,根据字符串内容判断并执行相应的操作第十五章:选择结构综合案例15.1 选择结构在复杂程序中的应用介绍选择结构在复杂程序中的作用和意义展示如何使用选择结构实现复杂程序的流程控制15.2 选择结构综合案例分析分析并讲解一个涉及选择结构的多模块程序引导学生学会如何将选择结构应用于实际项目开发重点和难点解析本文主要介绍了C语言选择结构程序设计的相关内容,包括选择结构的基本概念、语法和应用场景。
C语言中几种嵌套结构的教学分析
采用if语句的嵌套,它 是 将 复 杂 的 部 分 放 置 在 前,简 单 的 部
分放置在后,即在 前 面 嵌 套,程 序 中 往 往 会 连 续 出 现 多 个if
或else的情 形,这 个 时 候 要 注 意 else与if的 配 对 问 题,象 程
序 ①中的第一个if是跟第二个else进行配对,而第二个if是
循环结构嵌套对于初学者来说是一 个 麻 烦 问 题,大 家 知
道循环完成的是对有规律的操作进行重 复,找 规 律 对 初 学 者
特别是文科类学生是头痛的,理工科学生 几 分 钟 能 够 考 虑 好
的算法,文科生要十 几 分 钟 甚 至 更 长 时 间 才 能 想 清 楚,简 单
循环稍微好些,例如,设 计 程 序 求 1+2+3+ ������ +100 的 和,
{2x x>0
y= 0
x=0
X2
x<0
函数分析如 下:当 x 等 于 0 时 y 的 值 有 一 种 情 况,x 不
等于0时,y 的值有两种情况,而 采 用if语 句 嵌 套 和 else-if
语句嵌套的格式是
① if语 句 嵌 套 格 式
else
if(பைடு நூலகம் 达 式 1)
语句3
if(表 达 式 2)
程序代码如下:
语句1
main()
else
{floatx,y;
语句2
printf(“请 输 入 一 个 数 ”);
scanf(“%f”,&x);
语句2
if(x! =0) if(x>0)
else
语句3
y=2∗x;
程序代码如下:
else
main()
y=x∗x;
C语言全国计算机二级等级考试教程第四章选择结构(章节带习题)
2
a a
2 1
b 1
b
1
4.2 if语句和用if语句构成的选择结构
4.2.1 if语句
C语言的if语言有两种形式: if(表达式) 语句 关键字 不满足 单分支if语句 不含else子句 关键字 if(表达式) 语句1 else 语句2 不满足 双分支if语句 含else子句
表达式 满足 语句
表达式 满足 语句1
表达式2
表达式1
真
假
表达式3
真
假
表达式4
真
语句1 语句2 语句3
假
语句n
真
语句4
4.2 if语句和用if语句构成的选择结构
4.2.2 嵌套的if语句
例4.5 编写程序,根据输入的学生成绩给出相应的等级,大于或等于90分以上 的等级为A,60分以下的等级为E,其余每10分为一个等级。 Enter g:72<CR> 成绩(g)大于等于90分以上(g>=90):A g=72:C 成绩(g)大于等于80分以上(g>=80):B 程序的意思为: 成绩(g)大于等于70分以上(g>=70):C Enter g:55<CR> 成绩(g)大于等于60分以上(g>=60):D g=55:E 成绩(g)不及格(g<60):E #include <stdio.h> 假 g>=90 main() {int g; 真 g>=80 假 printf("Enter g:");scanf("%d",&g) 真 printf("g=%d:",g); g>=70 假 if(g>=90) printf("A\n"); 真 假 g>=60 else if(g>=80) printf("B\n"); else if(g>=70) printf("C\n"); 真 else if(g>=60) printf("D\n"); 输出A 输出B 输出C 输出D 输出E else printf("E\n"); }
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
第4章 选择结构程序设计
章节:
C语言程序设计→第4章 选择结构程序设计
练一练
问题:编一程序,从键盘输入一个正整数,判 断它的奇偶性。如果输入的是奇数,输出“奇 数”,如果输入的是偶数,则输出“偶数”。
章节: C语言程序设计→第4章 选择结构程序设计
本章的学习难点
1. 单分支与双分支选择结构程序设计; 2. 多分支选择结构程序设计 ; 3. 条件语句的嵌套。
章节: C语言程序设计→第4章 选择结构程序设计
本章目录
1. 选择结构和条件判断 2. 用if语句实现选择结构 3. 关系运算符和关系表达式 4. 逻辑运算符和逻辑表达式 5. 条件运算符和条件表达式 6. 选择结构的嵌套 7. 用switch语句实现多分支选择结构 8. 选择结构程序综合举例
章节: C语言程序设计→第4章 选择结构程序设计
4.1.2逻辑运算符与逻辑表达式
逻辑运算符
&&
逻辑与(并且)
||
逻辑或(或者)
!
逻辑非
章节:
C语言程序设计→第4章 选择结构程序设计
逻辑运算符
章节: C语言程序设计→第4章 选择结构程序设计
逻辑运算真值表
章节: C语言程序设计→第4章 选择结构程序设计
反数。所以,如果iX<0,则iY= -iX,否则不需要 做什么;
5.输出iX和iY。
章节:
C语言程序设计→第4章 选择结构程序设计
流程图
章节:
C语言程序设计→第4章 选择结构程序设计
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课件
/* 求 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 语句是多分支的选择语句又称开关语句。
C语言-04-嵌套选择结构
例、根据学生成绩的等级打印出分数段。
#include<stdio.h>
main( )
{ char grade;
switch(grade) {
printf(“input the grade(a,b,c,d,e):\n”); case „b‟:printf(“80—90\n”);break;
scanf(“%c”,&grade); case „c‟:printf(“70—80\n”);break; case „d‟:printf(“60—70\n”);break; case „e‟:printf(“0—59\n”);break; default:printf(“error!\n”); } }
0(x<0)
X=f(x)= x(0<=x<=50) x2(x>50) else if 语句
scanf(“%f”,&x); if (x<0.0) printf(“y=0\n”);
else if (x>=0.0 &&x<=50.0)
printf(“y=%f\n”,x);
else printf(“y=%f\n”,x*x);
编程范例
例1 最近某公司对员工进行加薪,具体规定如下:工龄 没有到5年的员工,工资在原先基础上增加5%;工龄到 5年的员工,如果原先工资没有到600则加到600,如果 已到600则在原先基础上增加8%。输入某员工的工龄和 原先工资,输出其新的工资。 例2 不同排量的汽车征收不同的税率,具体如下: 排量≤1.2 税率为2% 1.2<排量≤1.6 税率为3% 1.6<排量≤2.0 税率为4% 2.0<排量≤3.0 税率为6% 3.0<排量 税率为8% 输入一辆汽车的排量与价格,计算该汽车应缴的税额。 例3 输入一个整数,根据这个输入的整数输出相应的星 期名称。如果输入1,则输出“星期一”;如果输入2, 则输出“星期二”;如果输入7,则输出“星期日”; 其他情况则输出“错误”。
计算机二级C语言第4章 选择结构程序设计
①应当注意if与else的配对关系。原则是else总是与它上面最近的、未
配对的if配对。
②如果if与else的数目不一样,为了避免在if与else配对时出错,建议
读者使用“{}”来限定了内嵌if语句的范围。如下形式的嵌套语句:
if(表达式1)
{if(表达式2)语句1} /*内嵌if*/
这时形成了阶梯形的嵌套if语句,此形式的语句可以用以下语句形式
表示,看起来层次比较分明。
4.4.2 if语句的嵌套
if(表达式1)
…
语句1
…
else if(表达式2)
else if(表达式n-1)
语句2
语句n-1
else if(表达式3)
else
语句3
语句n
嵌套选择结构主要用于处理多条件的问题。设计嵌套选择结构时,应
②只在else子句中嵌套if语句,形式如下:
if(表达式1)
语句1
else
if(表达式2) 语句2
else 语句3
③不断在else子句中嵌套if语句就形成多层嵌套,形式如下:
if(表达式1) 语句3
语句1
…
else
if(表达式n)
if(表达式2) 语句n
语句2
else(表达式n)
else(表达式3) 语句n
case常量表达式2: 语句2
…
case常量表达式n: 语句n
default:
语句n+1
}
【说明】
①switch后面的表达式必须用圆括号括起来,其取值必须是整型或字
符型。switch语句后面用花括号“{}”括起来的部分称为switch语句体,
第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、执行过程:
C语言程序设计—选择结构
int main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
return 0;
}
条件表达式“(ch>='A'&&ch<='Z')?(ch+32):ch”的作用是:
else y=0;
if (0) 语句5
//表达式是整数0,条件判断结果为假,不执行语句5,接着执行下一语句
if(x+3.5) 语句6
//表达式是实数表达式,若x+3.5不等于0,则条件判断结果为真,执行语句6
小例子
判别用year表示的某一年是否
闰年,可以用一个逻辑表达式
来表示。闰年的条件是符合下
面二者之一: ①能被4整除,
scanf("%f,%f",&a,&b);
if(a>b)
{
//将a和b的值互换
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
两个变量值的互换
a=b; //把变量b的值赋给变量a,a的值等于b的值
b=a; //再把变量a的值赋给变量b,变量b值没有改变
再执行关系运算“1>c”,得值0,赋给f,所以f的值为0
逻辑运算符和逻辑表达式
C语言 嵌套结构
12
逻辑运算符
逻辑运算符
(1)&&
(2)|| (3)!
(逻辑与) 相当于其他语言中的AND (逻辑或) 相当于其他语言中的OR (逻辑非) 相当于其他语言中的NOT
例:a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.回车
输出一个空格
输出一个星号
35
算法 sample02_06.cpp
循环i从1到n行 step 1 1.输出空格 循环j从1到n-i 输出一个空格 2.输出星号 循环j从1到2*i-1 输出一个星号 3.回车
//循环i从1到n行 step 1 for(i=1;i<=n;i++) { // 1.输出空格 for(j=1;j<=n-i;j++) printf(" "); // 2.输出星号 for(j=1;j<=2*i-1;j++) printf(" *"); // 3.回车 printf("\n"); }
如果i<n
则不是素数 否则是素数
39
求100以内的全部素数 分析
循环i从3到100 如果i是一个素数则输出
40
算法:求100以内的全部素数
循环i从3到100
m=sqrt(i) 循环j从2到m
如果i能被j整除 跳出循环
如果i>m
则是素数,输出
41
复合嵌套结构(二)穷举法
# include <stdio.h> 0 x0 int main(void) { 4x y f ( x) 0 x 15 double x, y; 3 printf("Enter x:"); scanf("%lf", &x); x 15 2.5 x 10.5 if (x < 0){ y = 0; Enter x: -0.5 } else if (x <= 15){ f(-0.50) = 0.00 y = 4 * x / 3; Enter x: ? } Enter x: 9.5 else{ y = 2.5 * x - 10.5; f(9.50) = 12.67 } printf("f(%.2f) = %.2f\n", x, y); Enter x: 21.3 return 0; f(21.30) = 42.75 } 25
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.3 switch结构
switch结构也是一种多分支结构: 当某表达式为不同的值时,执 行不同的操作。如果没有一个 值符合,则执行default中的语 句。
break 语句用于结束整 个switch语句,break可 以省略,但省略时程 序将不加判断地执行 下面的case和default中 的语句。
编程范例
例1 最近某公司对员工进行加薪,具体规定如下:工龄 没有到5年的员工,工资在原先基础上增加5%;工龄到 5年的员工,如果原先工资没有到600则加到600,如果 已到600则在原先基础上增加8%。输入某员工的工龄和 原先工资,输出其新的工资。 例2 不同排量的汽车征收不同的税率,具体如下: 排量≤1.2 税率为2% 1.2<排量≤1.6 税率为3% 1.6<排量≤2.0 税率为4% 2.0<排量≤3.0 税率为6% 3.0<排量 税率为8% 输入一辆汽车的排量与价格,计算该汽车应缴的税额。 例3 输入一个整数,根据这个输入的整数输出相应的星 期名称。如果输入1,则输出“星期一”;如果输入2, 则输出“星期二”;如果输入7,则输出“星期日”; 其他情况则输出“错误”。
例 、 输入星期中的某 一天,显示对应的英文
main() { int i; printf( “输入数 字 1- 7: ”); scanf(“%d”,&i);
switch(i){ case 1: printf( “Today is Monday!”); case 2: printf( “Today is Tuesday!”); case 3: printf( “Today is Wednesday !”); case 4: printf( “Today is Thursday!”); case 5: printf( “Today is Friday!”); case 6: printf( “Today is Saturday!”); default: printf( “Today is Sunday!”); } }
if结构嵌套的一种特殊形式是if...else if...else if...else结 构,这是一种常用的多分支结构,用于解决一种多 条件的问题 。
当条件1成立便执行语句 序列1;条件1不满足再判断 条件2,如果成立便执行语句 序列2;条件2还不成立,再 判断条件3,如果成立便执行 语句序列3,……;所有的条 件都不成立,便执行else后的 语句。
0(x<0)
X=f(x)= x(0<=x<=50) x2(x>50) else if 语句
scanf(“%f”,&x); if (x<0.0) printf(“y=0\n”);
else if (x>=0.0 &&x<=50.0)
printf(“y=%f\n”,x);
else printf(“y=%f\n”,x*x);
例、根据学生成绩的等级打印出分数段。
#include<stdio.h>
main( )
{ charnput the grade(a,b,c,d,e):\n”); case „b‟:printf(“80—90\n”);break;
scanf(“%c”,&grade); case „c‟:printf(“70—80\n”);break; case „d‟:printf(“60—70\n”);break; case „e‟:printf(“0—59\n”);break; default:printf(“error!\n”); } }
switch(整数或字符表达式 { case 整数或字符常量: 语句序列1; break; case 整数或字符常量: 语句序列2; break; …… default: 语句组; }
switch语句 举例
例4.2 下面程序在输入1、2、3、4、5时分别输出什么? #include "stdio.h" main() { int x; scanf("%d",&x); switch(x) { case 1: printf("a"); break; case 2: printf("b"); printf("1"); break; case 3: printf("c"); printf("2"); break; default: printf("d"); printf("3"); break; } }
关于switch语句的几点说明: (1) switch后的表达式可以是char, short, int类型 (2) case后的表达式与switch后的表达式相等时 , case后的语句被执行。 (3) case后的表达式必须互不相同,否则出错 (4) case 与 default 出现的顺序不影响执行结果 (5) 执行完一个case语句块后,流程转到下一个 case语句继续执行 (6) 在执行过程中碰到break语句,程序退出 switch结构
if(条件1) {语句序列1 } else if(条件2) {语句序列2 } else if(条件3) {语句序列3 } …… else {语句序列n }
if ... else if 举例 #include <stdio.h>
有一个函数,定义如下, main( ) 用多分支结构编写程序, { float x; 根据用户输入的自变量 X的值,计算函数值。 printf(“input x:\n”);
if嵌套举例
#include<stdio.h>
main( ) { int x,y; scanf(“%d %d”,&x,&y); if(x>0) { if(y>0)printf(“ 1”); else printf(“ -1”); } else printf(“ 0”,); }
4.2.2 if … else if结构
第四讲 嵌 套 选 择 结 构
4.2.1 if的嵌套
if结构中,if下面的大括号和else下面的大括号中都 可以包含任意复杂的程序段。如果这些程序段中又 包含了if结构,称为if的嵌套。
包括一般的表达式语句、 任意选择语句和循环语 句,嵌套可以是多层次 的。
if(条件) { 任意复杂的程序段} else { 任意复杂的程序段 }
case „a‟:printf(“90—100\n”);break;
例 、 输入星期中的某 一天,显示对应的英文
main() { int i; printf( “输入数字 1- 7: ”); scanf(“%d”,&i);
if (i= =1) printf( “Today is Monday!”); else if (i= =2) printf( “Today is Tuesday!”); else if (i= =3) printf( “Today is Wednesday !”); else if (i= =4) printf( “Today is Thursday!”); else if (i= =5) printf( “Today is Friday!”); else if (i= =6) printf( “Today is Saturday!”); else printf( “Today is Sunday!”); }