第四章 选择结构程序设计 计算机科学学院.

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

10.2.switch语句.
5 选择结构.
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
C程序设计 第4章 选择结构程序设计 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第3章 运算符和表达式 3.2 表达式与表达式的 3.1 运算符与运算符的 计算 分类 表达式 --1.算术运算符
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第五章 选择结构程序设计 信息管理系.
第4章 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的 如果你在家,我去拜访你 如果考试不及格,要补考
第4章 选择结构程序设计 二分支选择结构 多分支选择结构 P A B 真 假 k A1 A2 Ai An k=k2 k=k1 k=kn
程序设计基础.
C语言程序设计 第五章 选择结构程序设计.
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
第4章 选择结构程序设计.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
第2章 分支结构 P if语句 2.2 switch语句 2.3 用条件运算符转换大小写字母 2.4 程序举例
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
C程序设计.
第五章 选择结构程序设计 一、关系运算符和表达式 1、关系运算符 在程序中经常需要比较两个量的大小关系, 以决定程序下一步
第3章 C语言的基本语句 和程序结构设计.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
走进编程 程序的顺序结构(二).
第4章 选择结构程序设计 4.1 关系表达式和逻辑表达式 关系表达式 1.关系运算符 关系运算符是比较两个操作数大小的符号。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Chap 3 分支结构 3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计.
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
C语言程序设计基础 刘新国.
第五章 循环结构的C程序设计 5.1 while循环语句 5.2 do-while循环语句 5.3 for循环语句 5.4 多重循环
第二章 Java语言基础.
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
目录 4.1选择结构程序设计的概述 4.2关系运算符和表达式 4.3逻辑运算符和表达式 4.4用if语句实现选择结构程序设计
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
C程序设计.
几种基本语句 条件语句 广州市63中 岑光.
第4章 Excel电子表格制作软件 4.4 函数(一).
第4章 选择结构程序设计 要设计选择结构程序,要考虑两个方面的问题:一是在C语言中如何来表示条件,二是在C语言中实现选择结构用什么语句。
第九节 赋值运算符和赋值表达式.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第四章 选择结构程序设计 计算机科学学院.
学习目标 1、了解基本运算符 2、运算符优先级.
第4章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 4.1 格式化输出——printf()函数 4.2 格式化输入——scanf()函数.
第二章 Java基本语法 讲师:复凡.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第二章 Java基本语法 讲师:复凡.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第四章 分支结构的C程序设计 4.1 if语句 4.2 switch语句 4.3 程序举例.
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
第二章 Java基本语法 讲师:复凡.
输入语句 输出语句 赋值语句 条件语句 循环语句
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
选择结构又称为分支结构。 在选择结构程序设计中,根据条件的判断情况需要选择不同的语句组执行。 选择结构类型:
多重條件選擇敘述
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
鸡兔同笼(续) ——选择结构.
Java程序设计 第3章 控制语句.
1.2.2条件语句.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Presentation transcript:

第四章 选择结构程序设计 计算机科学学院

本章内容: 4.1 关系运算及其表达式 4.2 逻辑运算及其表达式 4.3 if语句 4.4 switch语句 4.5 选择结构程序举例 4.1 关系运算及其表达式 4.2 逻辑运算及其表达式 4.3 if语句 4.4 switch语句 4.5 选择结构程序举例 请做练习

4.1 关系运算及其表达式 所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。

4.1.1 关系运算符及其优先次序 1.关系运算符 C语言提供6种关系运算符: < <= > >= == != 4.1.1 关系运算符及其优先次序 1.关系运算符 C语言提供6种关系运算符: < <= > >= == != 注意:在C语言中,“等于”关系运算符是双等号“= =”,而不是单等号“= ”(赋值运算符)。

< <= > >= == != 4.1.1 关系运算符及其优先次序 < <= > >= == != 2.优先级 (1)在关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。 (2)与其它种类运算符的优先级关系 关系运算符的优先级,低于算术运算符,但高于赋值运算符。

4.1.2 关系表达式 1.关系表达式的概念 合法 所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。 4.1.2 关系表达式 1.关系表达式的概念 所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。 例如: 下面的关系表达式都是合法的: a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b',(a>b)= =(b>c) 合法

2.关系表达式的值——逻辑值(非“真”即“假”)。 C语言没有逻辑型数据,用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。 4.1.2 关系表达式 2.关系表达式的值——逻辑值(非“真”即“假”)。 C语言没有逻辑型数据,用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。 由于上述原因,关系表达式的值还可以参与其它种类的运算,例如算术运算、逻辑运算等。

