清华谭浩强C语言教学第5章选择结构PPT课件
合集下载
C语言谭浩强完整课件

2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15
第5章选择分支结构--C语言程序设计(谭浩强第三版)PPT课件

8<3逻辑值为0
1&&0逻辑值为0
(3)短路现象:一个逻辑表达式中的逻辑运算符并不一定全 部执行.
例如: a&&b&&c 当a=0(假)时, 当a=1,b=0,
例如: a ¦¦b ¦¦c 当a=1时,
b,c不需判断。 c不需判断。
b, c均不必判别。
例如: a=1,b=2,c=3,d=4,m=1,n=1
else if (表达式2) 语句2
else if (表达式3) 语句3
…
…
else if(表达式n) 语句n
else
语句n+1
#include <stdio.h>
例6:输入一个字符,请 判断是字母、数字还 是特殊字符。
main( )
{ char ch;
printf("Please input a character:\n");
! 逻辑非(条件为真,运算后为假,条件为假,运 算后为真)
“&&”,“||”是双目运算符,“!”是单目运算符。
例:a&&b a||b !a
若a,b为真,则a&&b为真。 若a,b之一为真,则a||b为真。 若a为真,则!a为假。
2021
7
(2)逻辑运算真值表
a
b
!a
真真 假
真假 假
假真 真 假假 真
!a
值为0
a&&b
值为1
a||b
值为1
!a||b 4&&0||2
值为1 值为1
5>3&&8<4-!0 (5>3)&&(8<(4-(!0))) 值为0
C语言课件谭浩强chap5PPT教学课件

例如,若a=3,b=2,c=1,则:
a>b的值为”真”,表达式的值为1。
(a>b)==c的值为“真”(因为a>b的值 为1,等于c的值),表达式的值为1。
b+c<a的值为“假”,表达式的值为0。
如果有以下赋值表达式:
d=a>b
d的值为1。
f=a>b>c f的值为0(因为“>” 运算符是自左至右的结合方向,先执行“a> b”,得值为1,再执行关系运算:“1>c”得 值0,赋给f
②若a=4,b=5,则a&&b的值为1。因为a和b均为非0, 被认为是“真”,因此a&&b的值也为“真”,值为1。
③a、b值同前,a||b的值为1。
④a、b值同前,!a||b的值为1。 ⑤4&&0||2的值为1。
通过这几个例子可以看出,由系统给出的逻辑运算结果不是 0就是1,不可能是其它数值。而在逻辑表达式中作为参加逻辑 运算的运算对象(操作数)可以是0(“假”)或任何非0的数 值(按“真”对待)。如果在一个表达式中不同位置上出现数 值,应区分哪些是作为数值运算或关系运算的对象,哪些作为 逻辑运算的对象,例如
第5章 选择结构程序设计
5.1 关系运算符和关系表达式
是逻辑运算中比较简单的一种。所谓“” 实际上是“比较运算”。将两个值进行比较, 判断比较的结果是否符合给定的条件。例如, a>3是一个关系表达式,大于号(>)是一 个关系运算符,如果a的值为5,则满足给定 的“a>3”条件,因此关系表达式的值为 “真”(即“条件满足”);如果a的值为2, 不满足“a>3”条件,则称关系表达式的值 为“假” (即“条件不满足”)。
实际上,逻辑运算符两侧的运算对象不但可以是0 和1,或者是0和非0的整数,也可以是任何类型的数 据。可以是字符型、实型或指针型等。系统最终以0 和非0来判定它们属于“真”或“假”。例如
C语言第5章 选择结构的程序设计PPT教学课件

开始
输入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处 开始执行。
C语言课件(谭浩强版)第5章选择结构程序设计

C语言程序设计
例
a=4;b=5; !a a&&b a||b !a||b 4&&0||2 5>3&&2||8<45>3&&2||8<4-!0 ‘c’&& d’ &&‘d c &&
值为0 值为1 值为1 值为1 值为1 //(5>3)&&2||(8<(4-(!0))) 值为1 值为1
C语言程序设计
短路特性:逻辑表达式求解时, 短路特性:逻辑表达式求解时,并非所有的逻辑 运算符都被执行, 运算符都被执行,只是在必须执行下一个逻辑运 算符才能求出表达式的解时, 算符才能求出表达式的解时,才执行该运算符
内嵌if
内嵌if
if (expr1) if (expr2) else else if(expr3) else
statement1 内嵌if statement2 statement3 内嵌if statement4
C语言程序设计
例 输入两数并判断其大小关系
#include <stdio.h> main() { int x,y; printf("Enter integer x,y:"); 运行:Enter integer x,y:12,23↵ X<Y scanf("%d,%d",&x,&y); Enter integer x,y:12,6↵ if(x!=y) X>Y if(x>y) printf("X>Y\n"); Enter integer x,y:12,12↵ else printf("X<Y\n"); X==Y else printf("X==Y\n"); }
C语言程序设计第五版谭浩强 ppt课件

运行结果: sum=34
C语言程序设计
第一章 C语言概述
例1.3 从键盘输入两个整数,输出其中较大的数
#include <stdio.h> void main() 声明部分,定义变量 { int max(int x,int y)
输入:10,20 输出:max = 20
int a,b,c;
scanf(“%d,%d”,&a,&b);
第6章 循环控制
第8章 函数
第7章 数组
第9章 预处理命令
第10章 指针
第11章 结构体与共用体
第12章 位运算
第13章 文件
C语言程序设计
第1章 C语言概述
C语言发展历史 C语言的特点 简单的C程序介绍 C程序的上机步骤
第一章 C语言概述
C语言程序设计
§1.1 C语言发展历史
程序设计语言的发展
<
第一章 C语言概述
9种控制语句: if( )~else~ for( )~ while( )~ do~while( ) continue break switch goto return
C语言程序设计
第一章 C语言概述
表1.1 C语言与Pascal语言比较
C语言 {} if(e) S; int i; int a[10];
不产生编译代码
❖编译预处理命令
非法
<>
例: /*This is the main /* of example1.1*/ */
C语言程序设计
§1.4 C程序的上机步骤
C程序开发步骤
编辑
开始
第一章 C语言概述
程序代码的录入, 生成源程序*.c
第5章选择(无闰年)谭浩强 著 C程序设计PPT课件

C程序设计(第三版)
9
9
5.3 if语句
1.If语句的三种基本形式
(1)if (表达式) 语句
表达式
真(非0)
例:
语句
if(x>y) printf(“%d”10
5.3 if语句
(2)if(表达式) 语句1
else
语句2
例: if (x>y) printf(“%d”,x);
第五章
本章要点
关系表达式 逻辑表达式 选择结构程序设计
主要内容
5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 switch语句 5.5 程序举例
5.1 关系运算符和关系表达式
1.关系运算符及其优先次序
1. <
(小于)
2. <= (小于或等于)
才需要判断c的值。 (2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才
判断b。a和b都为假才判断c
注意例:(m=a>b)&&(n=c>d)
当a=1,b=2,c=3,d=4,m由和于n的“原a>值b为”1的时值, 为0,因此m=0,而“n=c>d”不被执行,因此n的值不是 仍保持原值1。
3. >
(大于)
优先级相同(高)
4. >= (大于或等于)
5. == (等于)
6. 说!=明: (不等于)
优先级相同(低)
关系运算符的优先级低于算术运算符
关系运算符的优先级高于赋值运算符
C程序设计(第三版)
4
4
5.1 关系运算符和关系表达式
2.关系表达式
用关系运算符将两个表达式(可以是算术表达式,赋值
C语言说课PPT(谭浩强第五版)非常好

2.
培养学生编程基 本思想、编程基 本技能及逻辑思 维能力的必修课
3.
可用来解决岗位工 作中实际问题,为 提高职业能力和拓 展职业空间打下坚 实基础
说--课程标准
2、课程地位
专业基础课
课程 地位
通信技术专业 通信专业 软件工程
其它课程的先导课
单片机系统设计 嵌入式应用开发 传感器应用技术
省技能大赛基础课程
总学时数
章节主要内容
理论时数 实践时数
C语言概述,简单C程序及运行环境介绍 如何编辑、编译、连接、运行一个C程序
1
1
算法的概念及特性,简单算法举例。 算法的表示方法,流程图、N-S图的使用
2
C语言中数据类型介绍,常量、变量的概念 运算符和表达式、语句、输入输出函数
2
2
If语句、关系运算符和关系表达式、逻辑运算符和逻
①培养学生精益求精的工匠精神 ②培养学生团结合作、自主学习的能力 ③促进学生职业素养的形成
任务序号 第1章 第2章 第3章
4
第4章
课
第5章
时
第6章
安
第7章
排
第8章
第9章
第10章 复习
章节内容 程序设计和C语言
算法 顺序结构程序设计
选择结构程序设计
循环结构程序设计 数组 函数 指针
用户自定义数据类型 文件输入输出 复习
辑表达式、条件运算符和条件表达式、选择的嵌套、
3
3
Switch语句
While语句、Do..while语句、For语句、循环嵌套、 Break语句、Continue语句
3
3
一维数组、二维数组、字符数组
3
3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.3 if语句
例5.2 输入三个数a,b,c,要求按由小到大的顺序输出。
a>b
n
If a>b 将a和b对换 If a>c 将a和c对换 If b>c 将b和c对换
a>c n y
y a和b交换 a和c交换
b>c y c和b交换
5.3 if语句
#include <stdio.h> void main ( ) { float a,b,c,t; scanf(″%f,%f,%f″,&a,&b,&c); if(a>b) {t=a;a=b;b=t;} 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); }
5.3 if语句
2.if语句的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套。
形式:
if()
if() 语句1
else 语句2 else
内嵌if
if() 语句3
else 语句4
5.3 if语句
匹配规则:
else总是与它上面的,最近的,统一复合语句中的,未配
对的if语句配对。
例:
例:
if()
3. >
(大于)
优先级相同(高)
4. >= (大于或等于)
5. == 6. !=
(等于) (不等于)
优先级相同(低)
说明:
关系运算符的优先级低于算术运算符
关系运算符的优先级高于赋值运算符
5.1 关系运算符和关系表达式
2.关系表达式 • 用关系运算符将两个表达式(可以是算术表达式或
关系表达式,逻辑表达式,赋值表达式,字符表达式) 接起来的式子,称关系表达式 C语言中没有专用
5.3 if语句
例5.1 输入两个实数,按代数值由小到大的顺序输出这两
个数。
#include<stdio.h>
void main()
a>b
{float a,b,t; scanf(″%f,%f″,&a,&b); if(a>b)
y
T=a
n
{t=a;
A=b
a=b;
B=t
b=t;}
printf(″%5.2f,%5.2f\n″,a,b);}
5.2 逻辑运算符和逻辑表达式
用逻辑表达式来表示闰年的条件
•能被4整除,但不能被100整除。 •能被100整除,又能被400整除。
答
(year%4==0&&year%100!=0)||year%400==0
案
值为真(1)是闰年,否则为非闰年。
5.3 if语句
1.if语句的三种基本形式
(1)if (表达式) 语句
第五章
本章要点
关系表达式 逻辑表达式 选择结构程序设计
主要内容
5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 switch语句 5.5 程序举例
5.1 关系运算符和关系表达式
1.关系运算符及其优先次序
1. <
(小于)
2. <= (小于或等于)
表达式
真(非0)
例:
语句
if(x>y) printf(“%d”,x);
假 (0)
5.3 if语句
(2)if(表达式) 语句1
else
语句2
例: if (x>y) printf(“%d”,x); else printf(“%d”,y);
Y 条件 N
语句1
语句2
5.3 if语句Βιβλιοθήκη (3)if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 …… else if(表达式m)语句m else 语句n
a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
优先次序:
•!(非)->&&()->||() •逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算 术运算符
5.2 逻辑运算符和逻辑表达式
2.逻辑表达式 •用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达式。 •逻辑表达式的值应该是一个逻辑量“真”或“假”。
的逻辑值,1代表
例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>真b),>(0b代<c表) 假
• 关系表达式的值是一个逻辑值,即“真”或“假”。
例:关系表达式”a>b”的值为“真”,表达式的值为1。
5.2 逻辑运算符和逻辑表达式
1.逻辑运算符及其优先次序 (1)&& (逻辑与) 相当于其他语言中的AND (2)|| (逻辑或) 相当于其他语言中的OR (3)! (逻辑非) 相当于其他语言中的NOT 例:a&&b 若a,b为真,则a&&b为真。
if()
if() 语句1
{if() 语句1}
else
else
if() 语句2
if() 语句2
else 语句3
else 语句3
当if和else数目不同时,可以加花括号来确定配对关系。
5.3 if语句
例:
if (number>500)cost=0.15; else if(number>300)cost=0.10; else if(number>100)cost=0.075; else if(number>50)cost=0.05; else cost=0;
5.3 if语句
说明:
(1)3种形式的if语句中在if后面都有表达式, 一般为逻辑表达式或关系表达式。
(2)第二,第三种形式的if语句中,在每个 else前面有一个分号,整个语句结束处有一 个分号。
(3)在if和else后面可以只含有一个内嵌的操 作语句,也可以由多个操作语句,此时用花 括号将几个语句括起来成为一个复合语句。
任何非零的数值被认作“真”
例:设a=4,b=5:
!a的值为0
a&&b的值为1
a||b的值为1
!a||b的值为1
4&&0||2的值为1
5.2 逻辑运算符和逻辑表达式
例:5>3&&8<4-!0
自左向右运算
5>3逻辑值为1
!0逻辑值为1
4-1值为3
表达式值为0
1&&0逻辑值为0 8<3逻辑值为0
5.2 逻辑运算符和逻辑表达式
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。 (1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时
才需要判断c的值。 (2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才
判断b。a和b都为假才判断c
例:(m=a>b)&&(n=c>d)
当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值 为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0 仍保持原值1。