最新第5章选择分支结构--C语言程序设计(谭浩强第三版)教学讲义PPT课件
c程序设计 谭浩强 第5章

在使用if语句中还应注意以下问题 在使用 语句中还应注意以下问题: 语句中还应注意以下问题
第五章 5.1if语句 if语句 5.1.1if语句的三 if语句的三 种形式 5.12if语句的嵌 12if 语句的嵌 套 5.1.3 条 件 运 算 符和条件表达 式 5.2switch语句 switch语句 5.3程序举例 5.3程序举例 习题
1) 在三种形式的if语句中 语句中, 在三种形式的 语句中,在if关键字之后均为表 关键字之后均为表 达式。 该表达式通常是逻辑表达式或关系表达式, 达式。 该表达式通常是逻辑表达式或关系表达式, 但也可 以是其它表达式,如赋值表达式等, 以是其它表达式,如赋值表达式等,甚至也可以是一个变 例如: 语句; 量。例如: if(a=5) 语句; if(b) 语句; 语句; 都是允许的。只要表达式的值为非0,即为“ 都是允许的。只要表达式的值为非 ,即为“真”。 如在:if(a=5)…; 如在 ; 中表达式的值永远为非0, 中表达式的值永远为非 ,所以其后的语句总是要执行 当然这种情况在程序中不一定会出现, 的,当然这种情况在程序中不一定会出现,但在语法上是 合法的。又如,有程序段: 合法的。又如,有程序段: if(a=b) printf("%d",a); else printf("a=0"); 本语句的语义是, 值赋予a,如为非0则输出该值 则输出该值, 本语句的语义是,把b值赋予 ,如为非 则输出该值, 值赋予 否则输出“ 字符串。 否则输出“a=0”字符串。这种用法在程序中是经常出现的。 字符串 这种用法在程序中是经常出现的。
2
5.1 if语句 语句
第五章 5.1if语句 if语句 5.1.1if语句的三 if语句的三 种形式 5.12if语句的嵌 12if 语句的嵌 套 5.1.3 条 件 运 算 符和条件表达 式 5.2switch语句 switch语句 5.3程序举例 5.3程序举例 习题
C语言谭浩强完整课件

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
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
c程序设计教程谭浩强第三版

c程序设计教程谭浩强第三版C程序设计教程是谭浩强教授编写的一本广受欢迎的C语言学习教材。
第三版在前两版的基础上做了进一步的修订和完善,更加适合初学者和中级学习者使用。
本教程涵盖了C语言的基础知识、语法规则、程序设计技巧以及一些高级主题。
以下是对这本教程的详细内容概述。
第一章:C语言概述本章介绍了C语言的发展历程、特点和应用领域,让读者对C语言有一个整体的认识。
同时,也介绍了C语言程序的基本结构和编译、链接过程。
第二章:数据类型、运算符和表达式这一章详细讲述了C语言中的基本数据类型,包括整型、浮点型、字符型等,以及它们在内存中的存储方式。
此外,还介绍了各种运算符的用法和优先级,以及如何构建表达式。
第三章:控制语句控制语句是程序设计中非常重要的部分,本章讲解了条件语句(if、switch)、循环语句(for、while、do-while)以及跳转语句(break、continue、goto)的用法和应用场景。
第四章:数组数组是C语言中一种基本的数据结构,用于存储具有相同类型的多个数据项。
本章介绍了一维数组和二维数组的声明、初始化和访问方法。
第五章:指针指针是C语言的核心概念之一,本章深入讲解了指针的基本概念、指针与数组的关系、指针的运算以及指针在函数中的应用。
第六章:函数函数是程序模块化的基础,本章介绍了函数的定义、声明、调用以及参数传递机制。
同时,也讨论了递归函数和内联函数的概念。
第七章:预处理指令预处理指令是C语言编译过程中的指令,用于在编译前对源代码进行处理。
本章介绍了宏定义、文件包含、条件编译等预处理指令的用法。
第八章:结构体和联合体结构体和联合体是C语言中用于创建复杂数据类型的工具。
本章讲解了它们的声明、初始化以及在程序中的应用。
第九章:位运算位运算是直接对数据的二进制位进行操作的运算。
本章介绍了位运算符的用法和一些常见的位运算技巧。
第十章:文件操作文件操作是程序与外部数据交互的重要方式。
《C语言程序设计》教案(清华谭浩强)