(2)(num1>num2)!=num3的值 (2)(num1>num2)!=num3的值 1 (3)num1<num2<num3的值 1 思考题:任意改变num1或num2的值,会影响整个表达式 的值吗?为什么? (4)(num1<num2)+num3 6 返回

4.2 逻辑运算及其表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。

(year%4==0)&&(year%100!=0)||(year%400==0) 4.2.1 逻辑运算及其优先次序 1.逻辑运算符及其运算规则 (1)C语言提供三种逻辑运算符: && || ! 例如,下面的表达式都是逻辑表达式: (x>=0) && (x<10) (x<1) || (x>5) ! (x= =0) (year%4==0)&&(year%100!=0)||(year%400==0)

例如,假定x=5,则(x>=0) && (x<10)的 值为“真”,(x<-1) || (x>5)的值为“假”。 4.2.1 逻辑运算及其优先次序 (2)运算规则 1)&&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。 2) || :当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。 3) ! :当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。 例如,假定x=5,则(x>=0) && (x<10)的 值为“真”,(x<-1) || (x>5)的值为“假”。

4.2.1 逻辑运算及其优先次序 2.逻辑运算符的运算优先级 (1)逻辑非的优先级最高,逻辑与次之,逻辑或最低,即: ! → && → || (2)与其它种类运算符的优先关系 !→ 算术运算 → 关系运算 → &&→ || → 赋值运算

4.2.2 逻辑表达式 1.逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将关系表达式或逻辑量连接起来的式子。在C语言中,用逻辑表达式表示多个条件的组合。 逻辑表达式的值也是一个逻辑值(非“真”即“假”)。

num>=1 && num<=31的值为 4.2.2 逻辑表达式 2.逻辑量的真假判定──0和非0 C语言用整数“1”表示“逻辑真”、用“0”表示“逻辑假”。但在判断一个数据的“真”或“假”时,却以0和非0为根据:如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。 练习:假设num=12,则: !num的值为? num>=1 && num<=31的值为 1 num || num>31的值为 1

4.2.2 逻辑表达式 3.说明 (1)逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。 4.2.2 逻辑表达式 3.说明 (1)逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。 (2)在计算逻辑表达式时,并不是所有的表达式都被求解,只有在必须执行下一个表达式才能求解时,才求解该表达式。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值变为0,而y的值不变,仍等于1! 返回

4.3 if语句和条件表达式 4.3.1 if语句 4.3.2 if语句的嵌套 4.3.3 条件运算符 返回

4.3.1 if 语句 if语句的形式 形式1:if (表达式) 语句; 表达式 N Y 语句

4.3.1 if 语句 if语句的形式 形式2:if (表达式) 语句1 else 语句2; Y 表达式 N 语句1 语句2

4.3.1 if语句 if语句的形式 形式3:if (表达式1) 语句1; else if (表达式2) 语句2; …… else if (表达式m) 语句m; else 语句n;

N 表达式1 表达式2 N Y 表达式3 N Y N 表达式4 Y Y 语句1 语句2 语句3 语句4 语句5

4.3.1 if语句 if语句的形式 说明: (1)表达式一般为关系表达式或逻辑表达式,也允许是其它类型的数据,如,整型、实型、字符型等,若表达式的值为0,则按假来处理,若表达式的值为非0,则按真来处理。 (2)第2、3种形式的if语句,每个else前都有一个分号,else必须和if配套使用。 (3)“语句1”和“语句2”,可以只包含一个简单语句,也可以是复合语句。

4.3.1 if 语句 算法: 1.输入三个数。 2.从前两个数中选最大的赋值给max。 [例4-1] 输入任意三个整数n1、n2、n3,求三个数中的最大值。 算法: 1.输入三个数。 2.从前两个数中选最大的赋值给max。 3.将max与第三个数n3比较,若n3的值大于max,则将其值赋给max。 4.输出max。 请依据算法画出流程图

scanf("%d,%d,%d",&n1,&n2,&n3); 试写程序 给n1、n2、n3 输入数值 scanf("%d,%d,%d",&n1,&n2,&n3); if (n1>n2) max=n1; else max=n2; Y N n1>n2 max=n1 max=n2 N if (n3>max) max=n3; n3>max Y max=n3 printf("max=%d\n",max); 输出max 查看完整程序

4.3.1 if语句 [例4-1] 输入任意三个整数n1、n2、n3,求三个数中的最大值。 #include “stdio.h” void main() { int n1,n2,n3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&n1,&n2,&n3); if (n1>n2) max=n1; else max=n2; if (n3>max) max=n3; printf("The three numbers are:%d,%d,%d\n",n1,n2,n3); printf("max=%d\n",max); } 演示程序

