第1章数据与运算_第1页
第1章数据与运算_第2页
第1章数据与运算_第3页
第1章数据与运算_第4页
第1章数据与运算_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 数据与运算数据与运算2.1 常量与变量常量与变量是在程序运行过程中其值不能发生改变的量。是在程序运行过程中其值不能发生改变的量。例如例如256256、3.453.45、aa等。等。变量:变量:是在程序运行过程中其值可以发生改变的量。变量在是在程序运行过程中其值可以发生改变的量。变量在内存中占据一定的存储单元。在该存储单元中存放变量的内存中占据一定的存储单元。在该存储单元中存放变量的值。变量的标识通过给变量取名实现,所以一个变量应该值。变量的标识通过给变量取名实现,所以一个变量应该有一个名字。有一个名字。用来标识变量名、符号常量名、函数名、数组名、类型用来标识变量名、符号常量名、函数

2、名、数组名、类型名、文件名的有效字符序列称为标识符,简单地说,标名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字。识符就是一个名字。第第2章章 数据与运算数据与运算2.1 常量与变量常量与变量C C语言规定标识符必须满足以下规则:语言规定标识符必须满足以下规则:(1 1)所有标识符必须由一个字母)所有标识符必须由一个字母(a(az z,A AZ)Z)或下划线或下划线( _ _ )开头。)开头。(2 2)标识符的其他部分可以用字母、下划线或数字)标识符的其他部分可以用字母、下划线或数字 (0 09 9)组成。)组成。(3 3)大小写字母表示不同意义,即代表不同的标识符。)大小写字

3、母表示不同意义,即代表不同的标识符。(4 4)标识符只有前)标识符只有前3232个字符有效。个字符有效。(5 5)标识符应当尽量遵循)标识符应当尽量遵循“简洁明了简洁明了”和和“见名知义见名知义”的原则。的原则。(6 6)标识符不能使用)标识符不能使用C C语言的关键字。语言的关键字。第第2章章 数据与运算数据与运算2.1 常量与变量常量与变量所谓关键字就是已被所谓关键字就是已被Turbo C 2.0Turbo C 2.0本身使用、不能作其他用本身使用、不能作其他用途使用的字。途使用的字。Turbo C 2.0Turbo C 2.0有以下关键字:有以下关键字:Turbo C 2.0Turbo

4、C 2.0扩展的共扩展的共1111个:个: asmasm_cs _ds _cs _ds _es_es_ss _ss cdecl cdecl far farnearnearhugehuge interrupt pascal interrupt pascal 由由ANSIANSI标准定义的共标准定义的共3232个:个: auto double auto double intint struct structbreakbreak else long else long switch caseswitch caseenumenum register typedef char extern regist

5、er typedef char externreturnreturn union unionconstconstfloat shortfloat short unsignedunsigned continue continueforforsigned void defaultsigned void default goto gotosizeofsizeofvolatilevolatile dodoif if while whilestaticstatic第第2章章 数据与运算数据与运算2.1 常量与变量常量与变量C C语言规定变量在使用前必须先定义。语言规定变量在使用前必须先定义。变量定义的一

6、般形式为:变量定义的一般形式为: 类型说明符类型说明符 变量标识符变量标识符, ,变量标识符变量标识符,;,;示例:示例:int a,b,c;int a,b,c; float e,f; float e,f; char x,y; char x,y;以上以上intint,floatfloat,charchar为类型说明符,为类型说明符,a a,b b,c c,e e,f f,x x,y y为变量标识符。为变量标识符。第第2章章 数据与运算数据与运算2.2 数据类型数据类型数据的组织形式称为数据结构。数据的组织形式称为数据结构。C C语言中的数据结构表现为数据类型。语言中的数据结构表现为数据类型。