《C语言程序设计》教案(清华谭浩强)第一章:C语言概述1.1 课程介绍介绍C语言的历史和发展解释C语言的特点和应用范围强调学习C语言的重要性和目的1.2 C语言的基本概念解释编程语言和编译器的概念介绍C语言的基本数据类型和变量讲解C语言的语法结构和程序结构1.3 C语言的编译过程解释编译器的角色和功能介绍编译过程中的预处理、编译、汇编和步骤强调编译过程中产生的文件和它们的作用第二章:基本数据类型和运算符2.1 基本数据类型介绍整型、浮点型、字符型和布尔型的概念和用法解释不同数据类型的存储方式和大小强调数据类型的选择和使用场景2.2 变量和常量解释变量的概念和作用介绍变量的声明和初始化方法讲解常量的概念和用法2.3 运算符介绍算术运算符、关系运算符和逻辑运算符的概念和用法解释赋值运算符和条件运算符的作用强调不同运算符的优先级和使用规则第三章:控制语句3.1 条件语句介绍if语句的语法和用法讲解switch语句的概念和用法强调条件语句的选择和嵌套使用3.2 循环语句介绍for循环、while循环和do-while循环的概念和用法解释循环控制语句如break和continue的作用强调循环条件的设置和循环次数的控制3.3 跳转语句介绍goto语句的概念和用法讲解label标签的作用和跳转规则强调跳转语句的使用场景和可能导致的问题第四章:函数和指针4.1 函数的基本概念介绍函数的定义和声明讲解函数的参数传递和返回值强调函数的命名规则和命名规范4.2 指针的概念和用法解释指针的概念和作用介绍指针的声明和初始化方法讲解指针的赋值和指针运算4.3 指针和数组介绍数组的概念和用法解释指针和数组的关系强调指针在数组操作中的应用第五章:结构体和文件操作5.1 结构体的概念和用法介绍结构体的定义和声明讲解结构体的成员访问和内存布局强调结构体在数据组织中的应用5.2 文件操作的基本概念解释文件的概念和文件操作的重要性介绍文件打开、读写、关闭等操作的方法强调文件操作中的错误处理和文件指针的管理第六章:动态内存分配6.1 动态内存分配的概念介绍动态内存分配的原因和必要性解释malloc、calloc和realloc函数的作用和用法强调动态内存分配的注意事项和错误处理6.2 链表的概念和用法介绍链表的定义和结构讲解链表的创建、插入、删除和遍历操作强调链表的优势和应用场景6.3 动态内存分配的应用实例通过实例演示动态内存分配在实际编程中的应用讲解内存泄漏和内存溢出的概念强调编写高效和安全的程序的重要性第七章:字符串处理7.1 字符串的基本概念介绍字符串的定义和表示方法解释字符串的长度和字符串的结束标志强调字符串与数组的区别和联系7.2 字符串的常用函数介绍字符串的输入输出函数如printf和scanf 讲解字符串的拷贝、连接、比较等操作函数强调字符串处理函数的使用和注意事项7.3 字符串处理的应用实例通过实例演示字符串处理在实际编程中的应用讲解字符串排序、查找和替换等操作强调字符串处理在文本分析和数据处理中的应用第八章:标准库函数8.1 标准输入输出库函数介绍标准输入输出库stdio.h中的常用函数讲解文件读写、数据转换等函数的用法和功能强调标准库函数的使用场景和注意事项8.2 字符串处理库函数介绍字符串处理库string.h中的常用函数讲解字符串比较、查找和替换等函数的用法和功能强调字符串处理库函数的使用和与其他库函数的配合8.3 数学计算库函数介绍数学计算库math.h中的常用函数讲解数学运算、三角函数和指数函数等函数的用法和功能强调数学计算库函数在数学计算和科学计算中的应用第九章:并发编程和同步机制9.1 并发编程的基本概念介绍并发编程的定义和目的解释进程和线程的概念和关系强调并发编程的优势和挑战9.2 并发编程的同步机制介绍互斥锁、条件变量和信号量等同步机制的原理和用法讲解同步机制在多线程编程中的应用和注意事项强调同步机制在避免竞态条件和数据一致性中的重要性9.3 并发编程的应用实例通过实例演示并发编程在实际应用中的优势和挑战讲解多线程的创建、同步和通信等操作强调并发编程在多任务处理和性能优化中的应用第十章:C语言编程实践10.1 编程实践的重要性强调编程实践在学习和掌握C语言中的重要性解释编程实践对于提高编程能力和解决问题的作用强调编程实践中的代码质量和编程规范10.2 编程实践的项目和案例介绍常见的编程实践项目和案例讲解实际编程中的问题解决方法和技巧强调编程实践中的调试和测试的重要性10.3 编程实践的资源和工具介绍编程实践中的常用工具和环境讲解集成开发环境(IDE)的使用和代码管理强调编程实践中的团队合作和代码分享的重要性重点和难点解析重点环节1:C语言的基本概念和特点需要重点关注C语言的历史和发展,以及其特点和应用范围。
选择结构设计 PPT课件