如果n1<n2,交换n1和n2的值,如何交换呢? 4.3.1 if语句 [例4-2]输入任意三个数n1、n2、n3,按从大到小的顺序排序输出。 算法: 1.输入三个数。 2.从n1和n2两个数中选较大的赋值给n1 ,较小的赋值给n2。 3.从n2和n3两个数中选较大的赋值给n2 ,较小的赋值给n3。 4.从n1和n2两个数中选较大的赋值给n1 ,较小的赋值给n2。 5.输出n1、n2、n3。 如果n1<n2,交换n1和n2的值,如何交换呢?

if (n2<n3) {temp=n2;n2=n3;n3=temp;} 输入数值 n1<n2 n #include “stdio.h” void main() { int n1,n2,n3,temp; printf("Please input three numbers:"); scanf("%d,%d,%d",&n1,&n2,&n3); if (n1<n2) {temp=n1;n1=n2;n2=temp;} if (n2<n3) {temp=n2;n2=n3;n3=temp;} printf("Three numbers after sorted: %d,%d,%d\n",n1,n2,n3); } scanf("%d,%d,%d",&n1,&n2,&n3); y 交换n1和n2的值 if (n1<n2) {temp=n1;n1=n2;n2=temp;} n n2<n3 交换n2和n3的值 if (n2<n3) {temp=n2;n2=n3;n3=temp;} y if (n1<n2) {temp=n1;n1=n2;n2=temp;} n1<n2 交换n1和n2的值 n printf("%d,%d,%d\n",n1,n2,n3); y 输出n1、n2、n3 演示程序 返回

4.3.2 if语句的嵌套 if语句的嵌套与嵌套匹配原则 if语句允许嵌套。所谓if语句的嵌套是指,在“语句1”或(和)“语句2”中,又包含有if语句的情况。 if语句嵌套时,else子句与if的匹配原则:与在它上面、距它最近、且尚未匹配的if配对。

4.3.2 if语句的嵌套 [例4-3] 有一个函数: 编写一个程序,输入x的值,输出y的值。 Y= -1 1 x<0 x=0 1 x<0 x=0 x>0

4.3.2 if语句的嵌套 算法1: 1.输入x。 2.若x<0,y=-1; 3.若x=0,y=0; 4.若x>0,y=1; n 算法1: 1.输入x。 2.若x<0,y=-1; 3.若x=0,y=0; 4.若x>0,y=1; 5.输出y。 y Y=-1 n x=0 y=0 y x>0 y=-1 n y 请同学们自己写出程序。 输出y

4.3.2 if语句的嵌套 算法2: 1.输入x。 2.若x<=0, 若x<0,则y=-1; 否则, y=0; 否则,y=1; N x<=0 Y N x<0 y=1 y=-1 y=0 输出y 请同学们写出程序……

4.3.2 if语句的嵌套 #include “stdio.h” 查看程序 void main( ) { int x,y; scanf(“%d”,&x); if (x<=0) if (x<0) y=-1; else y=0; else y=1; printf(“y=%d”,y); } 查看程序 你写对了吗?请思考,本例还有哪些算法? 演示程序 返回

4.3.3 条件表达式 1.一般格式: 表达式1?表达式2:表达式3 4.3.3 条件表达式 1.一般格式: 表达式1?表达式2:表达式3 条件表达式中的“表达式1”、“表达式2”、“表达式3”的类型,可以各不相同。

4.3.3 条件表达式 2.运算规则 如果“表达式1”的值为非0(即逻辑真), 则运算结果等于“表达式2”的值;否则,运算结果等于“表达式3”的值。 3.运算符的优先级与结合性 条件运算符的优先级,高于赋值运算符,但低于关系运算符和算术运算符。其结合性为“从右到左”(即右结合性)。

4.3.3 条件表达式 [例4-4] 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。 输入字符ch 4.3.3 条件表达式 [例4-4] 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。 输入字符ch If (ch>='A' && ch<='Z') Ch=ch+32; ch=(ch>='A' && ch<='Z') ? (ch+32) : ch; y Ch为大写字母 n 转换为小写字母 输出ch

4.3.3 条件表达式 #include “stdio.h” void main() { char ch; 4.3.3 条件表达式 #include “stdio.h” void main() { char ch; printf("Input a character: "); scanf("%c",&ch); ch=(ch>='A' && ch<='Z') ? (ch+32) : ch; printf("ch=%c\n",ch); } 返回 演示程序

4.4 switch语句 1.switch语句的一般形式 switch(表达式) { case 常量表达式1:语句组;[break;] ...... case 常量表达式n:语句组;[break;] [default:语句组;[break; ]] }

4.4 switch语句 2.执行过程 (1)当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。 (2)如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch语句的下一条。

4.4 switch语句 3.说明 (1)switch后面的“表达式”,可以是int、char和枚举型中的一种。 (2)每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。 (3)case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。