7、数据类型数据类型基本类型基本类型构造类型构造类型空类型空类型指针类型指针类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型整型整型字符型字符型实型实型单精度单精度枚举类型枚举类型第第2章章 数据与运算数据与运算2.2 数据类型数据类型1 1整型变量整型变量数据类型数据类型类型说明符类型说明符 位(字节数)位(字节数)数的范围数的范围基本整型基本整型int16(2 2)-327683276732767-215(2(215-1)短整型短整型short16(2 2)-327683276732767-215(2(215-1)长整型长整型long int32(4 4)-214748364821

8、474836472147483647-231(2(231-1)无符号基本整无符号基本整型型unsigned int16(2 2)065535655350(2(216-1)无符号短整型无符号短整型unsigned short16(2 2)065535655350(2(216-1)无符号长整型无符号长整型unsigned long32(4 4)0429496729542949672950(2(232-1)2.2.1 2.2.1 整型数据整型数据第第2章章 数据与运算数据与运算2.2 数据类型数据类型整型变量的定义:整型变量的定义: 整型类型说明符整型类型说明符 变量标识符变量标识符, ,变量标识符

9、变量标识符,;,;示例:示例:int a,b,c; int a,b,c; / /* *定义定义a a,b b,c c为基本整型变量为基本整型变量* */ / long d,e; long d,e; / /* *定义定义d d,e e为长整型变量为长整型变量* */ / unsigned x,y; unsigned x,y; / /* *定义定义x x,y y为无符号基本整型变量为无符号基本整型变量* */ /在书写变量说明时,应注意以下几点:在书写变量说明时,应注意以下几点:(1 1)允许在一个类型说明符后说明多个相同类型的变量。各变量名之间用)允许在一个类型说明符后说明多个相同类型的变量。各

10、变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。逗号间隔。类型说明符与变量名之间至少用一个空格间隔。(2 2)最后一个变量名之后必须以)最后一个变量名之后必须以“;”;”号结尾。号结尾。(3 3)变量说明必须放在变量使用之前,一般放在函数体的开头部分。)变量说明必须放在变量使用之前,一般放在函数体的开头部分。1 1整型变量整型变量2.2.1 2.2.1 整型数据整型数据第第2章章 数据与运算数据与运算2.2 数据类型数据类型2 2整型常量整型常量整型常量即整常数。整型常量即整常数。按不同的进制区分,整型常数有三种表示方法:按不同的进制区分,整型常数有三种表示方法:(1 1)十进

11、制数:以非)十进制数:以非0 0开始的数,开始的数,如:如:254254,-10-10,4560045600。(2 2)八进制数:以)八进制数:以0 0开始的数,开始的数,如:如:0606,01060106,057057。(3 3)十六进制数:以)十六进制数:以0X0X或或0 x0 x开始的数,开始的数,如:如:0X2A0X2A,0XFF0XFF,0 x580 x58。1 1整型变量整型变量2.2.1 2.2.1 整型数据整型数据第第2章章 数据与运算数据与运算2.2 数据类型数据类型(1 1)一个整常量,如果其值在)一个整常量,如果其值在-32768-32768+32767+32767范围内

12、,认为它是范围内,认为它是intint型。型。它可以赋值给它可以赋值给intint型和型和1ong int1ong int型变量。型变量。(2 2)一个整常量,如果其值超过了上述范围,而在)一个整常量,如果其值超过了上述范围,而在-2147483648-214748364821474836472147483647范围内,则认为它是范围内,则认为它是1ong int1ong int型。可以将它赋值给一个型。可以将它赋值给一个1ong 1ong intint型变量。型变量。(3 3)如果某一计算机系统的)如果某一计算机系统的C C版本确定的版本确定的short int short int 与与in

13、tint型数据在内存型数据在内存中占据的长度相同,则它表示的数据范围与中占据的长度相同,则它表示的数据范围与intint型相同,因此一个型相同,因此一个intint型型的常量也同时是一个的常量也同时是一个short intshort int型常量,可以赋给型常量,可以赋给intint型或型或short intshort int型变型变量;量;整型常量的类型:整型常量的类型:2 2整型常量整型常量1 1整型变量整型变量2.2.1 2.2.1 整型数据整型数据第第2章章 数据与运算数据与运算2.2 数据类型数据类型(4 4)常量中无)常量中无unsignedunsigned型。但一个非负值的整常量

