NO.2-2《C语言程序设计》教案备注第二讲运算荐和表达式目1.掌握C语言各种运算符的优先级、结合性;的2.掌握各种表达式值的确定方法;要求3小时学时划分组织形式讲授+自学+独立作业量1.运算符的优先级及结合性点2.表达式值的确定难点[引题上一次课,我们重点讨论了C语言的基本组成成分,程序特点及C语言的基本数据类型和转换关系。通过学习,大家了解到,不同的数据类型在程序中表示的方法是不同的,在计算机内的存储形式也不同,允许进行的处理也不同。比如说,数值型数据中的整型数据在计算机中占2位内存,而字符型数据占1位内存;数值型数据可以进行+、一、*、/等运算,而字符型数据可以进行连接和求子串运算。同时,我们还了解到,为了实现同时对不同数据类型的数据进行处理,必须进行转换。今天我们就来研究,如何实现不同类型数据的运算,即教材中的第五节运算符和表达式。2.5算术运算符和表达式一、运算符和表达式概述(一)表达式1.含义(1)由一个或多个操作,通过运算符连接而成的式子(2)最终为一个结果,类型符合转换规则(3)复杂表达式,其操作执行的顺序由运算符优先级而定如:表达式xx*yx=3.141593.141599"This is a expression"salary2.种类算术表达式赋值表达式关系表达式逻辑表达式条件表达式逗号表达式
《C 语言程序设计》教案 NO.2-2 第二讲 运算符和表达式 备 注 目 的 要 求 1.掌握 C 语言各种运算符的优先级、结合性; 2.掌握各种表达式值的确定方法; 学时划分 3 小时 组织形式 讲授+自学+独立作业 重 点 难 点 1.运算符的优先级及结合性 2.表达式值的确定 [引题]上一次课,我们重点讨论了C语言的基本组成成分,程序特点 及C语言的基本数据类型和转换关系。通过学习,大家了解到,不同 的数据类型在程序中表示的方法是不同的,在计算机内的存储形式也 不同,允许进行的处理也不同。比如说,数值型数据中的整型数据在 计算机中占 2 位内存,而字符型数据占 1 位内存;数值型数据可以进 行+、-、*、/等运算,而字符型数据可以进行连接和求子串运算。同 时,我们还了解到,为了实现同时对不同数据类型的数据进行处理, 必须进行转换。今天我们就来研究,如何实现不同类型数据的运算, 即教材中的第五节运算符和表达式。 2.5 算术运算符和表达式 一、运算符和表达式概述 (一)表达式 1.含义 (1)由一个或多个操作,通过运算符连接而成的式子 (2)最终为一个结果,类型符合转换规则 (3)复杂表达式,其操作执行的顺序由运算符优先级而定 如:表达式 x x*y x=3.14159 3.14159 “This is a expression” salary 2.种类 算术表达式 赋值表达式 关系表达式 逻辑表达式 条件表达式 逗号表达式
NO.2-3第二讲运算符和表达式(二)操作符(运算符)算术运算符赋值运算符逻辑运算符关系运算符三项条件运算符逗号运算符位运算符求字节运算符@二、算术运算符和算术表达式说明书中的运(一)运算符算符全部列出见P24算术运算符一览表(P25-2.4)表 2. 3结合名称优先操作数个应用举例操作符级数 性说明自增R151i++,++i++i是整型变151R量自减i--,i----expr是算151单目减R-expr-术表达式*213L乘运算expr1* expr21213L除运算expr1/expr22%13L求余运算expr1%expr2212L加运算+expr1+ expr2减运筒122I.exnrl-exnr)1.2基本运算符(+,二,*, /,%)(1)整数相除,结果仍为整数指出下列取模运算是否合法?如:23/5=423/7=33.14159%614%3(2)取模运算符%,只适用于整数24%8如:14%3=2int k,24%8=0说明:float f,以下都是2.自增自减运算符(++,-)..错的:k%2;(1)i必须是整型变量10++f%2(i+j)++(2)++和--都有前置和后置i++或++i(i=i+1)i--或--i(i=i-1)(3)作为变量时,前置和后置结果一样:作为表达式中的操作数时结果不同k=3;k=4;j=5;j=5;前置:先加减1后计算j=4;i=3;后置:先计算后加减1m=15m=(++k)*j;m=20m=(--k)*j,n=20n=(i++)*j;n=15n=(i--)*j;
第二讲 运算符和表达式 NO.2-3 (二)操作符(运算符) 算术运算符 赋值运算符 关系运算符 逻辑运算符 三项条件运算符 逗号运算符 位运算符 求字节运算符 ☻二、算术运算符和算术表达式 (一)运算符 算术运算符一览表(P25-2.4) 1. 基本运算符(+,-,*,/,%) (1)整数相除,结果仍为整数 如:23/5=4 23/7=3 (2)取模运算符%,只适用于整数 如:14%3=2 24%8=0 2. 自增自减运算符(++,-) (1)i 必须是整型变量 (2)++和-都有前置和后置 i++或++i (i = i +1) i- -或- -i (i = i -1) (3)作为变量时,前置和后置结果一样;作为表达式中的操作数时 结果不同 前置:先加减 1 后计算 后置:先计算后加减 1 说明 书中的运 算符全部 列出见 P24 表 2.3 说明 i 是整型变 量 expr 是算 术表达式 说明: 以下都是 错的: 10++ (i+j)++ 名 称 操作符 优先 级 操作数个 数 结合 性 应 用 举 例 自增 ++ 15 1 R i++,++i 自减 - 15 1 R i-,i- 单目减 - 15 1 R -expr 乘运算 * 13 2 L expr1* expr2 除运算 / 13 2 L expr1/ expr2 求余运算 % 13 2 L expr1% expr2 加运算 + 12 2 L expr1+ expr2 减运算 - 12 2 L expr1- expr2 指出下列取模运算是否合法? 3.14159%6 14%3 24%8 int k; float f; . k%2; f%2 k=4; j=5; i=4; m=(-k)*j; m=15 n=(i-)*j; n=20 k=3; j=5; i=3; m=(++k)*j; m=20 n=(i++)*j; n=15
NO.2-4《C语言程序设计》教案(4)常用于数组下标改变和循环次数控制如x=10;i=5;a[i++]=x,(二)表达式1.含义由算术运算符和操作数组成的表达式2.注意事项(1)运算次序按操作符优先次序进行,若有括号,则必须配对出现(2)注意运算符的结合性如:计算表达式6*7%2+7%2*5原式=42%2+7%2*5=0+1*5=5若:表达式改为6*(7%2)+7%(2*5)其值为:6+7=13三、赋值运算符和赋值表达式(一)运算符赋值运算符一览表(P27-2.5)分 符号等价于名称优先级结合性例子类2R简赋值y=x单说明2R算关于位操加赋值+=y+=xy-y+x作复合赋2R术--减赋值y-=xy=y-x值运算符复*=2R乘赋值y*=xy-y*x后面讲AVn队生7--1.种类简单赋值运算符:=+=,一=, *=, /=,%=复合赋值运算符:2. 注意事项(1)左边一定是变量,右边是表达式(2)若左右两边数据类型不一致,则首先进行数据转换(二)表达式1.含义由赋值运算符将一个变量和一个表达式连接而成的式子
《C 语言程序设计》教案 NO.2-4 (4)常用于数组下标改变和循环次数控制 如:x=10; i=5; . a[i++]=x; (二)表达式 1.含义 由算术运算符和操作数组成的表达式 2.注意事项 (1)运算次序按操作符优先次序进行,若有括号,则必须配对出现 (2)注意运算符的结合性 如:计算表达式 6*7%2+7%2*5 原式=42%2+7%2*5=0+1*5=5 若:表达式改为 6*(7%2)+7%(2*5) 其值为:6+7=13 ☻三、赋值运算符和赋值表达式 (一)运算符 赋值运算符一览表(P27-2.5) 1.种类 简单赋值运算符: = 复合赋值运算符: +=,-=,*=,/=,%= 2.注意事项 (1)左边一定是变量,右边是表达式 (2)若左右两边数据类型不一致,则首先进行数据转换 (二)表达式 1.含义 由赋值运算符将一个变量和一个表达式连接而成的式子 说明 关于位操 作复合赋 值运算符 后面讲 分 名 称 符 号 例 子 等价于 类 优先级 结合性 简 赋值 = 2 R y=x 单 加赋值 += 2 R y+=x y=y+x 减赋值 -= 2 R y-=x y=y-x 乘赋值 *= 2 R y*=x y=y*x 除赋值 /= 2 R y/=x y=y/x 算 术 复 合
NO.2-5第二讲运算符和表达式2. 一般形式vopexpr3.说明(1)注意结合的规则:自右向左如:X=(y=8)(2)赋值号右边表达式还可以是赋值表达式结果为:y=8X=80如:X=10*(y=8)x=(y=10) /(z=5)结果为:z=5y=10x=2x+=y+=z*z(初值为:10,2030))结果为:z=30y=920x=930四、关系运算符和关系表达式(一)运算符关系运算符一览表(P28-2.6)运算符优先级结合性名称使用10L小于<exprl<expr2>10L大于expr1>expr2L10<=小于或等于exprl<=expr210L大于或等于=expr1>=expr29L等于二expr1=-expr29LI=不等于expr1!=expr21.用于对两个操作量进行大小比较,结果为“真”或“假”值=1通常:结果为“真”值=0结果为“假”2.操作量(expr)为表达式可以是算术、关系、逻辑和赋值表达式如:x>yx+5>y-3(x=10)>(y=5)x<y(x>y)>(y<z)中3.注意结合性和优先级结合性:自左向右优先级:前4个高于后2个;都低于算术运算符而高于赋值运算符相当于:x>(y+z)如:x>y+z相当于:(x<y)!=zx<y!=z相当于:X==(y>z)x==y>z相当于:x=(y>=z)x=y>=z
第二讲 运算符和表达式 NO.2-5 2.一般形式 v op expr 3.说明 (1)注意结合的规则:自右向左 如: x=(y=8) (2)赋值号右边表达式还可以是赋值表达式 如: x=10*(y=8) 结果为:y=8 x=80 x=(y=10)/(z=5) 结果为:z=5 y=10 x=2 x+=y+=z*z(初值为:10,20,30) 结果为:z=30 y=920 x=930 四、关系运算符和关系表达式 (一)运算符 关系运算符一览表(P28-2.6) 1.用于对两个操作量进行大小比较,结果为“真”或“假” 通常:结果为“真” 值=1 结果为 “假” 值=0 2.操作量(expr)为表达式 可以是算术、关系、逻辑和赋值表达式 如:x>y x+5>y-3 (x=10)>(y=5) ‘x’< ‘y’ (x>y)>(y<z) 3.注意结合性和优先级 结合性: 自左向右 优先级: 前 4 个高于后 2 个; 都低于算术运算符而高于赋值运算符 如:x>y+z 相当于: x>(y+z) x<y!=z 相当于: (x<y)!=z x==y>z 相当于: x==(y>z) x=y>=z 相当于: x=(y>=z) 名 称 运算符 优先级 结合性 使用 小于 < 10 L expr1<expr2 大于 > 10 L expr1>expr2 小于或等于 <= 10 L expr1<=expr2 大于或等于 >= 10 L expr1>=expr2 等于 == 9 L expr1==expr2 不等于 != 9 L expr1!=expr2
NO.2-6《C语言程序设计》教案(二)表达式1.含义用关系运算符把操作对象连接而成的式子2.说明操作对象:各种表达式关系表达式值:1或0如:若x=10,y=5则:相当于:x==(y+5)结果为:1X==y+5相当于:(x=3)<(5+y)结果为:1(x=3)<5+y结果为:x=1X=y<y+5相当于:X=(y<(y+5))五、逻辑运算符和逻辑表达式(一)运算符逻辑运算符一览表(P29-2.7)名称运算符优先级结合性使用!15R逻辑反lexpr5逻辑与&&Lexpr1&&expr2L逻辑或4expr1|lexpr21.逻辑运算符是对逻辑量进行操作的运算符逻辑量:“真”和“假”2.操作对象与结果操作对象:逻辑量或表达式(关系表达式或逻辑表达式)操作结果:逻辑量(0或1)(二)表达式1.含义用逻辑运算符把操作对象连接而成的式子2.注意事项(1)结合性和优先级结合性:逻辑反一一自右向左逻辑与和逻辑或一一自左向右优先级:逻辑反最高,高于基本算术运算符:逻辑与较低,逻辑或最低;逻辑或和逻辑与均低于关系和算术运算符:
《C 语言程序设计》教案 NO.2-6 (二)表达式 1.含义 用关系运算符把操作对象连接而成的式子 2.说明 操作对象: 各种表达式 关系表达式值: 1 或 0 如: 若 x=10,y=5,则: x==y+5 相当于: x==(y+5) 结果为:1 (x=3)<5+y 相当于: (x=3)<(5+y) 结果为:1 x=y<y+5 相当于: x=(y<(y+5)) 结果为:x=1 五、逻辑运算符和逻辑表达式 (一)运算符 逻辑运算符一览表(P29-2.7) 1.逻辑运算符是对逻辑量进行操作的运算符 逻辑量: “真”和“假” 2.操作对象与结果 操作对象: 逻辑量或表达式(关系表达式或逻辑表达式) 操作结果: 逻辑量(0 或 1) (二)表达式 1.含义 用逻辑运算符把操作对象连接而成的式子 2.注意事项 (1)结合性和优先级 结合性:逻辑反——自右向左 逻辑与和逻辑或——自左向右 优先级:逻辑反最高,高于基本算术运算符; 逻辑与较低,逻辑或最低; 逻辑或和逻辑与均低于关系和算术运算符; 名 称 运 算 符 优 先 级 结 合 性 使 用 逻辑反 ! 15 R !expr 逻辑与 && 5 L expr1&&expr2 逻辑或 || 4 L expr1||expr2