第04章-选择结构程序设计

合集下载

第四篇选择结构程序设计

第四篇选择结构程序设计

以某表达式的值等于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

实验四选择结构程序设计

实验四选择结构程序设计

实验四选择结构程序设计在程序设计的世界里,选择结构就像是一个智能的决策者,根据不同的条件来决定程序的走向。

这一结构在解决各种实际问题中发挥着至关重要的作用,让程序变得更加灵活和高效。

选择结构,简单来说,就是让程序在运行时能够根据某些条件的判断结果,选择执行不同的代码块。

想象一下,你正在编写一个程序,要根据用户输入的成绩来判断他是否及格。

如果成绩大于等于 60 分,就输出“及格”;否则,输出“不及格”。

这就是一个典型的选择结构应用场景。

在大多数编程语言中,实现选择结构主要有两种方式:if 语句和switch 语句。

先来说说 if 语句。

它的基本形式是“if (条件) {代码块}”。

如果条件为真,就执行花括号里的代码块;如果条件为假,就跳过这个代码块,继续执行后面的代码。

比如说,我们要判断一个数是否为正数,可以这样写:```javaint num = 5;if (num > 0) {Systemoutprintln("这是一个正数");}```除了简单的 if 语句,还有 ifelse 语句。

它的形式是“if (条件) {代码块 1 } else {代码块 2 }”。

如果条件为真,执行代码块 1;如果条件为假,执行代码块 2。

例如,判断一个数是奇数还是偶数:```javaint num = 6;if (num % 2 == 0) {Systemoutprintln("这是一个偶数");} else {Systemoutprintln("这是一个奇数");}```另外,还有 ifelse ifelse 语句,可以处理多个条件的情况。

比如,根据学生的成绩划分等级:```javaint score = 85;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}```接下来,再讲讲 switch 语句。

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;

选择结构程序设计

选择结构程序设计

选择结构程序设计1-引言本文档旨在介绍选择结构程序设计的相关内容。

选择结构是编程中的基本概念之一,它用于根据条件的真假来选择性地执行不同的代码块。

本文档将详细讨论选择结构的概念、基本语法和示例。

2-选择结构概述在程序设计中,选择结构用于在特定条件下执行不同的操作。

通过判断条件的真假,程序可以决定执行哪个代码块。

选择结构的基本形式有 if 语句、if-else 语句、if-else if-else 语句和switch 语句。

3-if 语句if 语句是选择结构中最简单的形式。

它只有一个条件和一个代码块。

如果条件为真,代码块将会被执行。

