c语言运算符和表达式(课堂PPT)

上传人:日度 文档编号:131152078 上传时间:2020-05-04 格式:PPT 页数:69 大小:617.50KB
返回 下载 相关 举报
c语言运算符和表达式(课堂PPT)_第1页
第1页 / 共69页
c语言运算符和表达式(课堂PPT)_第2页
第2页 / 共69页
c语言运算符和表达式(课堂PPT)_第3页
第3页 / 共69页
c语言运算符和表达式(课堂PPT)_第4页
第4页 / 共69页
c语言运算符和表达式(课堂PPT)_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《c语言运算符和表达式(课堂PPT)》由会员分享,可在线阅读,更多相关《c语言运算符和表达式(课堂PPT)(69页珍藏版)》请在金锄头文库上搜索。

1、1 内容回顾 单个字符的输入和输出函数字符输出函数putchar c 字符输入函数getchar 格式化输入 scanf 输出 printf 函数的用法整型数据的输入输出 d o x u 实型数据的输入输出 f e lf le 字符型数据的输入输出 c 常用函数 包含头文件 函数原型 第三章 运算符和表达式 3 本章内容 3 1算术表达式3 2赋值表达式3 3逻辑表达式3 4其他表达式3 5多种类型混合运算 4 运算符简介 C语言中 数据是程序处理的对象 运算是对数据进行加工的过程 体现数据之间的各种不同运算关系的符号就称为运算符 C语言中 除了控制语句和输入输出以外的几乎所有的基本操作都是用

2、运算符来实现的 例如 赋值操作的功能 在C语言中是用赋值运算符 来实现的 5 C语言的运算符按照其功能分为以下13类 算术运算符 下标运算符 关系运算符 分量运算符 逻辑运算符 强制类型转换运算符 类型 赋值运算符 及其扩展赋值运算符求字节数运算sizeof条件运算符 位运算符 逗号运算符 指针运算符 其他运算符如函数调用运算符 6 学习运算符 主要掌握以下4点 运算符操作的数据的类型 不同的运算符操作的数据的类型不一定相同 而且每种运算符操作的数据的类型是相对固定的 运算符操作的数据的个数 不同的运算符操作的数据的个数不一定相同 根据运算符连接运算对象的个数 一般分为单目运算符 如 双目运算

3、符 如 和三目运算符 如 7 运算符在整个运算符系统中的优先级 优先级是指在运算对象的左右都有运算符时运算的先后次序 运算对象先做优先级高的运算 如 比 优先级高 运算符操作的数据的结合性 运算符的结合性规定了在表达式求解过程中 若运算对象其左右运算符优先级相同时的运算方向 结合性有两种 左结合 从左到右计算 和右结合 从右到左计算 8 表达式 用运算符将运算对象 常量 变量 函数等 连接而成的式子 如a b c 1 5 a 表达式使用时应注意表达式的值及类型 a 不同类型的运算符所表示的表达式类型也是不同的 表达式一般有算术表达式 赋值表达式 关系表达式 逻辑表达式 逗号表达式 条件表达式等

4、表达式 b 表达式虽然有各种类型 但它总是有确定的值的 根据运算符的优先级和结合性进行计算 9 表达式书写的一般规则 表达式必须写在同一行上 只能使用圆括号 且左右括号个数要相同 有多层括号时内层括号中的运算优先 如 写作 1 0 2 a x a x 4 x 例 写出下列代数式的C算术表达式 1 4 x 1 3 x 1 pow 4 x 1 0 3 x y 2 sqrt x x y y 10 3 1算术表达式 一 基本算术运算符 加法运算或正号运算符 减法运算或负号运算符 乘法运算符 除法运算符 求余运算符 或称模运算符 自增运算符 自减运算符 3 1 1算术运算符 11 算术运算符的优先级和结

5、合性 单目 双目 双目 从右向左 从左向右 如 5 3 2相当于 5 3 2 结果为 4 优先级 3 5 3相当于 3 5 3结果为0 结合性 12 注意 1 与数学中的运算顺序相似 先乘除 后加减 从左到右 2 求余运算符 要求两个运算对象均为整型数据 余数符号与左边的运算对象符号相同 如 2 3为2 9 5为 4 9 5为4 3 运算符的右操作数不可以为0 4 字符类型的数据以该字符的ASCII码参加运算 如 a 2相当于97 2 13 5 运算符 操作数的类型不同 功能不同 当两个操作数均为整型时 其结果的类型也为整型 a 若除数和被除数都为正值 结果为正 直接舍去小数部分 如 5 2的

