C语言讲义第02章-变量与表达式-34种表达式.ppt
《C语言讲义第02章-变量与表达式-34种表达式.ppt》由会员分享,可在线阅读,更多相关《C语言讲义第02章-变量与表达式-34种表达式.ppt(57页珍藏版)》请在三一办公上搜索。
1、第二章变量与表达式,C语言程序设计,主要内容,简单表达式 变量 数据类型 赋值语句 复杂表达式 基本输入输出函数小结,2.1 简单表达式,所谓简单表达式就是指由算术运算符连接操作数组成的算术表达式 2.1.1 算术运算符及其表达式在C语言中有以下算术运算符:,2.1 简单表达式,2.1.2 C语言表达式书写规则对数学上的表达式和C语言程序中的表达式做了一个对比:数学表达式合法的C语言表达式x*(-y)x*y/(m*n)sqrt(fabs(5*x+y)19(-b+sqrt(b*b 4*a*c)/(2*a),C语言表达式的书写要遵循一定的规则,规则如下:乘号用*表示,不能省略;表达式从左到右在同一
2、基准上书写,无高低、大小之分,都写在同一行上;括号必须成对出现,且都用圆括号。,2.2 变量,2.2.1 变量变量就是指在程序的执行过程中其值可以改变的量。变量具有三要素:名称、类型和值 变量的命名 C语言规定:标识符只能由字母、数字和下划线三种字符构成,并且第一个字符必须是字符和下划线,不能使用C语言中的关键字 C语言大小写敏感一般地,变量名使用小写字母表示,而大写字母常用来表示符号常量或自定义的类型名。在选择变量名和其他标识符时,应尽量注意做到“见名知意”,2.2 变量,变量的定义变量定义的作用是:为变量指定一个名称及其数据类型,让系统给它分配相应的存储空间。确定相应变量的存储方式、数值范
3、围和有效位数。确定相应变量所允许进行的操作。变量定义的一般格式为:数据类型变量名表;其中:变量名表可以包含若干个变量,两者之间用逗号分隔,如int ix,iy;数据类型:可以是C语言中的基本数据类型,也可以是用户自定义的数据类型,2.2 变量,变量赋值与初始化 定义变量的同时对变量进行了初始化(赋初值)如果在定义时没有为变量赋初始值,使用已定义的变量前,要对它进行初始化 2.2.2 常量和符号常量在程序设计语言中,凡是在程序运行过程中其值不变的量,都称为常量。整型常量即整型常数,在C语言中整型常量有十进制、八进制和十六进制三种形式。十进制整型常量。不能以0开头,由正、负号和09数字组成的常数。
4、八进制整型常量。以0开头,由07数字组成的常数。十六进制整型常量。以0 x或0X开头,由09数字和字母af(或AF)组成的常数。,2.2 变量,实型常量:又称为浮点数,只能用十进制来表示,有两种表示形式:小数形式和指数形式。小数形式:它由正负号、数字和小数点组成的常数(必须有小数点,它前面的零可以缺省)。指数形式(科学计数法):它由数符、尾数(整数或小数)、阶码标志(E或e)、阶符和整数阶码组成的常数。注意E或e前面必须有数字,且E后面的指数必须是整数。,2.2 变量,字符常量在C语言中,字符常量是就用单引号括起来的一个字符,其值为ASCII码值。在内存中,字符数据是以与其相对应的ASCII码
5、(即以整数表示)来存储的,占用一个字节。因此C语言中字符数据和整型数据之间可以通用0和0是截然不同的两个数据,前者是字符常量,后者则是整型常数。,2.2 变量,除了使用一般字符常量外,C语言还允许用一种特殊形式的字符常量转义字符常量,即一个以“”开头的特定字符序列,用来表示ASCII字符集中控制代码及某些用于功能定义的字符。常用的转义字符如表所示,2.2 变量,例2.1转义字符的使用 字符串常量字符串常量是由双引号括起来的一串字符序列 字符串常量与字符常量是不同的,字符串常量中的字符序列连续存放,并在最后加上0字符作为字符串的结束标志 字符常量是用单引号括起来的一个字符 符号常量在程序中经常用
6、到某些常量,为方便阅读程序,理解常量的含义,一般就把常量定义为符号常量。在C语言中符号常量定义的一般形式为:#define 符号常量名常量表达式 例2.2符号常量的应用,输出圆的面积,2.3 数据类型,根据数据的取值范围、运算属性及存储方式等,C语言将数据分成不同的数据类型。C语言提供了丰富的数据类型,可分为基本类型、构造类型、指针类型和空类型,如图2-2所示 数据类型确定了数据在内存中所占用的空间大小,也确定了它所表示的数据范围,2.3 数据类型,2.3.1 整型数据整型数据分为基本整型(int)、短整型(short)和长整型(long)三种类型,其中每一种类型又分为有符号(signed)和
7、无符号(unsigned)两种类型。不同的整型数据占用的内存空间不同 表列出了TC2.0系统中整型数据的长度、类型标识符和数值范围,原码 1111.1001 100 000 0001 01 1真值 2n(2n-1)-1-0+0+1 2n-1 补码 100 1001 1111 000 0001 011,2.3 数据类型,整型变量的定义和应用C语言规定程序中用到的所有变量必须先定义才能使用,即“强制类型定义”。变量的定义,一般写在一个函数的开头的声明位置例2.3整型数据的运用 整型数据的溢出例 2.4整型数据的溢出整型常量的类型 一个整型常量,如果其值在-3276832767之间,则认为它是int
8、型,可以赋值给int型、short int 型和long int型变量。如果超出了这个范围,则认为它是long int型,可以将它赋值给一个long int型变量。在一个整型常量后面加上后缀L或l表示该常量为长整型(long)常量,如123l,012L,0 x4FL。在一个整型常量后面加上后缀U或u表示无符号整型(unsigned)常量。,2.3 数据类型,2.3.2 实型数据实型数据即浮点型数据,C的实型数据有单精度(float)型、双精度(double)型和长双精度(long double)型三种类型。由于不同的实型数据在内存中所占的存储单元不同,因此所提供的有效位数也不同,如表所示。,2
9、.3 数据类型,例 2.5 实型数据的精度误差。2.3.3 字符型数据字符型数据类型标识符是用char表示,在内存中占一个字节(8位)。在内存中字符型数据是以所存字符的相应ASCII码存储。字符ASCII码值为0255 字符数据的存储形式与整型数据的存储形式类似,因此,字符型数据和整型数据之间可以通用,但是字符型数据只占一个字节(8位),所以字符数据只能存放0255范围内的整数。一个字符型数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,先将存储单元中的ASCII码值转换成相应字符,然后再输出。以整数形式输出时,直接将ASCII码作为整数输出。字符型数据还可进行算术运算,相当于
10、它们的ASCII码值参与运算。例 2.6字符变量作算术运算,2.3 数据类型,2.3.4 类型转换在C语言中,不同类型的数据之间可以进行混合运算 C语言中有两种类型转换方法:自动类型转换和强制类型转换。自动类型转换自动类型转换是指在不同类型的数据进行混合运算时,系统会自动进行数据类型的转换。但要遵循一定的规则,如图所示。,2.3 数据类型,说明:横向箭头表示必作的转换,即凡是参与运算的char型和short型数据一律自动转换成int型,float型数据一律自动转换成double型,转换后如果两个操作数类型相同,作算术运算,运算结果与转换后的类型相同。相同类型(除char、short和float
11、型外)操作数作算术运算的结果为同一类型。不同类型的数据或经过(1)转换后类型仍不相同,则按照图中纵向的箭头进行转换,参与运算中的低级别类型直接转换为参与运算中的高级别的数据类型。即如果一个int型数据和一个double型数据进行运算,int型数据则直接转换为double型数据,而不经过中间的转换。,2.3 数据类型,2.强制类型转换自动类型转换是由编译系统自动进行的。除此之外,C语言还提供了在程序中进行强制类型转换的方法,即在运算过程中将表达式根据需要转换成另一个数据类型。一般形式为:(数据类型)表达式例如:(int)x%2当操作数为表达式时,则表达式应用括号括起来。例如:int ix=7,i
12、y=2;如果将ix/iy的值转换为double型,应写为:(double)(ix/iy),则先计算ix/iy的值,再将此值转换为double型,结果为3;如果写为:(double)ix/iy,则是先将ix转换成double型,然后再进行除法运算,其结果为3.5。,2.4 赋值语句,1.赋值运算符:基本赋值运算符为“=”,其作用是先计算右侧表达式的值,再将计算结果赋给左侧的变量 赋值表达式赋值表达式是指用赋值运算符将变量和表达式连接起来的式子。一般形式为:变量名=表达式说明:赋值运算符“=”是将右侧表达式的值赋给左侧的变量,赋值运算符左侧必须是变量,右侧是表达式 赋值运算符“=”左右两侧的数据类
13、型应一致。如果表达式的类型与左侧变量的类型不一致时,则先把右侧表达式的值转换为与左侧变量相同的数据类型,然后再赋值 赋值表达式本身也是表达式,可以作为右侧的表达式出现,2.4 赋值语句,3.赋值语句赋值表达式的后面加分号就是赋值语句,赋值语句执行赋值操作,一般形式为:变量名=表达式;4.复合赋值运算符基本赋值运算符与算术运算符或位运算符组合在一起构成复合赋值运算符,如:+=、-=、/=、*=、%=(复合算术运算符)=、&=、=、|=例 2.7 赋值运算的使用,2.4 赋值语句,5.类型转换如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。将实型数据赋值给整型变量时
14、,舍弃小数部分。如:int i;i=3.12;i的值为3。将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。如:float f;f=23;23.00000存储到f中。将一个 double型数据赋给float变量中,截取前面7位有效数字,放到float变量的存储单元中。将一个float型数据赋给double型变量时,数值不变,有效位扩展到16位,在内存中以64位存储。,2.4 赋值语句,5.类型转换字符型数据赋给整型变量时,将字符数据(8位)放到整型变量低8位若为unsigned char,则高8位补0。若为有符号 char,字符的最高位为0,则高8位补0,字符的最高位为1,
15、则高8位补1。(符号扩展),C=376,C=376,2.4 赋值语句,5.类型转换将一个int、short、long型数据赋给一个char型变量时,只将其低8位送到char型变量(即截断),如:int i=300;char c;c=i;,i=300,c,2.4 赋值语句,5.类型转换将unsigned int型数据赋给long int型变量时,不存在符号扩展问题,只需将高位补0即可。将unsigned int型数据赋给int型变量时,将其内容直接送到int 型变量中,但如数据范围超过32767,则会出现数据错误。,unsigned int i=65535,按int型输出,结果为-1,2.5 复
16、杂表达式,2.5.1 自增、自减运算符自增、自减运算符为+和-,其作用是使变量的值增1或减1,结合方向是自右至左。它们的运算对象只能是变量,不能是常量或表达式。自增、自减运算符使用的格式有两种:前缀格式:运算符 变量(如对变量i,+i或-i)后缀格式:变量 运算符(如对变量i,i+或 i-)不同之处在于前者是先执行变量加1(或减1)后,再使用变量的值;而后者是先使用变量的值后,再对变量加1(或减1)。对于变量i,i+和+i均表示“i=i+1”,两种格式在使用上没有任何区别,i-和-i也是一样。但是,当自增、自减运算符参与运算时,两种格式对表达式产生的结果影响是不一样的。例2.8 自增、自减运算
17、符的应用 例2.9分析下面程序的运行结果,2.5 复杂表达式,2.5.2 关系运算符与关系表达式1.关系运算符关系运算符主要是比较两个操作数的大小,实际上是比较运算。C语言提供了6个关系运算符:(大于)、=(大于或等于)、=、=、=)的优先级相同,后两种(=、!=)相同。前4种运算符的优先级高于后2种运算符。关系运算符的优先级低于算术运算符,但高于赋值运算符。它们的关系如图所示,2.5 复杂表达式,2.关系表达式用关系运算符将两个表达式连接起来的式子,就称为关系表达式。其一般格式为:表达式 关系运算符 表达式其中:关系运算符两侧的表达式可以是算术表达式、关系表达式、逻辑表达式、赋值表达式或字符
18、表达式等。关系表达式的值是一个逻辑值,即“真”或“假”。当关系表达式成立时,其值为“真”;当关系表达式不成立时,其值为“假”。C语言规定:用1表示“真”,用0表示“假“。因此,关系表达式的运算结果为1或0。字符型数据也可以比较大小,是按照ASCII码值的大小进行比较的。例 2.10 关系表达式的运算,2.5 复杂表达式,2.5.3 逻辑运算符与逻辑表达式1.逻辑运算符逻辑运算符表示操作数之间的逻辑关系,C语言提供了三种逻辑运算符:!(逻辑非)、&(逻辑与)、|(逻辑或)逻辑运算符的优先级为:!(非)&(与)|(或)逻辑运算符中的“&”和“|”低于关系运算符,“!”高于算术运算符。各种运算符之间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 讲义 02 变量 表达式 34

链接地址:https://www.31ppt.com/p-6504318.html