第5章 选择结构程序设计1
大学计算机基础第5章
时期 阶段
任务
文档
需求分析 系统的目标及应完成的工作 需求规格说明书
开发
总体设计 软件设计
详细设计 软件编码 编写程序代码
总体设计说明书 详细设计说明书 程序、数据注释
黑盒测试、白盒测试、单元 测试后的软件、
软件测试 测试、集成测试、确认测试、大纲、方案与结
系统测试
果
运行 软件维护 运行和维护
维护后的软件
1)软件生命周期模型:是描述软件开发过程 中各种活动如何执行的模型。 2)常见的软件生命周期模型有:瀑布模型、 增量模型、螺旋模型、喷泉模型、变换模型及 基于知识的模型等。
上图是软件生存周期的瀑布模型。
5、软件工具与软件开发环境
软件工具:就是帮助开发软件的软件。 软件开发环境(或称软件工程环境):是全面支 持软件开发全过程的软件工具的集合,这些软 件工具按照一定的方法和模式组合起来,共同 支持软件生命周期内的各个阶段和各项任务的 完成。
结构化方法的软件开发过程
软件计划后 结构化分析
结构化设计
编码并测试 结构化程序设计
面向对象方法的软件开发过程
软件计划后 面向对象分析
面向对象设计
软件测试 面向对象编程
1、结构化分析方法
1)结构化分析(简称SA)方法是面向数据流 进行需求分析的方法。该方法使用简单易读 的符号,运用抽象的概念模型,根据软件内 部数据传递、变换的关系,自顶向下逐层分 解,描绘出满足功能要求的软件模型
DFD图的数据流可分为两种类型:变换流和事务流 变换流:信息沿着输入通路进入系统,同时将信息的外
部形式转换成内部形式,通过变换中心处理之 后,再沿着输出通路转换成外部形式输出 事务流:信息沿着输入通路到达一个事务中心,事务中 心根据输入信息的类型在若干个动作序列中选 择一个来执行,这种信息流称为事务流
第5章 选择结构程序设计
通过例5.4和5.5,会注意到:无论是块If单分支结构还是块If双分支结构,均 把程序执行过程分为满足条件的一支和不满足条件的另一支,但在应用中会遇 到类似下面的问题或更复杂的情况,例如,分段函数: x2 1 x>0 y 0 x=0 2 x<0 x 1
自变量x的取值分为三种情况,对应函数y有不同的计算表达式。此类问题 可以使用三个块IF单分支结构完成;也可以使用块IF双分支结构。若采用前 者,读者可仿照例5.4完成;若采用后者,可先把x的取值分为“等于0”和 “不等于0”两种情况,再把“不等于0”这种情况分成“大于0”和“小于0”两种 情况,代码如下: Dim x As Single, y As Single x = Val(InputBox("请输入变量的值")) If x <> 0 Then If x > 0 Then ' 不等于0的情况之一 y=x^2+1 Else ' 不等于0的情况之二 y=x^2-1 End If
2 2
Dim x As Single, y As Single ' 声明x,y为单精度变量 x = Val(InputBox("请输入变量的值")) ' 输入x的值 If x >= 0 Then ' x>=0时计算y y=x^2+1 End If If x < 0 Then ' x<0时计算y y=x^2-1 End If Print "x="; x, "y="; y 该代码段根据x取值的两种情况,分别计算出相应的y值,一个单分支If 结构完成一种情况的计算,因此结构简单,容易理解,但程序不够简练。
真
语句组1
机器人程序设计(C语言)(第2版)章节练习题及参考答案
第一章一种新的C语言学习方式1.一台能够工作的计算机包括?CPU (Central Processing Unit,中央处理单元,进行运算和控制,包括运算器和控制器等)、存储器(如RAM、ROM等)、输入设备、输出设备(包括串行/并行接口、USB等)。
其中,RAM (RandomAccess Memory,随机存储器)主要用于存储数据,ROM (RcadOnlyMemory, 只读存储器)主要用于存储程序。
2.单片机工作时需要什么?需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机工作时需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。
微控制器是将单片机独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等封装到一个模块上,这样就能直接与计算机连接并进行编程开发,不需任何其他芯片和电路。
3. AT89S52是一种什么样的单片机?是一种高性能、低功耗的8位单片机,内含8 KBISPdn-System Programmable系统在线编程)可反复擦写IOOO次的Flash只读程存器,采用ATMEL公司的高密度非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。
在实际工程应用中,功能强大的AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。
4. Progisp是一款什么样的软件?是一款免费下载的ISP软件,不需要专门的安装即可使用,非常方便。
使用该软件,读者可以将C语言程序生成的可执行文件下载到机器人单片机上。
使用时需要1根USBA转B 信号线。
5.简述串口调试工具的特点。
串口调试工具就是串行通信接口调试软件,集数据发送、数据接收、数据监控、数据分析等功能于一身,具有小巧精致、操作简捷、功能强大的特点,可以在串口通信监控、设备通信测试工作中有效提高效率。
6. pr i ntf ()函数称为?称为格式输出函数,其功能是按用户指定的格式,把指定的数据输出显示。
Print ()函数是C语言提供的标准输出函数,定义在C语言的标准函数库中,要使用它,必须包括定义标准函数库的头文件stdio. h o第二章最简单的C程序设计——机器人做算数1. C语言用什么整型变量?C语言用关键字imt定义整型变量。
c语言(第五章选择结构) c语言 教学课件
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
c语言选择结构教案
输出y的值
3、if语句
if语句的三种形式:单分支选择if语句、双分支 选择if语句、多分支选择if语句。 1)单分支选择if语句 语句形式: if (表达式) 语句; 例:if(x>y)printf(“%d”,x); 语句执行流程: 假(0) 表达式 真(非0) 语句
例5.1:从键盘输入两个数a 和b,按代数值由小到大的 顺序输出这两个数。 #include <stdio.h> main() {float a,b,t; scanf("%f,%f",&a,&b); if(a>b) {t=a;a=b;b=t;} printf("%5.2f,%5.2f\n",a,b); }
作业: P112 3, 3 ,4
注意: (1)当if语句中出现多个“if”与“else”的时 候,要特别注意它们之间的匹配关系,否则就 可能导致程序逻辑错误。“else”与“if”的匹配 原则是“就近一致原则”,即“else”总是与它 前面最近的“if”相匹配。 (2)if语句中条件的写法应尽量简单。
小结:
if语句的三种格式及其各自的执行流程 if语句的三种格式及其各自的执行流程
2)、双分支选择if语句 语句形式: if (表达式)语句1; else 语句2 ; 例:If(x>y) printf(“%d”,x); else printf(“%d”,y); 假(0) 表达式
真(非0)
语句执行流程:
语句1
语句2
例:输入三角形的三个边长,求出三角形的面积。 #include “math.h” main() { float a,b,c; float s; /*s为三角形的半周长*/ printf(“请输入三角形的三边a,b,c:”); scanf(“%f%f%f”,&a,&b,&c); if (a+b>c&&a+c>b&&b+c>a) /*判断输入的a,b,c能否构成三角形*/ {s=(a+b+c)/2.0; /*求出三角形的半周长*/ printf(“三角形周长s=%f”,s);} else printf(“不能构成三角形\n”); }
C语言第五章
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
C语言课件 第5章
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
c语言程序设计第五版习题答案
习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
第五章选择结构程序设计练习含答案v1
第五章选择结构程序设计5.1选择题【题 5.4 】能正确表示“当x 的取值在[ 1, 10]和[ 200, 210]范围内为真,否则为假”的表达式是。
CA) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=1)||(x<=10)||(x>=200)||(x<=210)C) (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D) (x>=1)||(x<=10)&&(x>=200)||(x<=210)【题 5.5 】表示图中坐标轴上阴影部分的正确表达式是。
C////////////////Xa b cA) (x<=a)&&(x>=b)&&(x<=c)B) (x<=a)||(b<=x<=c)C) (x<=a)||(x>=b)&&(x<=c)D) (x<=a)&&(b<=x<=c)【题 5.6 】判断 char 型变量 ch 是否为大写字母的正确表达式是。
CA)‘ A’ <=ch<=‘ Z’B) (ch>= ‘ A’ )&(ch<= ‘Z’ )C) (ch>= ‘ A’ )&&(ch<= ‘ Z’ )D) ( ‘A’ <=ch)AND(‘ Z’>=ch)【题 5.10 】设有: int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>d) 后 n 的值为。
BA)1B)2C)3D)4【题 5.11 】判断 char 型变量 c1 是否为小写字母的正确表达式是。
北京航空航天大学C语言c第三讲(第五章) 选择结构程序设计
if (money>=500) cost=0.8; else if (money>=300) cost=0.85; else if (money>=100) cost=0.9 else if (money>=50) cost=0.95; else cost=1.0; price=money*cost;
高 低
3,优先级 <,<=,>,>= 为同一级别,== 和!= 为同一级别. 在同一级别中,采取由左至右的结合方向.
算术运算符 -> 关系运算符 -> 赋值运算符
4,关系表达式
用关系运算符将两个表达式连接起来叫关 系表达式。 例:关系运算的优先级举例
c>a+b a>b!=c a==b<c a=b>c
if (表达式) 语句1 else 语句2
说明: (1)表达式是指关系表达式或逻辑表达式,条
件满足指的是表达式的值为真,即表达式的 值是一个非0值。 例如: if (3) printf(“O.K”); 输出O.K(永真) if („a‟) printf(“%d”,„a‟); 输出97 (永真) if (0) printf(“false”); 不执行printf语句(永假)
能被4整除,但不能被100整除; 能被400整除。
用year表示年份,判断闰年的逻辑表达式为: (year%4==0 && year%100 != 0)||(year % 400 ==0)
如果给year输入一个的值,使上面的表达式的值为1
时,则year所代表的年份就是闰年。
• 课堂练习: 写出逻辑表达式。 10 1. 判断一个点是否 10 -10 落入圆形中 2. 求落入阴影部 -10 分的任意一点 x*x+y*y<=100 (小园的半径为1.)
c程序设计 第5章 选择结构程序设计
5.2
逻辑运算符和逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接 起来的式子就是逻辑表达式。 ! 高 算术运算
a b !a
关系运算
a&&b
&&
真 真 真 假
逻辑 运算 真值 表
|| 低
a||b
真 真 假 假
ቤተ መጻሕፍቲ ባይዱ
真 假 真 假
假 假 真 真
真 假 假 假
例如:
(a>b) && (x>y) 可写成 a>b && x>y
Turbo c菜单介绍(Alt+首字符)
Edit (编辑)、 Compile (编译) 、 Project (工程) 、 Options (选项) 、 Debug (调试) 、 Break/Watch (中断 /查看) 、Run菜单(运行) Run Ctrl+F9 编译、连接、运行C源程序 Program reset Ctrl+F2 重新编译、连接、运行C源程 序
第5章
选择结构程序设计
重点: 如何实现程序中选择结构? 关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句和switch语句
5.1 关系运算符和关系表达式
关系运算===比较运算。结果为真或假(0或 非零)。 一、运算符与优先级 (左结合性)
< 高 高 <= 同级 > >= == != 同级 低
else if(number>100) cost=0.075;
else if(number>50) cost=0.05;
else cost=0;
例5.1 从键盘输入两个整型数,输出最大数。
开 始 main() { int a ,b ; scanf(“%d,%d”,&a,&b); if(a>b) printf(“max=%d\n”,a); if(b>a) printf(“max=%d\n”,b); } end a<b b a,b a>b a
第五章用C语言进行结构化程序设计
顺序结构的程序设计 选择结构程序 循环控制 几种循环控制结构程序设计 break语句和continue语句
共 37页
第 1 页
5.1 顺序结构的程序设计
int main(void ) 顺序结构是结构化程序的基 { 本结构。本质上,问题求解过 int nA,nB,nC; 程都是顺序结构的。顺序结构 nA=5; 下程序将按照语句或模块出现 nB=6; 的先后依次执行,语句和语句 nC=nA+nB; 之间、模块和模块之间的先后 printf("nC is %d",nC); 决定了其执行的顺序。 return 0; 每一个模块都有一个数据入 } /*End of main()*/ 口和一个数据出口。
共 37页 第 7 页
选择结构分类
自然语言:如果… 那么… yes 二分支选择结构 P 否则… C语言: 选择(分支)语句 A 用什么语 句实现? no
yes
P
no
B
k
A
B
k=k1
多分支选择结构
A1
k=k2 A2
k=ki
...
k=kn
...
Ai
An
共 37页
第 8 页
用if语句设计选择结构程序
共 37页 第 12 页
2. 标准格式if…else…
if •格式: (表达式) •功能:表达式值非0时执行语句 (1)语句组3不属于if语句的语句组。它 { 组1,否则执行语句组2。 只有在语句组1或语句组2执行完后 语句组1 } 才可能被执行; …… 语句组1 else (2)语句组1或语句组2只有1条语句时 { if (nScore>60) 语句组2 ,对应的花括号对可以省略。 printf("及格\n"); } 语句组2 语句组3 else 条件? Yes No 语句组1 语句组2
C语言第五章 选择结构程序设计(习题册答案)
6、设 x、y 和 z 是 int 型变量,且 x=3,y=4,z=5,则下面表达式中值为 0 的是( D
A)‘x’&&‘y’
B) x<=y C) x||y+z&&y-z
D) !((x<y)&&!z||1)
7、已知 x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是( C )。
达式是( C )。
A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)
D) (x>=1)||(x<=100)&&(x>=200)||(x<=300)
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
三、写出下列程序的运行结果
1、若运行时输入:2<回车>,则以下程序的运行结果是 2nd class postage is 14p
#include <stdio.h>
void main(void) {
char Class; printf(“Enter 1 for 1st class post or 2 for 2nd post”); scanf(“%c”,&Class);
VF第5章
属性值 关闭(\<Q) 0–左 * 请输入您的口令:
说明 按钮的标题 标签的内容 文本对齐方式 只显示设定的符号:* 文本初值为空字符串 容器控件中的标签
编写程序代码. ③ 编写程序代码. 编写关闭按钮Command1的Click事件代码: 事件代码: 编写关闭按钮 的 事件代码 THISFORM.Release 编写Text1的Valid事件代码: 事件代码: 编写 的 事件代码 mand1.TabStop = .F. a = LOWER(THIS.Value) IF a= "abcd " bel1.Top = THIS.Parent.Top bel1.Caption="欢迎使用本程序!" 欢迎使用本程序! 欢迎使用本程序
所示). 【例5-3】求函数值(如图 所示). 】求函数值(如图5-4所示 输入x,计算y的值 其中: 的值, 输入 ,计算 的值,其中:
4 x ( x ≥ 0) y= 15 2 x ( x < 0)
根据以上分析,画出流程图,如图5-5所示.
输入x 如果x >= 0 真 假 输出y y←4*x y ← 15 – 2 * x {x >= 0时的y值} {x < 0时的y值} {输出y的值} {给出x的值}
第5章 选择结构程序设计 章
5.1 条件表达式 5.2 条件选择语句 5.3 提供简单选择的控件 5.4 计时器与微调器 5.5 键盘事件
5.1 条件表达式
5.1.1 关系运算符与关系表达式 VFP提供的关系运算符有 种,见表 . 提供的关系运算符有8种 见表5-1. 提供的关系运算符有
运算符 < <= > >= = <>,#,!= $ == 名称 小于 小于或等于 大于 大于或等于 等于 不等于 包含于 等同于 "Fox" $ "FoxPro" 值为:.T. 例子 3<4 4 <= 3 0>1 "aa" >= "ab" 说明 值为:.T. 值为:.F. 值为:.F. 值为:.F.
二级VB 第5章选择
5.1 5.2 5.3 5.4 5.5 5.6 三种基本结构 块if语句 块if语句的 Else if语句 行if语句 Select Case语句
本章重点:
※ if语句
※ if语句的嵌套 ※ Select Case语句
本章难点:
if语句的不同用法 if语句嵌套的的规则
Select Case语句的应用
单分支结构
例:已知两个数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 x ③
简单If形式无End If时,只能是一句语句或语句间用冒号分 隔,而且必须在一行上书写。
本章目录
5.2.1 块If语句格式
1. If…Then语句(单分支结构) If <条件表达式> Then 语句块 End If 或 If <表达式> Then <语句>
条件表达式
T F
语句块
表达式:关系表达式、逻辑表达式,算术表达式。
表达式值按非零为True,零为False进行判断。 该语句的作用是当表达式的值为True,执行Then 后面的语句块,否则不做任何操作。
学习方法建议: 学习本章内容应重点掌握if语句的执行过程,在此基础上, 掌握if语句的嵌套的应用,掌握Select Case语句,并学会编写 选择结构程序。
5.1 三种基本结构
VB 具有结构化程序设计的三种程序控制结构,即 顺序结构、选择结构、循环结构,是程序设计的基础。 (1)顺序结构 a 各语句按出现的先后次序执行 A 例5.1已知圆的半径,求圆的面积。
c语言程序设计基本知识点解答(三)
C 语言程序设计基本知识点解答(三)第五章 选择结构程序设计Q116➢ 如何进行选择结构的程序设计?(选择结构) A116➢ “选择结构”也可以叫做“分支结构”。
在一个合理的“选择结构”中,总是先进行某个条件的判断,然后根据判断的结果选择执行预先设定的操作。
其流程图如下:可见,要想实现“选择结构”,需要2个条件:① 能表达条件判断的运算符:即关系运算符和逻辑运算符 ② 能实现判断并选择的控制语句:即if 和switch 语句Q117➢ 什么是关系运算符?(关系运算符)A117➢ 关系运算符也叫“比较运算符”,用于对两个数据进行比较判断的。
C 语言中一共有6种关系运算符,分别是 < 小于、<= 小于等于、> 大于、>= 大于等于、== 等于、!= 不等于。
用这6种运算符按规定把运算量连接起来构成的式子就是关系表达式。
其中,参与关系运算的数据可以是常量、变量或任何合法的表达式。
比如:a * a <= 100、NowIndex == MaxIndex 。
所有6种关系运算符的优先级都比算术运算符低,而== 等于、!= 不等于两个运算符的优先级又比其它四个关系运算符低。
所有6种关系运算符的结合性都是从左向右。
Q118➢ C 语言中如何表示一个关系表达式的值?(关系表达式)A118➢ 关系表达式进行的是关系运算,也就是“比较运算”。
比较的结果只可能有两个:“真”或“假”。
对应于实际生活中,就是“成立”还是“不成立”,“正确”还是“不正确”,“对”还是“不对”这样一些比较和判断的结果。
可见,关系运算的结果的特点是:只有两种可能的结果;任何时候答案只可能是其中的一个;两种可能是相互对立不可能同时出现的。
这样的特点正对应于数学上的“逻辑值”:“真”或“假”。
所以最终的结论就是:关系表达式的值是“逻辑值”,即“真”或“假”。
C 语言中分别以“1”和“0”来代表。
就是说,如果关系表达式的值为“真”,则得到整数1;如果值为“假”,则得到整数0。
第五章选择结构程序设计
1. 第五章选择结构程序设计一、1. 1.若有int y;则表示命题“y是奇数”成立的C语言表达式是(13) 。
2. 2.在C语言中,表示逻辑“真”值用(14) 表示。
3. 3.条件“2<x<3或x<-10”的C表达式是(15) 。
4. 4.以下程序运行的结果是(16) 。
5.main ( ){ int a, b, c, d, x;a=c=0;b=1;d=20;if (a) d=d-10;else if (!b)if (!c) x=15;else x=25;printf (“%d\n”, d );}6. 5.若有说明语句:“int x=1, y=0;”,则表达式x――>(y+x)?5:25>y++?‘1’:‘2’的值是(17) 。
7. 6.以下程序段的运行结果是(18) 。
int x=1, y=0;switch (x){ case 1: switch (y){ case 0: printf(“**1**”); break;case 1: printf(“**2**”); break;}case 2: printf (“**3**”);}8. 1.以下程序运行的结果是(19) 。
#include <stdio.h>main ( ){ int x=1, y=0, a=0, b=0;switch (x){ case 1: switch (y){ case 0: a++; break;case 1: b++; break;}case 2: a++; b++; break;}printf (“a=%d, b=%d\n”,a, b);}二、选择题一、 1.若有int y;则表示命题“y是奇数”成立的C语言表达式是(13) 。
9. 2.在C语言中,表示逻辑“真”值用(14) 表示。
10.3.条件“2<x<3或x<-10”的C表达式是(15) 。
11.4.以下程序运行的结果是(16) 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)说明 1 )逻辑运算符两侧的操作数,除可以是0和非0的整数 外,也可以是其它任何类型的数据,如实型、字符型等。 „a‟&&‟b‟ 2)在计算逻辑表达式时,只有在必须执行下一个表达式才 能求解时,才求解该表达式。
练习
5.3 if语句
if语句的三种形式
形式一:
格式:if (表达式)
表达式
=0
非0
语句
语句 执行过程:
例:if (x>y) 程序举例: printf(“%d”,x); 例:判断一个数是否是偶数,若是偶数则输出。
main() {int num1; printf(" Enter num1:"); scanf("%d",&num1); if (num1%2==0) printf("The %d is a event \n",num1); }
对于&&运算,如果第一个操作数被判定为“假”,系统不再判
定或求解第二操作数。 例:设 int n1=1,n2=2,n3=3,n4=4,x=1,y=1; 对于||运算,如果第一个操作数被判定为“真”,系统不再判 定或求解第二操作数。 (x=n1>n2)&&(y=n3>n4)执行后: (x=n2>n1)&&(y=n3>n4)
例如,假设int n1=3,n2=4,n3=5;则: (1)n1>n2 0 (2)(n1>n2)!=n3 1 (3)n1<n2<n3 1 (4)(n1<n2)+n3 6 再次强调: C 语言用整数“ 1” 表示“逻辑真”,用整 数“0”表示“逻辑假”。 关系表达式的值,还可以参与其它种类的运算.
5.2 逻辑运算及其表达式
运算规则 1)&&:当且仅当两个运算量的值都为“真”时,运算结果为 “真”,否则为“假”。 2) || :当且仅当两个运算量的值都为“假”时,运算结果为 “假”,否则为“真”。 3) ! :当运算量的值为“真”时,运算结果为“假”;当运 算量的值为“假”时,运算结果为“真”。 例: int x=5;
P89
a||b
例如,下面的表达式都是逻辑表达式:
真 真 假 假 真 真 (x>=0) && (x<10) ,(x<1) || (x>5) ,! (x= =0), 真 假 假 真 假 真 (year%4==0)&&(year%100!=0)||(year%400==0) 假 真 真 假 假 真 假 假 真 真 假 假
设计选择结构程序,要考虑两个方面的问题:一是
在C语言中如何来表示条件,二是在C语言中实现选择结
构用什么语句。 在C语言中表示条件,一般用关系表达式或逻辑表达 式,实现选择结构用if语句或switch语句。
本章内容:
5.1 关系运算及其表达式
5.2 逻辑运算及其表达式
5.3 if语句
5.4 switch语句 5.5 选择结构程序举例
形式三: 格式:
if (表达式1 )
else if (表达式2 ) else if (表达式3 )
语句1
语句2 语句3
执行过程:
=0
…...
[ else
语句n
]
例:if (salary>1000) tax=0.04; 非 0 if (salary>800) =0 tax=0.03; else 表达式2 else if (salary>600) tax=0.02; =0 非0 表达式3 else if (salary>400) tax=0.01; else 非0 tax=0;
2. 逻辑表达式 (1)逻辑表达式的概念 用逻辑运算符将1个或多个表达式连接起来,进行逻辑运 算的式子。用逻辑表达式表示多个条件的组合。 (year%4==0)&&(year%100!=0)||(year%400==0) (2)逻辑表达式的值 :逻辑值(非“真”即“假”)。 (3)逻辑量的真假判定──0和非0 !((year%4==0)&&(year%100!=0)||(year%400==0)) 用整数“1”表示“逻辑真”、用“0”表示“逻辑 假”。但在判断一个数据的“真”或“假”时,却以0 和非0为根据:如果为0,则判定为“逻辑假”;如果 为非0,则判定为“逻辑真”。 例: int n1=12,n2=-4;
}
例 判断输入字符种类 #include <stdio.h> main() { char c; printf("Enter a character:"); c=getchar(); if(c<0x20) printf("The character is a control character\n"); else if(c>='0'&&c<='9') printf("The character is a digit\n"); else if(c>='A'&&c<='Z') printf("The character is a capital letter\n"); else if(c>='a'&&c<='z') printf("The character is a lower letter\n"); else printf("The character is other character\n"); } 运行: Enter aa character : 运行: Enter : D 运行: 运行: Enter Enter a character acharacter : 8 : h 运行: Enter acharacter character : F1
关系表达式只能描述单一条件,例如“x>=0”。如果 需要描述“x>=0并且x<10”,就要借助于逻辑表达式。
1. 逻辑运算及其优先次序 (1)逻辑运算符及其运算规则 三种逻辑运算符: ! 逻辑非(相当于“否定” ) && 逻辑与(相当于“并且”) || 逻辑或(相当于“或者”)
逻辑 运算 真值表
a b !a !b a&&b
请动手操作: 输入任意三个整数num1、num2、num3,求三 个数中的最大值。
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 :%d,%d,%d\n", n1, n2, n3); printf("max=%d\n",max); }
x x=0, = 1, y y = =1 0 例:设 int n1=1,n2=2,n3=3,n4=4,x=1,y=1; (x=n1>n2)||(y=n3>n4)执行后: x=0,y=1
表达式小结:
1.正确使用表达式 当描述单一条件时可使用关系表达式;如果要描述复合条 件,就要使用逻辑表达式。 2.关系表达式和逻辑表达式的值都是逻辑值。 3.逻辑值的表示 “1”表示“逻辑真”、“0”表示“逻辑假”。 4.逻辑值的判断 如果为0,则判定为“逻辑假”;如果为非0,则判 定为“逻辑真”。 5.运算符的优先关系 !→ 算术运算 → 关系运算 → &&→ || → 赋值运算
例 求分段函数的值
y=
1 0 -1
x>0 x=0 x<0
#include <stdio.h> main() #include <stdio.h> { int x,y; main() printf("Enter an integer:"); { scanf("%d",&x); int x,y; printf("Enter an integer:"); if(x<0) y=-1; scanf("%d",&x); else if (x==0)y= 0; if(x<0) else y=-1; y=1; printf("\ninteger:%d---> value:%d\n",x,y); if (x==0)y= 0; } else y=1; 运行: Enter an integer:-12 printf("\ninteger:%d---> value:%d\n",x,y); integer:-12---> value :-1
语句1 语句2 语句3 语句n
表达式1
说明: if后面的表达式类型任意 if(x) if(x!=0) if(!x) if(x==0) 语句可以是复合语句 如: 例 考虑下面程序的输出结果 if(a==b&&x==y) printf(“a=b,x=y”); : #include if(3) <stdio.h> printf(“OK”); main() if(„a‟) printf(“%d”,‟a‟); { int x,y; scanf(“%d,%d”,&x,&y); if(x>y) x=y; y=x; else Compile Error! x++; y++; printf(“%d,%d\n”,x,y); }