C语言第5章 选择结构的程序设计PPT教学课件
合集下载
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
• !((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语言讲义)PPT教学课件
case ‘B’:
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
C语言完整 ppt课件
1.4.1 宏定义
用一个标识符来表示一个字符串,称为“宏”,标识符称为“宏名”。在 程序中 用宏名替代字符串称为“宏调用”。在编译预处理时,将对程序中所有出现的 “宏 名”,都用宏定义中的字符串代换,这个过程称为“宏展开”。
1.4.1.1 不带参数的宏定义
格式为:#define 标识符 字符串
1.4.1.2 带参数的宏定义
1-4
1.3 C程序上机步骤
C源程序编好后,要经过编辑、编译、连接, 生成可执行文件后,才可运行。
运行集成开发软件
编辑源程序
编译
有 有错? 无 连接
不正确
运行
结果正确? 正确
结束
1-5
1.4 编译预处理
编译预处理是指,在C编译程序对C源程序进行编译之前,由编译预处理程 序对源程序中的预处理命令进行处理的过程。
1.2.1 C语言程序举例
1.2.2 C语言程序的结构
1.2.2.1 函数是C语言程序的基本单位。
1.2.2.2 函数的一般结构
任何函数(包括main()函数)都是由函数首部和函数体两部分组成。
1. 函数首部: 函数首部即函数第一行,由函数类型、函数名和函数参数表三部分组成。
2. 函数体: 函数体为函数首部下面的花括号{……}内的部分。 函数体一般由声明部分和执行部分构成:声明部分定义所用到的变量,声明所调用的函数等; 执行部分有若干语句组成。
2.6.1 运算符及表达式简介 2.6.1.1 运算符
C语言中的运算符具有2个特点: ⑴ 运算符的优先级 C语言中,运算符的优先级共分为15级,1级最高,15级最低。 ⑵ 运算符的结合性 C语言中各运算符的结合性分为左结合性(从左到右)和右结合性(从右到左)。 2.6.1.2 表达式 表达式是由常量、变量、函数和运算符组成的式子。 表达式求值是按运算符的优先级和结合性规定的顺序进行的。
用一个标识符来表示一个字符串,称为“宏”,标识符称为“宏名”。在 程序中 用宏名替代字符串称为“宏调用”。在编译预处理时,将对程序中所有出现的 “宏 名”,都用宏定义中的字符串代换,这个过程称为“宏展开”。
1.4.1.1 不带参数的宏定义
格式为:#define 标识符 字符串
1.4.1.2 带参数的宏定义
1-4
1.3 C程序上机步骤
C源程序编好后,要经过编辑、编译、连接, 生成可执行文件后,才可运行。
运行集成开发软件
编辑源程序
编译
有 有错? 无 连接
不正确
运行
结果正确? 正确
结束
1-5
1.4 编译预处理
编译预处理是指,在C编译程序对C源程序进行编译之前,由编译预处理程 序对源程序中的预处理命令进行处理的过程。
1.2.1 C语言程序举例
1.2.2 C语言程序的结构
1.2.2.1 函数是C语言程序的基本单位。
1.2.2.2 函数的一般结构
任何函数(包括main()函数)都是由函数首部和函数体两部分组成。
1. 函数首部: 函数首部即函数第一行,由函数类型、函数名和函数参数表三部分组成。
2. 函数体: 函数体为函数首部下面的花括号{……}内的部分。 函数体一般由声明部分和执行部分构成:声明部分定义所用到的变量,声明所调用的函数等; 执行部分有若干语句组成。
2.6.1 运算符及表达式简介 2.6.1.1 运算符
C语言中的运算符具有2个特点: ⑴ 运算符的优先级 C语言中,运算符的优先级共分为15级,1级最高,15级最低。 ⑵ 运算符的结合性 C语言中各运算符的结合性分为左结合性(从左到右)和右结合性(从右到左)。 2.6.1.2 表达式 表达式是由常量、变量、函数和运算符组成的式子。 表达式求值是按运算符的优先级和结合性规定的顺序进行的。
C语言第五章
T t=a a=b 开始 输入a,b a>b
学习提示: (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语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
学习提示: (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章
如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第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
第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语言-选择结构程序设计
if (‘A’) printf(‚%d‛,‘a’);也是合法的。
⑵ 后面两种形式的if语句中,每个else前面有一个分 号,不要错认为是两个语句。 如: if (x>0)
printf("%f",x); else printf("%f",-x);
各有一个分号
⑶ if 和else后面有多个语句时,可以使用复合语 句,即用‚{}‛将多个 语句括起来。
Y
表达式
N
else printf("%d",y);
语句1 语句2
例:编程,判断任意输入一个整数x是不 是正数,若是则将该数输出。
程序如下:
main() { int x; scanf(“%d”,&x); if (x>0) printf(“\nx=%d\n”,x); }
例:编程,判断任意输入的一个正整数是 不是偶数,若是则输出YES,否则输出 NO。
5.3.2 if语句的嵌套
在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套。其一般形式为: if ( ) if ( ) 语句1; 内嵌 if 语句 else 语句2; else if ( ) 语句3; 内嵌 if 语句 else 语句4;
说明:应注意 if 与 else 的对应关系,else总是与 它上面最近的 if 配对,若if与 else 的数目不一致, 可以加{ }来确定配对关系。
程序如下:
main() { int x; scanf(“%d”,&x); if (x%2==0) printf(“YES”); else printf(“NO”); }
3. if(表达式1) 语句1; else if(表达式2) 语句2; …… else if(表达式m) 语句m; else 语句n;
C语言程序设计第五版谭浩强 ppt课件
第一章 C语言概述
C语言结构特点
❖函数与主函数
程序由一个或多个函数组成
必须有且只能有一个主函数main(),可以放在程序中任一 位置
程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
❖程序语句
C程序由语句组成 用“;”作为语句终止符
❖注释
/* */为注释,不能嵌套
教材、参考书与课时安排
教材
C程序设计 (第二版) 谭浩强编著 清华大学出版社
参考书
C语言程序设计教程 谭浩强 高等教育出版社 C高级实用程序设计 王士元 清华大学出版社 C程序设计试题汇编 谭浩强 清华大学出版社
课时安排
64学时
课程目的
§熟记C语言的基本概念 §熟悉Turbo C的上机操作环境 §会读、会编、会调试C程序
<>
C语言程序设计
第一章 C语言概述
C语言发展过程
❖产生背景
ALGOL 60→CPL语言→BCPL→B语言,写UNIX系统
❖产生过程
时间:1972~1973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie
❖C标准
标准C: 1978年 K&R合著《The C Programming Language》
}
通过max函数将z值带回调用处
<>
C语言程序设计
第一章 C语言概述
C语言格式特点
❖习惯用小写字母,大小写敏感
❖不使用行号,无程序行概念 ❖可使用空行和空格 ❖常用锯齿形书写格式
mmaiani(n() ) {{ ……………….
int…i…, j…, …sum…;… sum=0…; ………..
北京航空航天大学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语言程序设计教程ppt课件完整版pptx
C语言的应用领域
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。
第五章用C语言进行结构化程序设计
第五章 用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
顺序结构的程序设计 选择结构程序 循环控制 几种循环控制结构程序设计 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
第5章选择结构程序设计答辩PPT课件
5.1.2 逻辑运算符与逻辑表达式
a
b
a AND b a OR b NOT a
.T.
.T.
.T.
.T.
.F.
.T.
.F.
.F.
.T.
.F.
.F.
.T.
.F.
.T.
.T.
.F.
.F.
.F.
.F.
.T.
逻辑运算符的运算规则,见表5-3。
5.2 条件选择语句
• 对给定的条件进行分析、比较和判断,根据结果采取不 同的操作。让计算机具有智能性。
假 如果x < 3000
{2000 ≤ x < 3000}
真 y ← 0.9 * x
假 如果x < 5000
{3000 ≤ x < 5000}
真 y ← 0.85 * x
假 y ← 0.8 * x
{x > 5000}
输出y
{输出优惠价}
5.2.2 多分支条件选择语句DO CASE
多分支条件选择语句DO CASE语法结构 DO CASE语句的语法格式为:
VFP提供的关系运算符有8种,见表5-1。
运算符 < <= > >= = <>、#、!= $ ==
名称 小于 小于或等于 大于 大于或等于 等于 不等于 包含于 等同于
例子 3<4 4 <= 3 0>1 "aa" >= "ab"
说明 值为:.T. 值为:.F. 值为:.F. 值为:.F.
"Fox" $ "FoxPro" 值为:.T.
做合法检查,RETURN .F. (RETURN 0)不能失去光标。 多用于密码的验证。
第五章 选择结构的程序设计
5.3 if语句
5.3.1 if语句的三种形式
条件执行 分支选择
例5.2:读程序
if (P) A if (p) A else B
#include <stdio.h> void mian() { float x,y; printf(“Enter x:”); scanf(“%f”,&x); if (x==0.) y=1; else y=(x*5+1)/x; printf(“\nx=%4.1\ty=%4.1f\n”,x,y); } ********************************** y=1; if (x!=0) y=(x*5+1)/x;
低
5.2 逻辑表达式
逻辑量
当一个量(可以是基本类型的常量或变量)用作判断时,C编译系统认为: 非0——真、0——假
逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子 单个逻辑量、关系表达式是逻辑表达式的特例
逻辑表达式的值
真(1) 假(0)
如:若a=4,则 !a a&&-5 4||0
0 1 1
如:x!=0 ‘a’==‘A’ a*a+b*b<Y*Y 注意:数值量比较:数字的大小 字符量比较:ASCII码大小
5.1 关系表达式
关系运算 关系运算符 优先级别 关系表达式的值:真(1) 如: c>a+b
假(0)
a==b<c a=b<c
c>(a+b) a==(b<c) a=(b<c)
问:a=1,b=-5,c=‘a’时上述表达式的值 结合性:左结合
5.2 逻辑表达式
例5.1:判断某年year是否闰年? (闰年:能被4整除,但不能被100整除;或能被400整除)
C语言选择结构程序设计.ppt
择
结
构
程
序
设 计
C
语
– 逻辑运算符和表达式
言 程
• 逻辑运算符
序
– 种类: ! && ||
设 计
– 逻辑运算真值表
a
b
!a
!b a&&b a||b
真
真
假
假
真
真
真
假
假
真
假
真
假
真
真
假
假
真
假
假
真
真
假
假
选 择 结 构 程 序
设< >
计
–C语言中,运算量: 0表示“假”, 非0表示“真”,
运算结果: “假”用0表示, “真” 用1表示,
选 多分支选择结构
择 结 构 程 序 设 计
k k=k1
k=k2
A1
A2 ...
k=kn k=ki
Ai ... An
C
语 言
❖循环结构
程 序
当型循环结构
设
计
假 P
真
A
当P为真 A
直到型循环结构
选
A
A
择
假
直到P为真
结
P
构 程
真
序
设 计
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
C
优先级7(低)
a>b!=c //(a>b)!=c
– 关系表达a式==:b<用c 关系//运a=算=(符b<将c)两个表达式连接起来;以
下都是合a法=b的>c关系表/达/a式=(:b>c)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开始
输入a,b,c
a<b?
F
T a与b交换
a<c?
F
T a与c交换
b<c?
F
T b与c交换
输出a,b,c
2020/12/10
结束
11
2.双分支if语句——if_else语句
格式:
if (<表达式>) 语句1
else
语句2
2020/12/10
12
2. if_else语句
功能:
T 语句1
表达式
F 语句2
2020/12/10
13
3. 多分支if语句
格式:
if (<表达式1>) 语句1 else if (<表达式2>) 语句2 else if (<表达式3>) 语句3
…... else if (<表达式n-1>) 语句n-1 else 语句n
2020/12/10
14
3. 多分支语句
功能: F 表达式1
(4)default一般出现在所有的case之后,也可以出现在 case之前或两个case语句之间。Default可以省略。
2020/12/10
23
5.2 switch语句
例1 用switch语句设计程序,实现输出学生成绩和 等级的功能。 分析:因为分数x为0~100分,则x/10的值为0,1,2, 3,4,5,6,7,8,9,10。
…… case <常量表达式n>:语句n default 语句n+1
}
2020/12/10
21
5.2 switch语句
功能:
首先计算<表达式>的值,然后依次与<常量表达式i> (i=1,2,…,n)比较,若表达式的值与<常量表达式j>相 等,则从<常量表达式j>处开始执行,这里就是执行的 入口,直到switch语句结束。若所有的<常量表达式i> (i=1,2,…,n)的值均不等于表达式的值,则从default处 开始执行。
2020/12/10
16
4. 控制条件的表示
在判断表达式时: 非0——True 0——False 而关系表达式或逻辑表达式的返回值: 1——True 0——False
2020/12/10
17
5. If语句的嵌套
在一个条件语句中包含有另一个条件语 句的结构,成为条件的嵌套。
2020/12/10
18
高级语言程序设计 (C语言)
2020/12/10
1
第五章 选择结构程序设计
2020/12/10
2
第五章 选择结构程序设计
5.1 if语句 5.2 switch语句 5.3 无条件转向语句
2020/12/10
3
5.1 if语句
1. 简单的if语句 2. 双分支if语句 3. 多分支if语句 4. 控制条件的表示 5. if语句的嵌套
2020/12/10
4
1. 简单的if语句
格式: if (<表达式>)语句
功能:
F 表达式
T 语句
2020/12/10
5
程序应用举例
例1 求给定整数的绝对值。 x x≥0
|x|= -x x<0
设:x——整数 y——x的绝对值
2020/12/10
6ห้องสมุดไป่ตู้
流程图:
开始
输入x y=x
F x<0?
T y=-x
输出x,y
结束
2020/12/10
7
程序应用举例
例2 求4个整数中的偶数之和。 设:a,b,c,d——4个整数。
s——偶数之和,作为累加器使用,先要清0。 分析:
偶数能被2整除,如果设x为整数,则有x%2=0,余 数为0。
2020/12/10
8
流程图:
2020/12/10
开始
输入a,b,c,d
s=0
2020/12/10
22
5.2 switch语句
说明:
(1)switch后面的<表达式>可以是任何表达式,取其 整数部分与<常量表达式>进行比较。
(2)<常量表达式>中不能出现变量,且类型必须是整 型、字符型或枚举型,各<常量表达式>互不相同。
(3)语句I可以是一条语句或多条语句,多条语句不必 用{ }将它们括起来。语句i处也可以没有语句,程序 执行时会自动向下顺序执行。
a%2==0?
F
T
s=s+a
b%2==0?
F
T s=s+b
c%2==0?
F
T
s=s+c
I
I
d%2==0?
F
T s=s+d
输出a,b,c,d,s 结束
9
程序应用举例
例3 已知a,b,c 3个整数,将3个数按从大到小的顺序排 列输出。 设: a,b,c ——3个整数。
2020/12/10
10
流程图:
条件嵌套应用举例
例1 求分段函数。(P90) x +1 x>0
y = x x=0 x-1 x<0
设:变量x,y——存放实型数。 首先判断x≥0,然后再判断x>0。
2020/12/10
19
条件嵌套应用举例
例2 从键盘上输入3个数,若这3个数能构成三角形的 三边长,则求这个三角形的面积,否则打印响应的错误信 息,当出现数据小于或等于0时,显示“数据无效!”; 当任意两边之和不大于第三边时,显示“不能构成三角形 !”
T 表达式2 T
语句1
语句2
F…
表达式n-1 F
T
… 语句n-1
语句n
2020/12/10
15
4. 控制条件的表示
控制条件通常用关系表达式或逻辑表 达式构造。
在判断<表达式>时,表达式中的非 0为True,0为False。而关系表达式或逻辑 表达式的返回值为1或0,1表示True, 0表示False。
面<表达式>的值找到响应的入口标号,就从此标号开始
一直执行下去,不再判断。
那么,如何终止switch语句的执行呢?C语言中提供
2020/12/10
25
的break语句可以做到这一点。
5.2 switch语句
格式: break;
功能: 终止它所在的switch语句的执行。
2020/12/10
26
5.3 无条件转向语句
分析:三个数能构成三角形的充分必要条件是:
(1)三个数均大于0。 (2)任意两边之和大于第三边。 设:a,b,c——三边长
p——中间变量,p=(a+b+c)/2 s——三角形面积
2020/12/10
20
5.2 switch语句
格式: switch(<变量名>) { case <常量表达式1>:语句1 case <常量表达式2>:语句2
2020/12/10
24
5.2 switch语句
分析结果:
第一行输出正确,后面7行输出是多余的,原因何在?
原因:
根据switch语句的功能,在执行完一个case后面的语
句后,流程控制转移到下一个case继续指向。“case < 常
量表达式>”只是起语句标号的作用,并不是在该处进行
条件判断。在执行switch语句时,计算机根据switch后