14、可以赋给型。但一个非负值的整常量可以赋给unsignedunsigned型整变量,只要它的范围不超过变量表示的数据范围即可。型整变量,只要它的范围不超过变量表示的数据范围即可。例如,将例如,将5000050000赋给一个赋给一个unsigned intunsigned int型变量是可以的,而将型变量是可以的,而将7000070000赋给它则是不行的(溢出)。赋给它则是不行的(溢出)。(5 5)在一个整常量后面加一个字母)在一个整常量后面加一个字母l l或或L L,则认为是,则认为是1ong int1ong int型常量。型常量。整型常量的类型:整型常量的类型:2 2整型常量整型常量1 1整型

15、变量整型变量2.2.1 2.2.1 整型数据整型数据第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.2 2.2.2 实型数据实型数据1 1实型变量实型变量实型也称为浮点型,实型也称为浮点型,Turbo CTurbo C中实型变量有以下两种类型:中实型变量有以下两种类型:(1 1)单精度浮点型。类型说明符为)单精度浮点型。类型说明符为floatfloat,占,占4 4个字节(个字节(3232位)内存空间,其数值范围为位)内存空间,其数值范围为3.4E-383.4E-383.4E+383.4E+38,只能提供,只能提供七位有效数字。七位有效数字。 (2 2)双精度浮点型。类型说明符

16、为)双精度浮点型。类型说明符为doubledouble,占,占8 8个字节(个字节(6464位)内存空间,其数值范围为位)内存空间,其数值范围为1.7E-3081.7E-3081.7E+3081.7E+308,可提供,可提供十六位有效数字。十六位有效数字。 说明:浮点数均为有符号浮点数,没有无符号浮点数。说明:浮点数均为有符号浮点数,没有无符号浮点数。第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.2 2.2.2 实型数据实型数据1 1实型变量实型变量实型变量定义:实型变量定义: 实型类型说明符实型类型说明符 变量标识符变量标识符, ,变量标识符变量标识符,;,;示例:示例:f

17、loat a, f; /float a, f; /* *定义定义a a,f f为单精度浮点型变量为单精度浮点型变量* */ / double b; / double b; /* *定义定义b b为双精度浮点型变量为双精度浮点型变量* */ / 第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.2 2.2.2 实型数据实型数据1 1实型变量实型变量2 2实型常量实型常量实型常量又称实数或浮点数,有两种表示形式:实型常量又称实数或浮点数,有两种表示形式:(1 1)十进制数形式。十进制数形式由数字和小数点组成(注)十进制数形式。十进制数形式由数字和小数点组成(注意必须有小数点)。例如:

18、意必须有小数点)。例如:0.1230.123、.123.123、123.0123.0、123.123.、0.00.0、123.123123.123等都是十进制数形式。等都是十进制数形式。(2 2)指数形式。指数形式由十进制数加阶码标志)指数形式。指数形式由十进制数加阶码标志“e”e”或或“E”E”以及阶码(只能为整数,可以带符号)组成。其一般形式为以及阶码(只能为整数,可以带符号)组成。其一般形式为a a E n E n (a a为十进制数,为十进制数,n n为十进制整数),表示值为为十进制整数),表示值为 a a10n10n,其中,其中,a a,n n均不可缺省。均不可缺省。 例:例:0.1

19、23E4 0.123E4 表示值为表示值为0.1230.12310104 4 -5.123E-4 -5.123E-4 表示值为表示值为-5.123-5.12310-410-4第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.2 2.2.2 实型数据实型数据1 1实型变量实型变量2 2实型常量实型常量说明:说明:(1 1)浮点常数只有一种进制(十进制)。)浮点常数只有一种进制(十进制)。(2 2)所有实型常量都被默认为)所有实型常量都被默认为doubledouble类型。类型。(3 3)绝对值小于)绝对值小于1 1的浮点数,其小数点前面的零可以省略。的浮点数,其小数点前面的零可以省