6、结果为2 若两个操作数中有一个为实数 则结果是double型 因为所有实数都按double型进行运算 如 5 0 2的结果2 5 b 若除数或被除数中有一个为负值 则舍入的方向是不固定的 如 5 3 多数机器采取 向零取整 的方法 即5 3 1 5 3 1 取整后向零靠拢 14 整除和求余数的特殊用处 123 10的结果是3 12 10的结果是2 123 10 结果是12 12 10的结果是1 通过整除和求余数交叉应用 可以分解一个整数 这个技巧以后我们要经常使用 小程序 输入一个三位数的整数 请分离出各位 十位 百位 并输出 15 二 自增 自减运算符运算符号 自增运算符 自减运算符 功能

7、使变量的值增1或减1 用途 常用于循环语句中使循环变量自动加或减 也用于指针变量 使指针指向下或上一个地址 操作数 只能是变量不能是常量 表达式和函数 如 i i i i是正确的 8 sin 4 x y 是错误的 结合性 自增 减 运算符的结合性是右结合 优先级 单目运算符 优先级高于算术运算符 低于括号类运算符 16 作用于变量的形式有两种 前缀方式 prefix 运算符变量 如 i i 后缀方式 postfix 变量运算符 如i i 在使用 之前 先使 的值加 减 在使用 之后 再使 的值加 减 17 自增 自减运算取变量的值作为表达式的值 如 设n 10 n 1 n n 1 11 2 取

8、n值11作为表达式 n的值 n 1 取n值10作为表达式n 的值 2 n n 1 11 例子 inti k i 2 k i i 2 k i i 3 i 3 k 3 k 2 k ii i 1 i i 1k i 18 例3 1 includevoidmain inta 2 b 2 x y x a 2 前缀运算y b 1 后缀运算printf x dy d n x y printf a db d n a b 运行结果 x 3y 1a 1b 3 a a 1 x a 2 y b 1 b b 1 19 连续的 表示前两个是对a的自减 最后的 表示减法运算 例3 2 includevoidmain inta

9、 2 b 2 c c a b 变量a为前缀运算 b为后缀运算printf a d b d c d n a b c a b 2 c a b printf a d b d c d n a b c a b 2 printf a d n a printf b d n b c a b a b增1后的值参加运算printf c d n c a a 1 c a b b b 1 c a b c a b a a 1 c a 1 b 1 b b 1 输出 a 3 b 1 c 5 输出 a 1 b 2 c 4 输出 c 6 输出 a 2 输出 b 3 说明 C语言处理时是从左到右取最多个数的符号作为一个合法的运算符

10、 20 3 1 2算术表达式 用算术运算符和括号将运算对象 也称操作数 连接起来的 符合 语法规则的式子 称为 算术表达式 运算对象包括常量 变量 函数等 例如 5 a 是一个合法的表达式 21 3 2 1赋值运算符1 运算符 2 作用 将一个数据或表达式的值赋给一个变量 如 表示把常量3赋给变量ay a sin z 表示把表达式a sin z 的结果求出来再赋给一个变量y注 赋值运算符与数学中的等号不同 赋值运算符求解后能够得到一个运算结果 3 赋值运算符的优先级和结合性 优先级较低 结合性是从右向左 如 x y 3 3 2赋值表达式 22 3 2 2赋值表达式变量 表达式计算赋值运算符右侧

11、表达式的值将赋值运算符右侧表达式的值赋给左侧的变量将赋值运算符左侧的变量的值作为表达式的值例 n 2 n n 1 23 对赋值表达式的说明 a 赋值运算符左侧只能是变量 不可以是表达式 函数或常变量也不能作为左值 b 赋值表达式中右边的表达式又可以是赋值表达式 例 a b 7赋值表达式中含有多个赋值运算符时 从右向左依次赋值 c 赋值表达式可以以表达式形式出现在某些语句 如输出语句 循环语句等 中 如 printf d a b 24 3 2 3赋值语句变量 表达式 功能 先计算表达式的值 然后将值赋给变量 例 inta b c floatx y x sqrt 7 y x 4 a b c 6 2