Else
If x < 2000 Then y = 0.95 * x Else If x < 3000 Then
第5章
选择结构设计
y = 0.9 * x
Else If x < 5000 Then y = 0.85 * x Else
' 九折
' 八五折
y = 0.8 * x
End If
' 八折
第5章
选择结构设计
y = 0.8 * x
End If Text2.Text = y Text2.Locked = True End Sub
' 八折
第5章
选代码,要求每单击一次命 令按钮,就会依次在窗体上显示下面诗词中的诗句。
静夜思
床前明月光,
疑是地上霜。 举头望明月, 低头思故乡。 (1) 建立应用程序用户界面并设置对象属性,如图 5.5所示。 (2) 编 写 事 件 代 码 。 命 令 按 钮 Command1 的 单 击 (Click)事件代码为
起来的式子(例如2 * 3 > 2 + 3),关系表达式的格式为
〈表达式1〉〈关系运算符〉〈表达式2〉[〈关系运算符〉 〈表达式3〉...]
第5章
选择结构设计
5.2.2 布尔运算符与布尔表达式
布尔表达式是指用布尔运算符连接若干关系表达 式或布尔值而组成的式子。如不等式2≤x≤3可以表示为 2 <= x And x <= 3。布尔表达式的值也是一个布尔值。 常用的布尔运算符有And、Or、Not等3种,如表5-
选择结构是计算机科学用来描述自然界和社会生 活中分支现象的重要手段。其特点是:根据所给定的 条件为真(即条件成立)与否,而决定从各实际可能的不 同分支中执行某一分支的相应操作,并且任何情况下 总有“无论分支多寡,必择其一;纵然分支众多,仅 选其一”的特性。
第5章c语言谭浩强版顶级讲义

