预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共58页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

教学内容:4.1数据运算的基本概念4.2算术运算4.3赋值运算4.4关系运算4.5逻辑运算4.6自增自减运算4.7其它运算教学要求:1.掌握各种运算符的优先级、结合方向。2.掌握各种数据运算的运算符的运算。3.掌握混合运算时的类型转换规则。4.1数据运算的基本概念3.运算符的优先级当一个表达式中出现多个运算符时,表达式的求值运算按运算符的优先级别从高到低的顺序执行。在C语言中,将44种运算符的优先级从高到低共分为15个等级。如表4.1所示。4.运算符的结合性(1)运算符的左结合性:当一个操作数两侧的运算符具有相同的优先级时,操作数先与左边的运算符结合,即自左至右的结合方向。(2)运算符的右结合性:即自右至左的结合方向。。除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符都是左结合性。初等运算符()、[]、单目运算符!、++、––、+、–、(类型)算术运算符、/、%,+、–关系运算符<、>、<=、>=,==、!=逻辑运算符&&、¦¦条件运算符?:赋值运算符=、+=、–=、=、/=、%=逗号运算符,5.表达式用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子,称为表达式。(1)简单表达式:表达式中只有一个运算符的表达式,被称为普通表达式,或称为简单表达式。(2)复合表达式:有多个运算符构成的表达式,被称为复合表达式。(3)特殊表达式:在使用中,单个常量、变量和函数(返回值)都可以看作是一个表达式,称为特殊表达式。6.表达式求值每一个C的合法表达式,经过运算一定能得到一个确定的数值,这个数值被称为表达式的值。复合表达式的求解过程如下:(1)按运算符的优先级高低次序执行。例如,先乘除后加减。(2)如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按C语言规定的结合方向(结合性)进行。4.2算术运算3.算术表达式由算术运算符和括号将运算对象连接起来形成的运算式子,称为算术表达式例如,3+6*9、(x+y)/2–14.算术表达式的值除C语言的特定规则外,C语言中算术运算与数学中的算术运算规则相同,经过有限次加减除等运算,最后求得表达式的值。例如,表达式3+6*9的值:575.C语言算术运算的特定规则(1)两个整数相除,其商为整数,小数部分被舍弃。例如,表达式:5/2的值为2,不是2.5。而表达式:12.6/3的值为4.2,不是4。(2)关于求余数运算,要求求余运算符两侧的操作数均为整型数据,否则出错。例如,表达式:5%3的值为2。而5.3%2出错,不是合法表达式。求余运算的其他规定:计算结果的符号与%左侧运算对象的符号相同。例:-7%4=-3,7%-4=3%左侧操作数a小于右侧操作数b时,有a%b=a。例:3%5=3,0%3=0(3)C语言的整型、实型和字符型数据间可以混合运算。例4.1输出算术表达式的结果#include<stdio.h>main(){inta,b,c1;floatx,y,z;a=85;b=18;x=42.6;y=28.3;c1=a/b*9+a%b;z=x/y+(x+y)/2–1;printf("c1=%d\n",c1);printf("z1=%f\n",z);}程序运行结果:c1=49z1=39.172222混合运算中数据类型的转换:(1)整型、实型和字符型数据间可以混合运算(因为字符数据与整型数据可以通用)。一个运算符两侧的操作数的数据类型不同,则按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后进行运算。例如,int型与double型数据进行混合运算,则先将int型数据转换成double型,然后在两个同类型的数据间进行运算,结果为double型。注意箭头方向只表示数据类型由低向高转换.例4.2整型、实型数据间混合运算#include<stdio.h>main(){inta;floatx;a=35;x=42.63;printf("%f\n",a+x);printf("%f\n",x/a);}程序运行结果:77.6300011.2180007.数据类型强制转换数据类型允许强制转换,一般格式为:(数据类型)(表达式)例如:(int)(x+y)/*将x+y的结果转换成int型*/(1)当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。例如:(double)a/*将变量a的值转换成double型*/(float)5/2(等价于(float)(5)/2)/*将5转换成实型再除以2(=2.5)*/(float)(5/2)/*将5整除2的结果:2,转换成实型数:2.0*/(2