内容正文:
第2章 2.6 运算符和表达式
一、教学目标
1.识记运算符的分类及表达式的定义。
2.掌握算术运算符的运算规则。
3. 掌握算术表达式的求值方法。
二、重点难点
1.重点:掌握算术运算符的规则。
2.难点:掌握算术表达式的求值方法。
三、教学时间
本任务教学,课内计划1课时。
4、 教学过程
教学过程
教学环节
教师活动
学生活动
设计意图
导入新课
例:计算圆面积的语句
s=3.14159*r*r;
想一想:r,3.14159,3.14159*r,3.14159*r*r, s=3.14159*r*r 是什么?
*是什么?
该语句中r,3.14159,3.14159*r,3.14159*r*r, s=3.14159*r*r都是表达式
*是运算符, 3.14159是常量,s是变量
C语言程序由若干条语句组成,每条语句由变量、运算符、表达式、函数调用和控制语句等构成。C语言的运算符十分丰富,所包含的内容也很广泛。表达式是由运算对象(包含常量、函数、变量)和运算符按一定规则连接起来的有意义的式子。表达式中可以包含运算符、常量、变量、函数调用等。下面就介绍语句中最基本的元素:运算符合表示式。
根据所学知识和已有经验尝试回答问题
学生通过理解、思考,初步了解表达式和运算符
通过问题入手,在掌握输入和输出语句的基础上增加对本节课的理解
引出所学主题,导入新课
讲授新课
一、运算符
C语言中,数据是程序处理的对象,运算是对数据进行加工的过程,体现数据之间的各种不同运算关系的符号就称为运算符。
C语言中,除了控制语句和输入输出以外的几乎所有的基本操作都是用运算符来实现的。
例如:赋值操作的功能,在C语言中是赋值运算符“=”来实现的。
二、算术运算符
说明:
1 模除运算是两个整数相除后取余数,要求“%”的两边必须是整型数据。
2 若算术运算符两边均为整数,则结果仍为整数。如7/3=2,1/2=0.
3 若参加运算的两个数中有一个数为实数,则结果为double型。
4 每个运算符都有一个优先级,如乘法与除法的优先级高于加法与减法
在对表达式求值时,按运算符优先级的高低次序进行,如先乘除、后加减。括号可改变运算次序。若一个运算符对象两侧的运算符的优先级相同,则按规定的“结合方向”处理。算术运算符的结合方向都是“从左到右”,即“左结合性”。以后可以看到,有些运算符的结合方向为“从右到左”,即“右结合性”。
优先级是指表达式中包含多个运算符时,先进行优先级高的运算符操作,然后进行优先级低的运算符操作;
当表达式中包含的几个运算符的优先级全相同时,由运算符的结合性来决定他们的运算顺序。
结合性: 同一优先级,自左向右,为左结合性,反之为右结合性。
初等运算符( [ ]、( )、 . 、-> )
↓
单目运算符
↓
算术运算符
↓
关系运算符
↓
逻辑运算符(不包括逻辑非运算符!)
↓
赋值运算符
↓
逗号运算符
三、自增、自减运算符
1、自增、自减运算符
作用:
自增运算符++: 使变量的值增1
自减运算符--: 使变量的值减1
2、两种形式
前缀形式: ++i, --i (在使用i之前,先使i的值加1(减1))
后缀形式: i++, i-- (在使用i之后,再使i的值加1(减1))
结合方向与优先级:
++,--的结合方向:从右至左
++,--的优先级:
例:int j=5, i=1, k, n;
n=-++i;
k=--j*2;
自增、自减运算符为“右结合性”,优先级为2。例如:
int k=10;
执行语句“k=k+1;”后,变量k的值增1,即为11.也可用语句”k++;”代替,即“k++;”与”k=k+1;“等价。
同样,“k--;”与”k=k+1;“等价。
“++”为自增运算符,“--”为自减运算符。
自增、自减运算表达式的结合方向都是自右至左。但“++k”与”k++”如果作为表达式的一部分出现,它们的运算次序不同。前者先执行“k=k+1”,然后再使用k的值;而后者则先使用k的值,然后再执行”k=k+1”。
例如 2-12 编写自增运算符程序。
#include <stdio.h>
main()
{ int i,j,k;
k=30;
i=k++; //先将k的值30赋给i,再将k值增1,此时k=31,i=30
printf(“i=%d,k=%d
”,i,k);
j=++k; //k值先增1,再将k值赋予j,此时k=32,j=32
printf(“
j=%d,k=%