12、5 3 2 4复合赋值运算符 双目运算符与赋值运算符的合成或简化 称为复合赋值运算符 语言规定可以使用 种复合赋值运算符 复合赋值运算符的优先级和结合性同赋值运算符 26 变量双目运算符 表达式 复合赋值运算符的功能 先将变量与赋值运算符后面的表达式进行一次双目运算符所指定的运算 然后再将运算结果赋给变量 例如 等价于 等价于 等价于 以 为例来说明 它相当于使 进行一次自加 的操作 即先使 加 再赋给 27 注意 如果 右边是包含若干项的表达式 则相当于它有括号 如 x y 3 x y 3 x x y 3 不要错写成x x y 3 复合赋值运算表达式 变量双目运算符 表达式 是个整体 步骤

13、1 左边变量的当前值与右边整个表达式进行相应运算 2 把1 的结果赋给左边的变量 3 赋值表达式的值是左边变量的值 28 例3 3赋值运算符的使用 includevoidmain inta 5 b 5 c 5 a 2 b a 3 c a 1 printf a d b d c d n a b c 结果 a 3 b 30 c 2 a a 2 b b a 3 c c a 1 29 3 3逻辑表达式 关系运算符是用来比较两个运算对象大小的 运算结果是成立或不成立 如果成立 则结果为逻辑值 真 用整数 1 来表示 如 5 5如果不成立 则结果为逻辑值假 用整数 0 来表示 如 5 5 3 3 1关系运算

14、符及关系表达式 1 关系运算符 30 C语言提供的6种关系运算符 3 3逻辑表达式 31 2 关系运算符的优先级 关系运算符的优先级低于算术运算符 高于赋值运算符 的优先级相同 的优先级相同 关系运算符的结合性 左结合如 intx 7 计算下面关系表达式的值 x 5 11 1 5 高低 32 3 关系表达式 用关系运算符将两个表达式连结而成的式子 如 a b a b b c a 3 b 5 a b b c 等 C语言中并没有bool这个数据类型或说逻辑型数据 故表示关系运算结果时 以1代表真 以0代表假 在实际运行过程中 非零值为真 零为假 33 如 1 若有inta 3 b 2 c 1 d

15、则d a 3 b 4 结果为0 d a b c 结果为0 d a c c 结果为1 2 若inta 5 b 3 printf d a b 34 例3 4分析下面程序的运行结果 includevoidmain floatx y 0 3 y y 11 x 3 0 3 if x y printf ok x y elseprintf no x y 说明 两个实数一般不作相等或不等比较 因为实数表示或在计算过程中有时存在误差 结果 no x y 35 字符数据可以进行大小比较 比较时 用字符的ASCII码进行比较 如 A B Z a 36 例3 5 includevoidmain inta b c sc

16、anf d d d a 1 b 3 c 4 a 1 b 12 c 5 a 0 b 12 c 5 37 3 3 2逻辑运算符及逻辑表达式 1 逻辑运算符逻辑与 表示并且 逻辑或 表示或者 逻辑非 表示相反 例 a 例 a b 例 a b 结合性 单目运算 右结合 双目运算 左结合 38 用逻辑运算符将关系表达式或逻辑量连接而成的式子 如 x 33 5 x y 7逻辑运算对象可以任何类型的数据 整型 实型 字符型 指针型 枚举型 判断逻辑运算对象的真假非0表示真0表示假 2 逻辑表达式 x y可以是任意表达式 39 逻辑表达式的运算结果为一逻辑值 即真或假 1 表示逻辑真 即满足条件 0 表示逻辑假 即不满足条件 逻辑表达式在程序中一般用于控制语句 if for while dowhile 对某些条件作出判断 根据条件的成立 真 与不成立 假 决定程序的流程 40 3 逻辑运算的规则 逻辑与 逻辑或 逻辑非 真值表xyx yx y x假假001假真011真假010真真110 000非0非00非0非0 5 7 0 7 7 41 总结 运算结果为运算对象逻辑值的反当运算对象为非零值时 则运算结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号