示例代码:```if (条件) {// 执行代码块}4-if-else 语句if-else 语句用于在条件为真和为假时分别执行不同的代码块。

如果条件为真,执行第一个代码块。

如果条件为假,执行第二个代码块。

示例代码:```if (条件) {// 执行代码块1} else {// 执行代码块2}```5-if-else if-else 语句if-else if-else 语句允许在多个条件下执行不同的代码块。

条件按顺序进行判断,只有第一个为真的条件对应的代码块会被执行。

示例代码:if (条件1) {// 执行代码块1} else if (条件2) {// 执行代码块2} else {// 执行代码块3}```6-switch 语句switch 语句用于根据不同的取值执行相应的代码块。

它将一个表达式的值与多个 case 常量进行比较,匹配的 case 对应的代码块将被执行。

示例代码:```switch (表达式) {case 常量1:// 执行代码块1break。

case 常量2:// 执行代码块2break。

default:// 执行默认代码块}```7-附件本文档涉及附件包括示例代码和进一步阅读的参考资料。

8-法律名词及注释本文档所涉及的法律名词及注释如下:●条件:在选择结构中用于判断的逻辑条件。

04 选择结构程序设计

04 选择结构程序设计
}
程序输出举例: Enter two numbers: 2 2 (用户从键盘输入2 2)
num1=2 num2=2 result=1
4.2 逻辑运算符及逻辑表达式
逻辑运算符用于支持基本逻辑运算。三 种逻辑运算符及其意义,如表4.2.1所示。
表4.2.1
逻辑运算符 !
&& ||
名称 逻辑非 逻辑与 逻辑或
下面给出程序清单:
#include <stdio.h> main() { int value,choice;
printf("Convert : \n");
/*输出菜单*/
printf(" 1: decimal to hexadecimal\n");
printf(" 2: hexadecimal to decimal\n");
printf("Enter a decimal value: "); scanf("%d", &value); printf("%d in hexadecimal is %x\n", value,value); } else if(choice==2) { printf("Enter a hexadecimal value: "); scanf("%x", &value); printf("%x in decimal is %d\n",
例4.3.3 用双分支if语句重新编写例4.3.1的 程序。
可以利用一个分支处理变量a为正数的情 况,如令x=a。用另一个分支初处理变量a为 负数的情况,如令x=−a。最后输出结果。下 面给出程序:

选择结构程序设计教案全文

选择结构程序设计教案全文

断点设置
在关键代码处设置断点,方便 定位问题所在。
输出调试信息
在程序中添加输出语句,输出 关键变量的值。
日志记录
记录程序运行过程中的关键信 息,便于回溯和排查问题。
2024/1/25
39
避免错误建议
仔细审题
充分理解题目要求,明确输入输出格式和限制条 件。
多测试
编写多个测试用例,覆盖各种边界情况和异常情 况。
2024/1/25
条件语句的语法和用法
条件语句包括if语句和switch语句,用于实现选择 结构。if语句根据条件的真假选择不同的执行路径 ,而switch语句根据表达式的值选择不同的执行 路径。
嵌套选择结构
嵌套选择结构是指在选择结构内部包含另一个选 择结构,用于实现更复杂的条件判断。
50
学习方法建议
现封装成独立的函数。
2024/1/25
48
07
课程总结与回顾
2024/1/25
49
关键知识点总结
选择结构的概念和作用
选择结构是程序设计中的一种基本控制结构,用 于根据条件选择不同的执行路径。
条件运算符和表达式
条件运算符包括关系运算符和逻辑运算符,用于 构建条件表达式。关系运算符用于比较两个值的 大小关系,逻辑运算符用于组合多个条件。
借助编程环境和工具,引导学生进行 实践操作和自主探索。
提供丰富的教学资源和素材,如课件 、案例、习题等,以支持学生的自主 学习和巩固提升。
6
02
选择结构基本概念
2024/1/25
7
选择结构定义及作用
定义
选择结构是程序设计中一种重要的控 制结构,它根据给定的条件进行判断 ,从而决定执行哪一段代码。

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

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语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。

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

04-选择结构-程序设计基础-罗兵-清华大学出版社

04-选择结构-程序设计基础-罗兵-清华大学出版社

// 定义变量 // 输入
// 分支判断
// 分支语句
// 输出
两分支选择结构程序举例
修改办法1:
int main(void) { double x,y,max,min;
cin>>x>>y; if(x>y) { max=x; min=y; } else { max=y; min=x; } cout<<max<<", "<<min; return 0; }
程序设计基础
第4章 程序的选择结构
思考题
1 如何编写程序:求输入实数 x 的绝对值?
2 编程实现深度网络中的激发函数ReLU函数:

y
0 x
, ,
(x (x
0) 0)
.
3 编程实现转换:根据下面的规则将百分制分数
score转换为相应的等级 rank描述:

rank
良 中
及格
不及格
90 score 80 score 90 70 score 80 60 score 70 score 60 .
cout<<year<<" is a leap year.";
else
// 分支语句
cout<<year<<" is a common year.";
return 0;
}
4.2 单分支选择结构
表达式 为真
假(0)
真(非0)
语句
单分支结构的程序流程图
if(表达式) {
语句序列1; } else
语句2或{复合语句};

选择结构程序设计

选择结构程序设计

选择结构程序设计选择结构程序设计在程序设计中,选择结构是一种非常重要的控制结构。

通过选择结构,我们可以根据程序的运行情况来决定执行不同的代码块。

选择结构能够实现条件判断和分支选择,为程序的灵活性和可扩展性提供了极大的便利。

本文将介绍选择结构的概念、语法和几种常用的选择结构程序设计方法。

选择结构的概念选择结构是指程序根据不同的条件执行不同的代码块。

在选择结构中,通常会使用条件判断来确定程序执行的路径。

根据条件表达式的返回值(真或假),程序会决定执行真值分支(True branch)或者假值分支(False branch)。

选择结构的出现可以使程序更具有灵活性和可扩展性。

选择结构的语法在大多数编程语言中,选择结构通常有两种形式:`if`语句和`switch`语句。

if语句`if`语句是最基本的选择结构语句。

它可以根据某个条件的真假来执行不同的代码块。

`if`语句的语法如下:```markdownif (condition) {// 如果条件为真,执行这里的代码块} else {// 如果条件为假,执行这里的代码块}```其中`condition`是一个条件表达式,它能够返回一个布尔值(真或假)。

如果`condition`为真,程序会执行`if`后面的代码块;如果`condition`为假,程序会执行`else`后面的代码块。

switch语句`switch`语句是另一种常用的选择结构语句。

它可以根据一个表达式的值,选择性地执行多个代码块中的一个。

`switch`语句的语法如下:```markdownswitch (expression) {case value1:// 如果`expression`的值等于`value1`,执行这里的代码块break;case value2:// 如果`expression`的值等于`value2`,执行这里的代码块break;default:// 如果`expression`的值不等于任何一个`case`中的值,执行这里的代码块break;}````expression`是一个表达式,它的值和`case`后面的值进行比较。

选择结构程序设计

选择结构程序设计

4.1 选择结构 4. 1 If…Then语句(单分支结构)
If <表达式> Then 语句块 End If 或 If <表达式> Then <语句> 例:已知两个数x和y,比较它们的 大小,使得x大于y。 If x<y Then t=x : x=y: y=t End If 或 If x<y Then t=x: x=y: y=t
图 1-3-8 过程 两个数交换
x

y

t

4.2 If…Then…Else语句(双分支结构) If <表达式> Then <语句块1> Else <语句块2> End If
双分支选择结构执行过程
If <表达式> Then <语句1> Else <语句2>
例如:输出x,y两个中值较大的一个值。 IF X>Y Then Print X Else Print Y End If 也可以写成如下的单行形式: IF X>Y Then Print X Else
注意:
对于多层IF嵌套结构中,要特别注意IF与Else的配 对关系,一个Else必须与IF配结,配对的原则是:在写 含有多层嵌套的程序时,建议使用缩进对齐方式,这样
容易阅读和维护。
4.4 选择结构的嵌套 在IF语句的Then分支和Else分支中可以完整地嵌套另 一IF语句或Select Case语句,同样Select Case语句每一个 Case分支中都可嵌套另一IF语句或另一Select Case语句。 下面是两种正确的嵌套形式:
(1)IF <条件1> Then ….. if <条件2> Then …… Else ….. End If …. Else …. IF <条件3> Then ….. Else ….. End If ….. End IF (2)IF <条件1> Then ….. Select Case … Case …… IF <条件1> Then …… Else ….. End If …… Case…. ….. End Select …. End IF

C语言程序设计第4章

C语言程序设计第4章
技能目标
能够使用if语句和switch语句,进行 选择结构程序设计 会利用多分支结构解决较复杂逻辑 判断问题
目录
CONTENTS
00 案例4 百分制转换等级制 01 4.1 选择结构判定条件的构成 02 4.2单分支和双分支选择结构程序设计 03 4.3 多分支选择结构程序设计
目录
CONTENTS
04 4.4 小结 05 4.5 拓展案例
案例4 百分制转换等级制
问题描述
学生成绩管理系统中需要对老师录入的百分制转换为等 级制。百分制与等级制的对应关系如下:90-100 对应A、 80-89对应B、70-79对应C、60-69对应D、0-59对应E。
问题分析
这是一个需要根据不同条件作出相应选择的程序,根据 描述,我们可以定义float变量fScore用来存放成绩值, 从而根据题目列出下列条件表达式: fScore>=90&&fScore<=100 your grade is A fScore>=80&&fScore<=89 your grade is B fScore>=70&&fScore<=79 your grade is C fScore>=60&&fScore<=69 your grade is D fScore>=0&&fScore<=59 your grade is E
4.4 小结
(1)嵌套if-else语句和switch语句都是用来实现多分支选择结构的,它们的 应用环境不同,嵌套if-else 语句用于对多条件并列测试,从中取一的情形; switch语句用于单条件测试,从其多种结果中取一种的情形。 (2)一般情况下用switch能解决的问题,用嵌套if-else 也一样能解决,反 之用嵌套if-else 语句能解决的问题用switch也能解决,在使用时要根据具体 问题灵活运用。 (3)如果多分支选择结构中需要判断的逻辑关系只是是否相等,则最好用 switch语句。switch语句的执行效率高于嵌套if-else语句。

第04章 C程序设计

第04章 C程序设计

2.逻辑运算符的运算优先级 (1)逻辑非的优先级最高,逻辑与次之,逻辑或最低, 即: !(非) → &&(与) → ||(或) (2)与其它种类运算符的优先关系 !→ 算术运算 → 关系运算 → &&→ || → 赋值运算 4.2.2 逻辑表达式 1.逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达 式连接起来,进行逻辑运算的式子。在c语言中,用逻辑表 达式表示多个条件的组合。 例如,(year%4==0)&&(year%100!=0)||(year%400==0)就 是一个判断一个年份是否是闰年的逻辑表达式。
程序运行情况如下: Please input three numbers:11,22,18↙ Three numbers after sorted: 11,18,22
1.if语句的一般格式
if(表达式) {语句组1;} [else {语句组2;} ] (1)if语句中的“表达式”必须用“(”和“)”括起来。 (2)else子句(可选)是if语句的一部分,必须与if配对使用,不 能单独使用。 (3)当if和else下面的语句组,仅由一条语句构成时,也可不使 用复合语句形式(即去掉花括号)。
main() {int year,leap=0; /* leap=0:预置为非闰年*/ printf("Please input the year:"); scanf("%d",&year);
if (year % 4==0) {if (year % 100 != 0) leap=1;} else {if (year%400==0) leap=1; } if (leap) printf("%d is a leap year.\n",year); else printf("%d is not a leap year.\n",year);

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。

#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。

C语言程序设计教程:选择结构程序设计

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

2013-8-7
19
#include "stdio.h" #include "conio.h" void main() { int year; printf("Please input a year:"); scanf("%d", &year); if ((year % 4 == 0) && (year % 100 != 0) | | (year % 400 == 0)) /*闰年*/ printf("%d is a leap year.\n", year); else /* 非闰年*/ printf("%d is not a leap year.\n", year); getch(); }
2013-8-7
27
1.一般形式
switch( 表达式 ) { case 常量表达式1:语句组1;[break; ]
case 常量表达式2:语句组2;[break; ]
...... case 常量表达式n:语句组n ;[break; ] [default:语句组n +1;] }
2013-8-7
28
例如: if (num1 > num2)
max = num1 ; else max = num2 ; [返回]
2013-8-7 25
4.4*
switch语句
[案例4.4] 将1个百分制成绩score,按下列原则输 出其等级:score>=90,A;80<=score<90,B;70<= score<80,C;60≤score<70,D;score<60,E。
[案例4.2]编写一程序, 判断一个年份year(4位 十进制数)是否闰年。
闰年的条件是:能被4整除、但不能被100整除, 或者能被400整除。
2013-8-7
18
算法设计要点: (1)如果X能被Y整除,则余数为0,即如果X % Y = 0,则表示X能被Y整除。 (2)根据闰年的条件可知: ①“能被4整除、但不能被100整除” 表示为: (year % 4 == 0) && (year % 100 != 0); ②“能被400整除” 表示为:year % 400 == 0; ③两个条件之间是逻辑或的关系:( (year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)。
4.4* switch语句
4.5 选择结构程序设计
本章要点
本章作业与上机实践
2013-8-7 2
4.1
关系运算及其表达式
关系运算——将两个数据进行比较,判定是否符 合给定的关系。 例如,“a > b”中的“>”,表示一个大于关系: ●如果a=5、b=3,则大于关系成立; ●如果a=2、b=3,则大于关系不成立。
2013-8-7
3
4.1.1 关系运算符及其优先次序 1.关系运算符 <(小于), <=(小于等于), >(大于), >=(大于等于) ==(等于), !=(不等于)
不是 “= ”
2.与其它种类运算符的优先关系
算术运算符 → 关系运算符 → 赋值运算符 思考:在混合运算时,如何增强程序可读性(明 确运算的优先关系)?
2013-8-7
13
②对于逻辑或运算,如果第1个对象被判定为 “逻辑真”,系统不再计算第2个对象。 思考:假设n1、n2、n3、n4、x、y的值分别为1、 2、3、4、1、1,求解表达式“(x = n1 > n2) && (y = n3 > n4)”后,x、y的值=?
2013-8-7
14
答案: x=0,y=1 分析: (1) n1 > n2: = 0 (2) x = n1 > n2 :x = 0
2013-8-7
20
1.if语句的一般格式 if ( 表达式 ) { 语句组1; } [else { 语句组2; } ]
必须用“(”和“)”括起 来 语句组仅由一 条语句构成时,也 可不使用复合语句 形式(即去掉花括号)
if语句的一部分, 必须与if配对使用。
2013-8-7
21
2.if语句的执行流程 (1)缺省else子句( 图4.1 ) 当“表达式”的值: 非0(逻辑真) ,执行语句组 1;否则,直接转向执行下 一条。 例如,[案例4.1]。
2013-8-7
12
4.说明 (1)运算对象的数据类型:除整型外,也可以是实 型、字符型等其它任何类型数据。 (2)子表达式计算:只有在必须计算下一个子表达 式才能求解时,才计算;否则,不再计算。
换句话说:
①对 于 逻 辑 与 运算 , 如果 第 1个 对 象 被判定 为 “逻辑假”,系统不再计算第2个对象(因为无论真假,都 不影响整个表达式的结果)。
运算口诀:同时为假才为假,否则为真。
2013-8-7
8
(3) ! :当运算对象的值为“逻辑真”时,结果 为“逻辑假”;当运算对象的值为“逻辑假”时, 结果为“逻辑真”。 运算口诀:取反。
2013-8-7
9
4.2.2 逻辑表达式 1. 概念——用逻辑运算符,将若干表达式连接 起来的式子。 例如,逻辑表达式(year%4= =0) && (year%100!=0) || (year%400= =0),判断year是否闰年。 2.逻辑表达式的值——逻辑真 /逻辑假
(3) (x = n1 > n2) := 0
(4) &&:(y = n3 > n4) 不再计算,y保持原值,即 y=1。 [返回]
2013-8-7
15
4.3*
if语句
[案例4.1] 输入3个整数num1、num2、num3, 求最大值。 算法设计要点: (1) 任取一个数预置为max(最大值); (2) 用其余的数num依次与max比较:如果num > max,则max ← num 。 比较完所有的数后,max中的数就是最大值。
(2)如果没有任何一个case后面的“常量表达式” 的值,与“表达式”的值匹配,则执行default 后面 的语句(组)。 然后,再执行switch语句的下一条。
2013-8-7
30
3.执行流程——缺省break语句 case后面的常量表达式仅起语句标号作用,并不 进行条件判断。 缺省break语句时,系统一旦找到入口标号,就 从此标号开始执行,不再进行标号判断,其执行流程 如下图所示:
2013-8-7 23
3.if语句的嵌套匹配原则
(1) if语句的嵌套——在“语句组1”或(和)“语句 组2”中,又包含有if语句的情况。 (2)else子句与if的匹配原则:与在它上面、距它 最近、且尚未匹配的if配对。
建议:将内嵌的if语句,一律用花括号括起来。
2013-8-7
24
4.说明 (1)if后面的“表达式”:除关系(逻辑)表达式外, 也允许是整型、实型、字符型等其它类型的数据。 (2)在语句组1和语句组2中,每个语句后面的分 号不可少!
/* max = max{num1, num2 } */
if (num3 > max) max = num3; printf("The three numbers are:%d,%d,%d\n",num1,num2,num3); printf("max=%d\n",max); getch(); }
2013-8-7 17
图4.1 if语句的执行流程(a) 表达式 非0(真) 语句组1 0(假)
2013-8-7
22
(2)指定else子句(图4.2 )
非0(真)
表达式
0(假)
语句组1
语句组2
图4.2 if语句的执行流程(b)
当“表达式”的值:非0(逻辑真),执行语句组1, 然后跳过语句组2,转向下一条语句;否则,执行语句 组2。 例如,[案例4.2]。
(year%4= =0) && (year%100!=0) | | (year%400= =0)
2013-8-7
7
2. 运算规则 (1)&&:当且仅当两个运算对象的值都为“逻 辑真”时,结果为“逻辑真”,否则为“逻辑假”。 运算口诀:同时为真才为真,否则为假。 (2) || :当且仅当两个运算对象的值都为“逻辑 假”时,结果为“逻辑假”,否则为“逻辑真”。
#include "stdio.h" #include "conio.h" void main() { int score, grade; printf(“Input a score(0~100): ”); scanf(“%d”, &score); grade = score / 10; /*将成绩整除10,转化成case标号*/
2013-8-7
6
4.2
逻辑运算及其表达式
关系表达式只能描述单一条件。如果需要同时 描述多个条件时,就要借助于逻辑表达式。 4.2.1 逻辑运算及其优先次序 1.逻辑运算符 &&:逻辑与(相当于“同时”) || :逻辑或(相当于“或者”) ! :逻辑非(相当于“否定”) 例如:(x>=0) && (x<10) ,(x<1) || (x>5) ,! (x= =0),
2013-8-7
26
switch (grade) {case 10: case 9: printf("grade=A\n"); break; case 8: printf("grade=B\n"); break; case 7: printf("grade=C\n"); break; case 6: printf("grade=D\n"); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(“grade=E\n”); break; default: printf(“The score is out of range!\n”); } getch(); }
相关文档
最新文档