20、略。(4 4)Turbo CTurbo C以默认格式输出浮点数时,最多只保留小数点以默认格式输出浮点数时,最多只保留小数点后六位。后六位。第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量C C语言的字符常量是用单引号(即撇号)括起来的一个字符。语言的字符常量是用单引号(即撇号)括起来的一个字符。例如:例如:aa、xx,DD、?、 $、A4A4等都是不同的字符常量。等都是不同的字符常量。 C C还允许用一种特殊形式的字符常量,这种特殊形式的还允许用一种特殊形式的字符常量,这种特殊形式的字符常量称为转义字符。字符常量称为转义

21、字符。转义字符以反斜线转义字符以反斜线“”开头,后跟一个或几个字符。开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符具有特定的含义,不同于字符原有的意义,故称“转义转义”字符。转义字符主要用来表示那些用一般字符不字符。转义字符主要用来表示那些用一般字符不便于表示的控制代码。便于表示的控制代码。第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量转义字符转义字符表示含义表示含义n回车换行回车换行t横向跳到下一制表位置横向跳到下一制表位置v竖向跳格竖向跳格b退格退格r回车回车f走纸换页走纸换页

22、反斜线符反斜线符单引号符单引号符a鸣铃鸣铃ddd13 3位八进制数所代表的字符位八进制数所代表的字符xhh12 2位十六进制数所代表的字符位十六进制数所代表的字符第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量2 2字符变量字符变量字符型变量用来存放字符常量。字符型变量用来存放字符常量。类型说明符为类型说明符为charchar。占占1 1个字节(个字节(8 8位)内存空间。位)内存空间。字符变量的定义:字符变量的定义: 字符型类型说明符字符型类型说明符 变量标识符变量标识符, ,变量标识符变量标识符,;,;示例:示例:c

23、har a,b; /char a,b; /* *定义定义a a,b b为字符型变量为字符型变量* */ / 第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量2 2字符变量字符变量字符值是以字符值是以ASCIIASCII码的形式存放在变量的内存单元中的。码的形式存放在变量的内存单元中的。例如:如果有例如:如果有char a,b;char a,b; a=x;b=y;查表可知,查表可知,x x的十进制的十进制ASCIIASCII码是码是120120,y y的十进制的十进制ASCIIASCII码码是是121121,所以对字符变量

24、,所以对字符变量a a,b b赋予赋予xx和和yy值,实际上是值,实际上是在在a a,b b两个单元内存放两个单元内存放120120和和121121的二进制代码,即:的二进制代码,即:a单元为:单元为:b单元为:单元为:0 1 1 1 1 0 0 00 1 1 1 1 0 0 1第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量2 2字符变量字符变量由此可见,字符型量也可以看成是整型量。语言允许对由此可见,字符型量也可以看成是整型量。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在整型变量赋以字符值,也允许对字

25、符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量输出时,允许把字符变量按整型量输出,也允许把整型量按字符型量输出。整型量为二字节量,字符型量为单字节按字符型量输出。整型量为二字节量,字符型量为单字节量,当整型量按字符型量处理时,量,当整型量按字符型量处理时, 只有低八位字节参与只有低八位字节参与处理。处理。第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量2 2字符变量字符变量3 3字符串常量字符串常量C C语言的字符串常量是用双引号括起来的一个字符序列。语言的字符串常量是用双引号括起来的一个字符序列

