第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课

2026-03-30
| 47页
| 60人阅读
| 1人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 课件
知识点 数据类型和简单程序设计
使用场景 同步教学
学年 2026-2027
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 PPTX
文件大小 229.11 MB
发布时间 2026-03-30
更新时间 2026-03-30
作者 糖醋排骨009
品牌系列 上好课·上好课
审核时间 2026-03-30
下载链接 https://m.zxxk.com/soft/57082362.html
价格 5.00储值(1储值=1元)
来源 学科网

内容正文:

2.7、2.8节:运算符及表达式(一) C语言程序设计 电子工业出版社 掌握运算符基本概念与规则,理解表达式求值过程 熟练运用运算符编写表达式,培养代码调试与逻辑推理能力 培养严谨的编程思维与良好的编码习惯,提升专业兴趣 知识目标 能力目标 素养目标 01 01 01 学习目标 目录 Part 01 教学导入 Part 02 知识讲授 Part 03 师生互动 Part 04 课堂练习 Part 05 课堂小结 教学导入:编程中的“加减乘除” 生活中的计算难题 假设你有100元钱,买了3本书(每本25元)和一支5元的笔。请问,你还剩下多少钱? 计算机如何理解? 虽然我们心算很容易,但想让计算机帮我们计算,就需要用它能理解的“语言”来描述过程。这就是我们今天要学习的核心——运算符和表达式。 教学导入:基本运算符 运算符的概念与分类 功能丰富:C语言提供了丰富的运算符集合,用于实现复杂的运算逻辑。 算术运算:我们常用的加、减、乘、除等操作都属于算术运算符,是编程的基础。 核心要素:理解运算符的优先级和结合性,是编写正确表达式的关键。 知识讲授 运算符及表达式 算术与自增自减运算符 位运算与赋值运算 第一部分 算术与自增自减运算符 知识讲授 知识讲授 知识讲授:算术运算符 + 加法运算符 用于数值相加,也可作为正值运算符使用。 - 减法运算符 用于数值相减,也可作为负值运算符使用。 * 乘法运算符 用于计算两个数值的乘积。 / 除法运算符 用于计算两个数值的商,注意整数除法会舍去小数部分。 % 求余运算符 也称模运算符,用于计算两个整数相除后的余数。 知识讲授:除法与取余的特殊规则 除法运算符 ( / ) 当两个整数相除时,结果只保留整数部分,小数部分会被直接舍弃。 示例: 5 / 2 = 2 (整数除法,结果为整数,小数部分被舍弃) 7 / 3 = 2 (整数除法,结果为整数,小数部分被截断) 5.0 / 2 = 2.5 (浮点数除法,结果保留小数) 7 / 3.0 = 2.333... (浮点数除法,结果保留小数) 求余运算符 ( % ) 计算两数相除的余数。注意:两侧操作数必须都是整型数据。 示例: 5 % 3 = 2 -7 % 2 = -1 (结果的符号与被除数相同) 2 % -7 = 2 (结果的符号与被除数相同) // 错误用法:5.5 % 2 (包含浮点数) 知识讲授:算术表达式 基本定义 由算术运算符(如 +、-、*、/)和操作数组成的式子。操作数可以是常量、变量或另一个表达式。 关键规则 括号()可以改变运算的优先级,括号内的运算会优先进行,遵循“先乘除后加减,有括号先算括号里”的原则。 代码示例 2 + 3 * c 7 % 4 * a (3 + 1) 2 + 3 * c / 7 % 4 * (3 + 1) 例题分析1 问题描述 已知变量定义: int a = 10, b = 3; 解答与解析 计算结果: a / b =3(整数除法,舍去小数部分) a % b =1(取余数) 核心解析: 严格遵循整数除法和取余运算的规则,结果均为整数。 请计算以下表达式的值: 整数除法:a / b 取余运算:a % b 例题分析2 计算表达式:5 + 3 * 2 - 8 / 4 第一步:先算乘除 3 × 2 = 6 8 ÷ 4 = 2 第二步:再算加减 5 + 6 = 11 11 - 2 = 9 最终结果:9 关键规则:遵循“先乘除,后加减”的运算符优先级。 课堂问答 问题 1:表达式 7 / 2 的结果是多少?为什么? 答案:3,因为整数相除只保留整数部分,舍去小数。 问题 2:表达式 7 % 2 的结果是多少?它的作用是什么? 答案:1,这是求余运算(模运算),用于计算两数相除后的余数。 问题 3:如何用C语言表达式表示“a的平方加上b的平方”? 答案:a * a + b * b (注:C语言中通常使用乘法表示平方,而非 a**2)。 背诵记忆 基本算术运算符 C语言中基本的算术运算符包括:+、-、*、/、% 整数除法规则 两个整数相除,结果为整数,小数部分被舍弃。 取余运算符 (%) 取余运算符两侧的操作数必须都是整型数据。 运算优先级规则 算术表达式遵循“先乘除,后加减”的优先级规则。 课堂练习 编程任务要求 输入功能 从键盘输入两个整数,分别存入变量 num1 和 num2。 计算与输出 计算并输出它们的和、差、积、商和余数。 关键提示 输入输出函数 使用 scanf 进行输入,printf 进行格式化输出。 运算规则注意 注意整数除法(/)和取余(%)的规则,除数不能为零。 知识讲授:自增、自减运算符 自增运算符 (++) 作用:使变量的值加1,是一种简化的赋值操作。 示例:i++等价于i = i + 1 自减运算符 (- -) 作用:使变量的值减1,常用于循环结构中。 示例:j- -等价于j = j - 1 核心要点:这是C语言中非常独特且常用的运算符,本质上是对变量进行加1或减1的简化操作,在编写循环逻辑时非常高效。 知识讲授:自增自减中前置与后置的区别(难点) 知识讲授:自增自减中前置与后置的区别(难点) 知识讲授:自增自减中前置与后置的区别(难点) 前置运算 (++a, --a) 规则:先对变量进行自增/自减,再使用变量的值参与其他运算。 inta = 1, b; b =++a;// a先变为2,再赋值给b // 结果:a = 2, b = 2 后置运算 (a++, a--) 规则:先使用变量的当前值参与其他运算,运算结束后再对变量进行自增/自减。 inta = 1, b; b =a++; // a的当前值1先赋值给b,然后a变为2 // 结果:a = 2, b = 1 知识讲授:自增、自减表达式 基本定义 由自增、自减运算符(++、--)和操作数组成的式子,称为自增自减表达式。 示例: count++ --index 重要注意事项 操作数限制: 自增、自减运算符的操作数只能是变量,不能是常量或表达式。 错误示例: 5++ (常量不可修改,不可自加) (a + b)-- (表达式无存储单元,不可自加) 例题分析:前置与后置的区别 代码示例 (C语言) inti=3, j; j = i++;// 情况1:后置 printf("j=%d, i=%d", j, i);// 输出 j=3, i=4 i=3; j = ++i;// 情况2:前置 printf("j=%d, i=%d", j, i);// 输出 j=4, i=4 情况 1:后置自增 (j = i++) 执行逻辑:先赋值,后自增。 第一步:将 i 的当前值 (3) 赋给 j 第二步:i 自增 1,变为 4 情况 2:前置自增 (j = ++i) 执行逻辑:先自增,后赋值。 第一步:i 先自增 1,变为 4 第二步:将 i 的新值 (4) 赋给 j 课堂问答 01. i++ 和 ++i 的本质区别是什么? 02. 在表达式 a = b++ 中,执行后a和b的值分别是如何变化的? 03. 为什么说自增自减运算符的操作数只能是变量? 答案: i++ 是“先用后加”, ++i 是“先加后用”。 答案:a 等于 b 的原值, b 的值增加1。 答案:因为它们需要修改操作数的值,而变量才有可写的内存空间。 背诵记忆 前置 ++/--:先变身,后工作 变量先完成加1或减1的“变身”,再参与其他运算“工作”。 后置 ++/--:先工作,后变身 变量先参与其他运算“工作”,运算结束后再完成加1或减1的“变身”。 重要规则:自增自减运算符的操作数只能是变量,不能是常量或表达式。 课堂练习 代码分析题 已知初始值:int x = 5; 1. 后置自增:y = x++ * 2; 思考:先运算还是先自增?计算后 x = ?, y = ? 2. 前置自增:y = ++x * 2; 思考:先运算还是先自增?计算后 x = ?, y = ? 编程实战任务 编写一个完整的程序,分别演示前置自增和后置自增的效果,并输出结果进行验证。 // 示例代码结构 intmain() { inta = 5, b = 5; inty1 = a++ * 2;// 后置 inty2 = ++b * 2;// 前置 // 输出结果... } 第二部分 知识讲授 位运算与赋值运算 知识讲授 知识讲授:位运算基础概念 核心概念 位运算是直接对整数的二进制位进行操作的运算。它是计算机底层数据处理的基础,具有极高的执行效率。 五大运算符 本堂课将重点学习五种基本位运算符:按位与 (&)、按位或 (|)、按位异或 (^)、按位左移 (<<) 和按位右移 (>>)。 知识讲授:按位与 (&) 和按位或 (|) 按位与 (AND) & 运算规则:两个二进制位都为1时,结果为1;否则为0。 口诀:有0出0,全1出1 示例:计算 3 & 5 00000011 (3的二进制) & 00000101 (5的二进制) ----------- 00000001 (结果为1) 按位或 (OR) | 运算规则:只要有一个二进制位为1,结果就为1;否则为0。 口诀:有1出1,全0出0 示例:计算 3 | 5 00000011 (3的二进制) | 00000101 (5的二进制) ----------- 00000111 (结果为7) 知识讲授:按位异或 (^) 运算规则与示例 规则:两个二进制位相同为 0,不同为 1。 示例:计算 3 ^ 5 00000011 (3) ^ 00000101 (5) ----------- 00000110 (6) 核心特性 归零律 (a ^ a = 0) 任何数异或自身都等于 0,因为每一位都相同。 恒等律 (a ^ 0 = a) 任何数异或 0 都等于它本身,因为每一位都不变。 知识讲授:按位左移 (<<) 和右移 (>>) 按位左移 (Left Shift) 运算规则:左移丢弃高位,右侧补0 数学效果:等价于乘以 2 的 n 次方。 示例:3 << 1 (3左移1位) 00000011 (十进制 3) << 1 ----------- 00000110 (结果为 6) 按位右移 (Right Shift) 运算规则:右移丢弃低位,左侧补符号位 数学效果:等价于除以 2 的 n 次方。 示例:6 >> 1 (6右移1位) 00000110 (十进制 6) >> 1 ----------- 00000011 (结果为 3) 例题分析 计算表达式:9 & 6 | 3 的值(注意:按位与优先级高于按位或) 步骤 1:计算 9 & 6 (按位与) 1001 (9) & 0110 (6) ------- 0000 (结果为 0) 步骤 2:计算 0 | 3 (按位或) 0000 (0) | 0011 (3) ------- 0011 (结果为 3) 最终结果:表达式 9 & 6 | 3 的值为3 课堂问答 01.按位与、按位或、按位异或的运算规则分别是什么? 答案:按位与(&):全1为1;按位或(|):有1为1;按位异或(^):不同为1。 01.按位左移一位和按位右移一位,在数学上通常分别等同于什么操作? 答案:左移一位 ≈ 乘以2;右移一位 ≈ 除以2(对于正数)。 01.位运算的操作对象是什么?(是十进制数还是二进制位?) 答案:操作对象是二进制位(bit)。 背诵记忆 运算符 名称 运算规则 & 按位与 有0出0,全1出1 | 按位或 有1出1,全0出0 ^ 按位异或 相同为0,不同为1 << 按位左移 左移n位,相当于乘以 2^n >> 按位右移 右移n位,相当于除以 2^n(取整) 课堂练习 基础分析题 Q1. 位移运算 已知变量x=5(二进制为0101),执行x = x >> 1; 后,变量x的值是多少? Q2. 位移运算分析 已知 int a = 7; 执行 a = a << 2; 后,变量 a 的值是多少? 编程实战 任务:二进制最低位检测 编写一个程序,输入一个整数,使用位运算判断它的二进制表示中最低位是否为1。 提示: 可以使用该整数和 1 进行按位与运算(&)来实现判断。 答案:2 答案:28 知识讲授:赋值运算符 知识讲授:赋值运算符 基本赋值运算符 (=) 核心作用 将一个表达式的值赋给一个变量,是程序中最基础的数据操作。 代码示例 int a = 2;// 将常量2赋给变量a int b = 4 * 2;// 将表达式结果赋给变量b 关键区别:赋值 vs 数学等号 赋值运算符“=”表示一个操作,即将右边的值存入左边变量的内存空间,不等同于数学中的相等关系。 知识讲授:复合赋值运算符 定义与作用 定义:在赋值运算符“=”前加上其他二目运算符构成。 作用:简化代码书写,提高编译效率。 C语言中的复合赋值运算符 算术运算:+=, -=, *=, /=, %= 位运算:<<=, >>=, &=, ^=, |= 代码简化示例 简化写法:a += 5; 等价于:a = a + 5; 简化写法:b *= (4 + 3); 等价于:b = b * (4 + 3); 简化写法:x %= 10; 等价于:x = x % 10; 知识讲授:赋值表达式 知识讲授:赋值表达式 基本定义与形式 由赋值运算符和操作数组成的式子。一般形式为: 变量 赋值运算符 表达式 嵌套特性 赋值表达式可以嵌套,即一个赋值表达式可以作为另一个赋值表达式的操作数。 任何赋值表达式都有一个值,即被赋值变量的值。 代码示例解析 int a, b; a = (b = 6); 执行过程与结果 第一步:先执行括号内的b = 6,将常量6赋给变量b。 第二步:将表达式b = 6的值(即6)赋给变量a。 最终结果:变量 a 和 b 的值均为 6。 例题分析 问题1:复合赋值运算 已知 int a = 2, b = 3; 执行 a *= b + 1; 后,a 的值是多少? 解析:复合赋值运算符优先级较低,等价于 a = a * (b + 1)。 计算过程:2 * (3 + 1) = 8。 结果:a = 8 问题2:嵌套赋值运算 已知 int x, y; 执行 x = (y = 5) + 3; 后,x 和 y 的值分别是多少? 解析:赋值表达式本身有值,即所赋的值。先执行 y = 5,再执行 x = 5 + 3。 结果:x = 8, y = 5 背诵记忆 基本赋值运算符 符号:= 作用:将右侧表达式的值赋给左侧变量。 示例:a = 10; 复合赋值运算符 形式: +=, -=, *=, /=, %= >>=、>>=、|=、^=、&= 作用:运算与赋值结合,简化代码。 示例:a+=5;等价于a=a+5; 赋值表达式特性 右结合性:连续赋值从右向左计算。 有返回值:表达式本身的值即被赋予的值。 示例:a=b=10;等价于a=(b=10); 课堂练习 01. 运算符改写 将下列语句用复合赋值运算符改写: 1. x = x % 10; 2. y = y - (z-2); 02. 连续赋值分析 分析表达式的执行顺序及结果: a = b = c = 10; 03. 复合赋值嵌套 已知初始值:int m = 5; 执行 m -= m *= 2; 答案: 1. x %= 10; 2. y -= (z-2); 答案: 执行顺序:从右向左。 结果:a, b, c 均为 10。 结合性:右结合。 答案: 顺序:先执行 m *= 2 (m=10),再执行 m -= 10。 结果:m = 0。 课堂小结 第一堂课:基础运算 算术运算符 +、-、*、/、%,重点掌握整数除法和取余规则 自增自减运算符 ++、--,难点在于前置“先变后用”与后置“先用后变” 第二堂课:进阶运算 位运算符 &、|、^、<<、>>,直接操作二进制位,效率极高 赋值运算符 = 及复合赋值 (+=, -=...),掌握赋值表达式的嵌套逻辑 核心思想总结 理解运算符的规则、优先级和结合性,是编写正确表达式的关键。请务必将这些知识点串联起来,形成完整的知识体系。 课堂小结 课后任务 基础题:数字反转 编写程序,输入一个三位数,将其各位数字反转后输出。 提示:使用除法和取余运算分解每一位数字。 提高题:位运算交换 利用位运算编写程序交换两个整数的值,要求不使用第三个临时变量。 提示:可以使用按位异或运算的特性。 思考题:运算符优先级 查阅资料,了解C语言中运算符的完整优先级和结合性表,并尝试分析复杂表达式的求值过程。 谢谢观看 THANKS $

资源预览图

第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课
1
第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课
2
第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课
3
第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课
4
第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课
5
第2章 第7、8节:运算符及表达式(一)(课件)-《C语言程序设计》(电子工业出版社)上好课
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。