图5.3
图5.4
也就是说,对&&运算符来说,只有a≠0,才继续进 行右面的运算。对运算符‖来说,只有a=0,才继 续进行其右面的运算。因此,如果有下面的逻辑表 达式: (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。这点请读者 注意。 熟练掌握c语言的关系运算符和逻辑运算符后,可以 巧妙地用一个逻辑表达式来表示一个复杂的条件。
5.2
逻辑运算符和逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来 的式子就是逻辑表达式。在basic和Pascal语言 中有以下形式的逻辑表达式(AND是逻辑运算 符): (a>b)AND(x>y) 如果a>b且x>y,则上述逻辑表达式的值为 “真”。下面介绍c语言中的逻辑运算符和逻 辑运算。 5.2.1 逻辑运算符及其优先次序 C语言提供三种逻辑运算符:
实际上,逻辑运算符两侧的运算对象不但可以是0和 1,或者是0和非0的整数,也可以是任何类型的数 据。可以是字符型、实型或指针型等。系统最终以 0和非0来判定它们属于“真”或“假”。例如 'c' && 'd' 的值为1(因为‘c‟和‘d‟的ascII值都不为0,按“真” 处理)。 在逻辑表达式的求解中,并不是所有的逻辑运算符 都被执行,只是在必须执行下一个逻辑运算符才能 求出表达式的解时,才执行该运算符。例如:
(2) 关系运算符的优先级低于算术运 算符。 (3) 关系运算符的优先级高于赋值运 算符。 以上关系见图5.1。 例如: c>a+b 等效于 c>(a+b) 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)。
表达式 =0
非0 语句
1.if语句的三种基本形式
形式1: if(表达式) 语句
表达式 =0
例3 输入三个数,按从小到大的顺序输出。
第5章选择分支结构--C 语言程序设计(谭浩强第
三版)
选择结构是3种基本结构之一,经常牵涉到:根据所指定的 条件是否相同,从两组(或多组)操作中选择其一。
要考虑两ห้องสมุดไป่ตู้方面的问题: 1、C语言中如何表示条件? 一般用关系表达式或逻辑表达式 2、C语言中实现选择结构用什么语句?用if语句或switch语句。
b, c均不必判别。
例如: a=1,b=2,c=3,d=4,m=1,n=1 (m=a>b)&&(n=c>d) 判断m,n的值 :结果m=0,n=1,表达式为0
例 写出判断年号是否为闰年的逻辑表达式
满足下列2个条件中之一的为闰年: • 年号能被4整除,但不能被100整除。 • 年号能被400整除。
用变量year表示年号,则逻辑表达式:
(year%4==0 && year%100!=0) || year%400==0 值为1,则year为闰年;否则为非闰年。
!((year%4==0&&year%100!=0)||(year%400= =0))
5.3 if语句(三种形式)
1.if语句的三种基本形式 形式1: if(表达式) 语句 执行过程: 当表达式值非0时, 执行语句,
非0
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", a, b, c);
否则,不执行语句。 表达式的值: 1 –– 结果为真 (条件成立) 0 –– 结果为假 (条件不成立)
例如:
if (x>y) printf(" %d", x) ;
表达式 =0
非0 语句
1.if语句的三种基本形式
形式1: if(表达式) 语句
例2 输入两个实数,按其值由小到大次 序输出这两个数。
main( ) {float a, b, t;
形式2: if(表达式) 语句1
else 语句2
非0
例4 输入一个数,判断它是否能被3整除。
若能,则打印“YES”, 否则,打印“NO”。
语句1
表达式
=0 语句2
main( ) { int n; printf(“input n: ”); scanf(“%d”,&n); if (n%3==0) printf(“YES\n”); else printf(“NO\n”); }
1、逻辑运算符 (1)种类:三种逻辑运算符
&& 逻辑与(相当日常生活中:而且,并且,只在两 条件同时成立时为“真”)
|| 逻辑或(相当日常生活中:或,两个条件只要有 一个成立时即为“真”)
! 逻辑非(条件为真,运算后为假,条件为假,运 算后为真)
“&&”,“||”是双目运算符,“!”是单目运算符。
例:a&&b a||b !a
==
结合方向:自左向右
!=
优先级6(高) 优先级7(低)
优先级别:前4种优先级相同,高于后2种
由高到低:算术运算-关系运算-赋值运算
算术运算符 关系运算符 赋值运算符
高 例 c>a+b
a>b!=c
a==b<c
低
a=b>c
c>(a+b) (a>b)!=c a==(b<c) a=(b>c)
5.2 逻辑运算符和逻辑表达式
若a,b为真,则a&&b为真。 若a,b之一为真,则a||b为真。 若a为真,则!a为假。
(2)逻辑运算真值表
a
b
!a
真真 假
真假 假
假真 真 假假 真
!b a&&b a||b 假 真真
真 假真
假 假真 真 假假
–C语言中,运算量: 运算结果:
0表示“假”, 非0表示“真”, 0表示“假”, 1表示“真”,
(5>3)&&(8<(4-(!0))) 值为0 5>3逻辑值为1 !0逻辑值为1 4-1值为3
8<3逻辑值为0
1&&0逻辑值为0
(3)短路现象:一个逻辑表达式中的逻辑运算符并不一定全 部执行.
例如: a&&b&&c 当a=0(假)时, 当a=1,b=0,
例如: a ¦¦b ¦¦c 当a=1时,
b,c不需判断。 c不需判断。
起来的式子。
例如: !a&&b¦¦x>y && c
(2)逻辑表达式的值:1或0,表示逻辑值“真”或“假”
例 a=4;b=5;
!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’&&‘d’
值为1
在逻辑运算中,非0值参加逻辑运算时被看成1处理.
}
1.if语句的三种基本形式
形式2: if(表达式) 语句1 else 语句2
执行过程: 当表达式值为非0, 执行语句1; 当表达式值为0, 执行语句2。
非0 表达式 语句1
=0 语句2
例如: if(x>y) printf("%d", x); else printf(" %d", y);
1.if语句的三种基本形式
引例:
y=
1/x
10000
当x≠0时 当x=0时
if(x!=0) y=1/x; else y=10000;
此处:用if语句来表示选择结构 用一个关系表达式x!=0来表示条件
5.1 关系运算符和表达式
< <=
1、关系运算: 实质是两个量“比较运算”。>
2、关系运算符 :
>=
种类:6种 < <= == >= > !=
1.if语句的三种基本形式
表达式1 0
形式3:if(表达式1) 语句1
(3)优先级: ! && ||
高(2)
(11) 低 (12)
!(非)
高
算术运算符
关系运算符
&&
||
赋值运算符=
低
如:x= !a>b&&b>c+3 (4)结合方向:
x=( ((!a)>b)&&(b>(c+3)) )
! :从右向左 && :从左向右 || :从左向右
2、逻辑表达式和逻辑表达式的值
(1)逻辑表达式:用逻辑运算符将关系表达式、逻辑量连接