26、。例如例如“ABcd”ABcd”、“9”9”、“a”a”等都是字符串常量。等都是字符串常量。第第2章章 数据与运算数据与运算2.2 数据类型数据类型2.2.3 2.2.3 字符型数据字符型数据1 1字符常量字符常量2 2字符变量字符变量3 3字符串常量字符串常量字符串常量和字符常量是不同的量。它们之间主要有以下区别:字符串常量和字符常量是不同的量。它们之间主要有以下区别:(1 1)字符常量由单引号括起来,字符串常量由双引号括起来。)字符常量由单引号括起来,字符串常量由双引号括起来。(2 2)字符常量只能是单个字符,字符串常量则可以含多个字符。)字符常量只能是单个字符,字符串常量则可以含多个字符

27、。(3 3)可以把一个字符常量赋给一个字符变量,但不能把一个字符串)可以把一个字符常量赋给一个字符变量,但不能把一个字符串常量赋给一个字符变量。在语言中没有相应的字符串变量。常量赋给一个字符变量。在语言中没有相应的字符串变量。(4 4)字符常量占一个字节的内存空间。字符串常量占的内存字节数)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字符数加等于字符串中字符数加1 1。增加的一个字节中存放字符。增加的一个字节中存放字符00,这是,这是字符串结束的标志。字符常量字符串结束的标志。字符常量aa和字符串常量和字符串常量“a”a”虽然看上去都虽然看上去都只有一个字符,但在内存中的

28、情况是不同的:只有一个字符,但在内存中的情况是不同的:aa在内存中占一个在内存中占一个字节,可表示为字节,可表示为a a;“a”a”在内存中占两个字节,可表示为在内存中占两个字节,可表示为a0a0。第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符运算符运算符作用作用运算符运算符作用作用+加加-取负取负-减减-减减1 1*乘乘+增增1 1/除除(类型类型) )类型转换类型转换%取模取模第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.

29、3.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式算术表达式是由算术运算符、括号以及操作对象组成的算术表达式是由算术运算符、括号以及操作对象组成的符合符合C C语言语法规则的表达式。语言语法规则的表达式。C C语言规定:语言规定:(1 1)模运算符)模运算符% %仅用于整型变量或整型常量。仅用于整型变量或整型常量。(2 2)一个表达式中如有多个运算符,则按相应运算符)一个表达式中如有多个运算符,则按相应运算符的优先级顺序计算。的优先级顺序计算。(3 3)当运算对象两侧的运算符的优先级别相同时,应)当运算对象两侧的运算符的优先级别相同时,应按

30、运算符的结合律处理。按运算符的结合律处理。第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式运算符运算符优先级优先级(值小的优先级高)(值小的优先级高)结合律结合律+-(减)(减)4从左向右从左向右*/%3-(取负)(取负)-+( (类型类型) )2从右向左从右向左第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算

31、术表达式(4 4)增)增1 1 运算符运算符“+”+”是操作数加是操作数加1 1,而减,而减1 1运算符运算符“- -”- -”则是操作数减则是操作数减1 1。 例:例:x=x+1 x=x+1 可写成可写成x+x+或或+x +x x=x-1 x=x-1 可写成可写成x-x-或或-x-x 但是,表达式但是,表达式x+x+与与+x+x是有区别的。表达式是有区别的。表达式x+x+的值为的值为x x的原值(不增的原值(不增加加1 1),而表达式),而表达式+x+x的值为的值为x x变量增加变量增加1 1后的值。后的值。 例如:执行例如:执行m=4;x= m +;m=4;x= m +;后后,m=5,x=

32、4,m=5,x=4。 执行执行m=4;x= + m;m=4;x= + m;后后,m=5,x=5,m=5,x=5。 同理,表达式同理,表达式x-x-值为值为x x的原值(不减的原值(不减1 1),而表达式),而表达式-x-x值为值为x x原值减原值减1 1后的值。后的值。(5 5)+和和-仅适用于变量,不能用于常量或表达式。仅适用于变量,不能用于常量或表达式。第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式3 3类型转换类型转换类型转换有两种方式:自