4.4 switch语句 (4)各case及default子句的先后次序,不影响程序执行结果。 (5)用switch语句实现的多分支结构程序,完全可以用if语句或if语句的嵌套来实现。

4.4 switch语句 [例4-5] 从键盘上输入一个百分制成绩score,按下列原则输出其等级: score≥90,等级为A; 80≤score<90,等级为B; 70≤score<80,等级为C; 60≤score<70,等级为D; score<60,等级为E。 本题算法: 1.用if语句实现。(请同学们思考……) 2.用if的嵌套实现。 (请同学们思考……) 3.用switch语句实现。

思考:如果去掉本程序中的所有break语 4.4 switch语句 main() {int score, grade; printf(“Input a score(0~100): ”); scanf(“%d”, &score); grade = score/10; /*将成绩整除10,转化成switch语句中的case标号*/ 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”); } } 思考:本语句有何作用? 演示程序 思考:如果去掉本程序中的所有break语 句,且输入的成绩为75,输出会如何? 返回

4.5 选择结构程序设计举例 [例4-6]写一程序,从键盘上输入1年份year(4位十进制数),判断其是否闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。 [例4-7] 求一元二次方程ax2+bx+c=0的解(a≠0)。 [例4-8] 已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下(计量单位:元): profit≤1000 没有提成; 1000<profit≤2000 提成10%; 2000<profit≤5000 提成15%; 5000<profit≤10000 提成20%; 10000<profit 提成25%。 返回

4.5 选择结构程序设计举例 [例4-6] 输入year 判断year是否 为闰年 Year mod 4==0 4.5 选择结构程序设计举例 [例4-6] Year mod 4==0 Year mod 100==0 Year mod 400==0 Leap=1 Leap=0 y n 输入year 判断year是否 为闰年 输出判断结果

4.5 选择结构程序设计举例 main() {int year,leap=0; /* leap=0:预置为非闰年*/ 4.5 选择结构程序设计举例 main() {int year,leap=0; /* leap=0:预置为非闰年*/ printf("Please input the year:"); scanf("%d",&year); if (year % 4==0) { if (year % 100 == 0) { if (year % 400 == 0) leap=1; else leap=0; } else leap=1; } else leap=0; if (leap) printf("%d is a leap year.\n",year); else printf("%d is not a leap year.\n",year); } 注意这里的用法。 返回 演示程序

a=0 真 假 b2-4ac=0 假 真 b2-4ac>0 输出 两个 相等 的实 根 真 假 输出 “非二次 方程” 复根: 实部: [例4-7] a=0 真 假 b2-4ac=0 假 真 b2-4ac>0 输出 两个 相等 的实 根 真 假 输出 “非二次 方程” 复根: 实部: 虚部: 输出两个复根: p+qi,p-qi 输出两个实根: x1,x2

printf(“x1=x2=%7.2f\n”, -b/(2*a)); [例4-7] #include "math.h" main() {float a,b,c,disc,x1,x2,p,q; scanf(“%f,%f,%f”, &a, &b, &c); disc=b*b-4*a*c; if (fabs(disc)<=1e-6) printf(“x1=x2=%7.2f\n”, -b/(2*a)); else { if (disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("x1=%7.2f,x2=%7.2f\n", x1, x2); } else {p=-b/(2*a); q=sqrt(fabs(disc))/(2*a); printf(“x1=%7.2f + %7.2f i\n“, p, q); printf(”x2=%7.2f - %7.2f i\n“, p, q); } } } 演示程序 返回

[例4-8] 演示程序 返回 main() {long profit; int grade; float salary=500; printf("Input profit: "); scanf("%ld", &profit); grade= (profit – 1) / 1000; switch(grade) { case 0: break; case 1: salary += profit*0.1; break; case 2: case 3: case 4: salary += profit*0.15; break; case 5: case 6: case 7: case 8: case 9: salary += profit*0.2; break; default: salary += profit*0.25; } printf("salary=%.2f\n", salary); [例4-8] 演示程序 返回

练习题: 1.以下程序段中不能根据x的值正确计算出y的值的是______。 A) if(x>0) y=1;else if(x==0) y=0;else y=-1; B) y=0;if(x>0) y=1;else if(x<0) y=-1; C) y=0;if(x>=0)if(x>0) y=1;else y=-1; D) if(x>=0) if(x>0) y=1;else y=0;else y=-1; C

练习题: 2.有以下程序 main() { int a=15,b=21,m=0; switch(a%3) { case 0: m++;break; case 1: m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(“%d\n”,m); } 程序运行后的输出结果是______。 A) 1 B) 2 C) 3 D) 4 A 返回