33、动类型转换和强制类型转换。类型转换有两种方式:自动类型转换和强制类型转换。自动类型转换:运算时不必用户指定,系统自动将不同自动类型转换:运算时不必用户指定,系统自动将不同类型的数据转换成同一类型,然后进行计算。类型的数据转换成同一类型,然后进行计算。C C语言规定不同类型数值转换的规则如下:语言规定不同类型数值转换的规则如下:double float double float (必转)(必转)long long UnsignedUnsignedint char ,short int char ,short (必转)(必转)第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表

34、达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式3 3类型转换类型转换强制类型转换:当自动类型转换不能实现目的时,可以用强制类型转换:当自动类型转换不能实现目的时,可以用强制类型转换。强制类型转换。强制类型转换的一般形式如下:强制类型转换的一般形式如下: ( (类型类型) 例如:例如:(int)(a+b) (int)(a+b) 是将是将a+ba+b的结果强制转换成的结果强制转换成intint型;型; (float) a/b (float) a/b 是将是将a a的结果强制转换成的结果强制转换成floatfloat型后,

35、型后, 再进行计算。再进行计算。第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式2.3.2 2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式1 1赋值运算符赋值运算符C C语言的赋值运算符是语言的赋值运算符是“=”=”,其作用是将赋值运算符右,其作用是将赋值运算符右边表达式的值赋给其左边的变量。边表达式的值赋给其左边的变量。2 2赋值表达式赋值表达式赋值表达式是由赋值运算符将一个变量和一个表达式连接起赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子。来的式子。赋值表达式的一般形式

36、如下:赋值表达式的一般形式如下: 变量变量= =表达式表达式说明:说明:(1 1)赋值表达式的值等于计算后赋值运算符左边变量的值。)赋值表达式的值等于计算后赋值运算符左边变量的值。(2 2)赋值运算符左边必须是变量。)赋值运算符左边必须是变量。注意:如果赋值运算符两侧的类型不一致,但都是数值型或注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(1 1)将实型数据(包括单、双精度)赋给整型变量时,舍弃)

37、将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。实数的小数部分。 例:执行:例:执行:int a;int a; a=12.345; a=12.345; 结果:结果:a =12a =12(2 2)将整型数据赋给单、双精度变量时,数值不变,但以浮)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。点数形式存储到变量中。 例:执行:例:执行:float b;float b; b=12 b=12; 结果:结果:b =12.00000b =12.00000注意:如果赋值运算符两侧的类型不一致,但都是数值型或注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,

38、在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(3 3)字符型数据赋给整型变量时,由于字符只占一个字节,)字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量为两个字节,因此将字符数据(而整型变量为两个字节,因此将字符数据(8 8位)放到整型变位)放到整型变量低量低8 8位中。位中。Turbo CTurbo C系统将字符处理为带符号的量,若字符系统将字符处理为带符号的量,若字符最高位为最高位为0 0,则整型变量高,则整型变量高8 8位全补位全补0 0;若

39、字符最高位为;若字符最高位为1 1,则,则高高8 8位全补位全补1 1。 例:执行:例:执行:int c; int c; 执行:执行:int c;int c; c=a; c=a; c=376; c=376; 结果:结果:c =97 c =97 结果:结果:c =-2c =-2(4 4)整型数据赋给字符型变量,只把低)整型数据赋给字符型变量,只把低8 8位原封不动送到字位原封不动送到字符型变量(即截断)。符型变量(即截断)。注意:如果赋值运算符两侧的类型不一致,但都是数值型或注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时

40、要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(5 5)将带符号的整型数据()将带符号的整型数据(intint型)赋给型)赋给1ong int1ong int型变量时。型变量时。要进行符号扩展,如果要进行符号扩展,如果intint型数据为正值(符号位为型数据为正值(符号位为0 0),则),则1ong int1ong int型变量的高型变量的高1616位补位补0 0;如;如intint型变量为负值(符号位型变量为负值(符号位为为1 1),则),则1ong int1ong int型变量的高型变量的高1616位补位补1 1,

41、将整型数的,将整型数的1616位送位送到到1ong1ong型低型低1616位中,以保持数值不改变。反之,若将一个位中,以保持数值不改变。反之,若将一个1ong int1ong int型数据赋给一个型数据赋给一个intint型变量,只把低型变量,只把低1616位原封不动送位原封不动送到整型变量(即截断)。到整型变量(即截断)。例:执行:例:执行:int a=12; int a=12; 执行:执行:int a;int a; long b; long b; long b=65536; long b=65536; b=a b=a; a=ba=b; 结果:结果:b =12 b =12 结果:结果:a =

42、0a =0注意:如果赋值运算符两侧的类型不一致,但都是数值型或注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(6 6)将)将signedsigned类型数据赋给长度相同的类型数据赋给长度相同的unsignedunsigned型变量时,型变量时,原样照赋(连同符号位);反之,将原样照赋(连同符号位);反之,将unsignedunsigned类型数据赋给类型数据赋给长度相同的长度相同的signedsig

43、ned型变量时,同样原样照赋,再将最高位作型变量时,同样原样照赋,再将最高位作为符号位处理。为符号位处理。例:执行:例:执行:unsigned a; unsigned a; 执行:执行:int a;int a; int b=-1; unsigned b=65535; int b=-1; unsigned b=65535; a = b; a = b; a = b; a = b; 结果:结果:a =65535 a =65535 结果:结果:b =-1b =-1第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表

44、达式2.3.2 2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式3 3复合赋值运算符复合赋值运算符C C语言允许在赋值运算符语言允许在赋值运算符“=”=”之前加上其他运算符,以构成之前加上其他运算符,以构成其复合运算符。其复合运算符。复合运算符有:复合运算符有:+=+=、-=-=、* *= =、/=/=、%=%=。例如:例如:a+=2 a+=2 等价于等价于 a=a+2a=a+2 x x* *=y+5 =y+5 等价于等价于 x=xx=x* *(y+5)(y+5) x%=8 x%=8 等价于等价于 x=x%8x=x%8同样:同样:(1 1)复合赋值表达式的值等于计算后赋值运算符左边变量

45、的值。)复合赋值表达式的值等于计算后赋值运算符左边变量的值。(2 2)复合赋值运算符左边必须是变量。)复合赋值运算符左边必须是变量。 赋值运算符的结合律都是从右向左执行,赋值运算符的结合律都是从右向左执行,其优先级低于所有算术运算符。其优先级低于所有算术运算符。第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式2.3.2 2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.3.3 2.3.3 逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符为逗号运算符为“,”,”。逗号表达式是用逗号运算

46、符把表达式组合成的一个表达式。逗号表达式是用逗号运算符把表达式组合成的一个表达式。其一般形式为:其一般形式为: 表达式表达式1,1,表达式表达式2,2,表达式表达式3,3,表达式表达式N N说明:说明:(1 1)逗号表达式的执行过程是:依次求表达式)逗号表达式的执行过程是:依次求表达式1 1的值、表达的值、表达式式2 2的值、的值、表达式、表达式N N的值,整个逗号表达式的值是表达的值,整个逗号表达式的值是表达式式N N的值。的值。(2 2)逗号运算符是所有运算符中级别最低的。)逗号运算符是所有运算符中级别最低的。第第2章章 数据与运算数据与运算2.3 2.3 运算符和表达式运算符和表达式2.

47、3.1 2.3.1 算术运算符和算术表达式算术运算符和算术表达式2.3.2 2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.3.3 2.3.3 逗号运算符和逗号表达式逗号运算符和逗号表达式例如:例如:main() main() int x, y; int x, y; x=50; x=50; y=(x=x-5, x/5); y=(x=x-5, x/5); 上面程序执行后上面程序执行后y y的值为的值为9 9,因为,因为x x的初始值为的初始值为5050,减减5 5后变为后变为4545,4545除除5 5为为9 9赋给赋给y y。 第第2章章 数据与运算数据与运算2.4 2.4 本章考

48、点本章考点 C C语言对用户标识符的规定。语言对用户标识符的规定。整型变量的定义和整型常量的表示。整型变量的定义和整型常量的表示。实型变量的定义和实型常量的表示。实型变量的定义和实型常量的表示。字符型变量的定义和字符型常量的表示。字符型变量的定义和字符型常量的表示。算术运算符和算术表达式。算术运算符和算术表达式。赋值运算符和赋值表达式。赋值运算符和赋值表达式。逗号运算符和逗号表达式。逗号运算符和逗号表达式。运算符的优先级和结合律。运算符的优先级和结合律。混合运算中的类型转换。混合运算中的类型转换。第第2章章 数据与运算数据与运算2.5 2.5 典型试题详解典型试题详解1 1以下选项中合法的用户

49、标识符是以下选项中合法的用户标识符是_。A A)longlongB B)_2Test_2TestC C)3Dmax3DmaxD D)A.datA.dat正确答案:正确答案:B B(知识点:(知识点:C C语言对用户标识符的规定)语言对用户标识符的规定)试题分析:试题分析:C C语言规定标识符必须由一个字母(语言规定标识符必须由一个字母(a az z,A AZ Z)或下划线()或下划线(_ _)开头,标识符的其他部分可以用字母、)开头,标识符的其他部分可以用字母、下划线或数字(下划线或数字(0 09 9)组成。)组成。第第2章章 数据与运算数据与运算2.5 2.5 典型试题详解典型试题详解2 2

50、以下选项中不属于以下选项中不属于C C语言的类型的是语言的类型的是_。A A)signed short intsigned short intB B)unsigned long intunsigned long intC C)unsigned intunsigned intD D)long shortlong short正确答案:正确答案:D D(知识点:(知识点:C C语言的基本数据类型)语言的基本数据类型)试题分析:试题分析:C C语言的基本类型包括语言的基本类型包括signed short intsigned short int、unsigned long intunsigned lon

51、g int、unsigned intunsigned int、charchar、floatfloat、doubledouble等,没有等,没有long shortlong short类型。类型。第第2章章 数据与运算数据与运算2.5 2.5 典型试题详解典型试题详解3 3在在1616位位C C编译系统上,若定义编译系统上,若定义long a;long a;,则能给变量,则能给变量a a赋值赋值4000040000的正确语句是的正确语句是_。A A)a=20000+20000;a=20000+20000;B B)a=4000a=4000* *10;10;C C)a=30000+10000;a=3

52、0000+10000;D D)a=4000La=4000L* *10L;10L;正确答案:正确答案:D D(知识点:算术运算和赋值运算中的类型转换)(知识点:算术运算和赋值运算中的类型转换)试题分析:试题分析:A A、B B、C C选项中参与算术运算的对象是选项中参与算术运算的对象是intint类型,类型,其结果应该是其结果应该是intint类型,而结果值类型,而结果值4000040000超出超出intint类型范围,发生类型范围,发生溢出,运算结果截取溢出,运算结果截取4000040000的低的低1616位,再将其进行符号位扩展,位,再将其进行符号位扩展,赋给赋给longlong类型的类型的

53、a a,则,则a a中的结果并不是中的结果并不是4000040000。D D选项中参与算术选项中参与算术运算的对象是运算的对象是longlong类型,其结果是类型,其结果是longlong类型,赋给类型,赋给longlong类型的类型的a a,则则a a中的结果是中的结果是4000040000。第第2章章 数据与运算数据与运算2.5 2.5 典型试题详解典型试题详解4 4以下选项中可以作为以下选项中可以作为C C语言中合法整数的是语言中合法整数的是_。A A)10110B10110BB B)03860386C C)0 xffa0 xffaD D)x2a2x2a2正确答案:正确答案:C C(知识点:整型常量)(知识点:整型常量)试题分析:试题分析:C C语言中整数的表示有十进制、八进制、十六进语言中整数的表示有十进制、八进制、十六进制三种方法。制三种方法。A A、D D选项应该是十进制表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论