![第3章_数据类型、运算符和表达式_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/5384c96e-bac9-48e7-a58c-86e88b74bc06/5384c96e-bac9-48e7-a58c-86e88b74bc061.gif)
![第3章_数据类型、运算符和表达式_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/5384c96e-bac9-48e7-a58c-86e88b74bc06/5384c96e-bac9-48e7-a58c-86e88b74bc062.gif)
![第3章_数据类型、运算符和表达式_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/5384c96e-bac9-48e7-a58c-86e88b74bc06/5384c96e-bac9-48e7-a58c-86e88b74bc063.gif)
![第3章_数据类型、运算符和表达式_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/5384c96e-bac9-48e7-a58c-86e88b74bc06/5384c96e-bac9-48e7-a58c-86e88b74bc064.gif)
![第3章_数据类型、运算符和表达式_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/5384c96e-bac9-48e7-a58c-86e88b74bc06/5384c96e-bac9-48e7-a58c-86e88b74bc065.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序设计基础计算机程序设计任课教师:石晓山任课教师:石晓山E-mail:中国矿业大学银川学院中国矿业大学银川学院计算机语言程序设计计算机语言程序设计第第3章章 数据类型、运算符与表达式数据类型、运算符与表达式计算机语言程序设计计算机语言程序设计3.1 计算机语言程序设计计算机语言程序设计3.1.1 常量常量常量:常量:在程序的运行过程中,其值不能被改变的数据。在程序的运行过程中,其值不能被改变的数据。直接常量(字面常量)整形常量,实型常量,直接常量(字面常量)整形常量,实型常量,字符常量,字符串常量字符常量,字符串常量 如:如:1,-7,3.14,t,”Program”等等符号常量:符号
2、常量:用一个标识符代表一个常量。用一个标识符代表一个常量。 习惯上,符号常量名常用大写字母。习惯上,符号常量名常用大写字母。符号常量的定义:符号常量的定义: #define #define 标识符标识符 常量常量 #define PAI 3.14159计算机语言程序设计计算机语言程序设计3.1.2 变量变量变量的使用要求:变量的使用要求: 先定义,后使用先定义,后使用变量的定义格式:变量的定义格式: 类型名类型名 变量名;变量名; 如如 int a, b ;变量:变量:在程序的运行过程中,其值可以改变的数据。在程序的运行过程中,其值可以改变的数据。本质:本质:在内存中占据一定的存储单元,存储单
3、元中存在内存中占据一定的存储单元,存储单元中存 放变量的值。放变量的值。3a内存单元内存单元变量值变量值变量名变量名计算机语言程序设计计算机语言程序设计3.1.2 变量变量C语言允许在定义变量的同时使变量初始化。语言允许在定义变量的同时使变量初始化。如:如: int a = 3 ; /* 定义定义a为整型变量,初值为为整型变量,初值为3 */ float f = 3.12 ; /*定义定义f为实型变量,初值为为实型变量,初值为3.12 */ char c = a ; /* 定义定义c为字符型变量,初值为为字符型变量,初值为a */ int a = 3 ; 相当于相当于 int a ; a =
4、3 ; int a , b = 123 , c , i = 0 , j ; int x = 1 , y = 2 , z = 3 ; 注意注意: 不能写成不能写成 int x = y = z = 1 ; 必须一个一个赋值。必须一个一个赋值。计算机语言程序设计计算机语言程序设计3.2 C语言的数据类型语言的数据类型双精度型双精度型( double )数据类型数据类型整型整型( int )基本类型基本类型指针类型指针类型构造类型构造类型空类型空类型( void )字符型字符型( char )实型实型(浮点型浮点型)枚举类型枚举类型( enum )数组类型数组类型结构体类型结构体类型( struct
5、)共用体类型共用体类型( union )单精度型单精度型( float )计算机语言程序设计计算机语言程序设计3.2 C语言的数据类型语言的数据类型计算机语言程序设计计算机语言程序设计3.2.1 整型数据整型数据1. 1. 整型常量:整型常量: 十进制整数:十进制整数:由由0-90-9的数字组成的数字组成 如如: 123,-456,0 八进制整数:八进制整数:由由0 07 7的数字组成,最高位必须的数字组成,最高位必须 用用0 0作引导符。作引导符。 如如: 0123,-023 十六进制整数:十六进制整数:由由0 0 9 9、a a f(A f(A F)F)组组 成成, ,最高位必须用最高位必
6、须用0 x0 x作引导符。作引导符。 如如 : 0 x123,-0 x23计算机语言程序设计计算机语言程序设计3.2.1 整型数据整型数据2. 整型变量:整型变量: 整型变量的分类:整型变量的分类:基本整型:基本整型:int 如如: int a ;短整型:短整型:short int 或或 short 如如: short b ;长整型:长整型:long int 或或 long 如如: long c ;无符号数:无符号数:unsigned 如如: unsigned long e;有符号数:有符号数:signed 如如: signed int f ;计算机语言程序设计计算机语言程序设计3.2.1 整
7、型数据整型数据ANSI标准定义的整数类型:标准定义的整数类型:类型类型比特数比特数取值范围取值范围signed int16-3276832767 即即-215 (215 1)unsigned int16065535 即即0(216 1)signed short int16-3276832767 即即-215 (215 1)unsigned short int16065535 即即0(216 1)signed long int32-21474836482147483647即即-231 (231 1)unsigned long int3204294967295 即即0(232 1)计算机语言程序设
8、计计算机语言程序设计3.2.1 整型数据整型数据整型变量的定义:整型变量的定义: 类型符类型符 变量名变量名整型数据的溢出:整型数据的溢出:C语言中,数据超出其范围,语言中,数据超出其范围,即即“溢出溢出”,系统不报告错误信息,程序仍然能运行,系统不报告错误信息,程序仍然能运行,但可能出现不正确的结果。但可能出现不正确的结果。例例: : #include (P32 例例3.3) void main( ) int a,b; a=32767; b=a+1; printf(a=%d,b=%dn,a,b); 计算机语言程序设计计算机语言程序设计11111111111111103276732767a:b
9、:-32768-327681 0 0 0 0 0 0 0 0 0 0 0 0 00 0整型变量的定义:整型变量的定义: 类型符类型符 变量名变量名整型数据的溢出:整型数据的溢出:C语言中,数据超出其范围,语言中,数据超出其范围,即即“溢出溢出”,系统不报告错误信息,程序仍然能运行,系统不报告错误信息,程序仍然能运行,但可能出现不正确的结果。但可能出现不正确的结果。3.2.1 整型数据整型数据计算机语言程序设计计算机语言程序设计3.2.1 整型数据整型数据 整型变量的定义:整型变量的定义:类型符类型符 变量名变量名 整型数据的溢出:整型数据的溢出:C C语言中,数据超出其范围,语言中,数据超出其
10、范围, 即即“溢出溢出”,系统不报告错误信息,程仍然能运行,系统不报告错误信息,程仍然能运行,但可能出现不正确的结果。但可能出现不正确的结果。 整型常量的类型:整型常量的类型:注:注:1) 将一个整型常量赋值给一个整型变量时应注将一个整型常量赋值给一个整型变量时应注 意对应的整型变量的取值范围。意对应的整型变量的取值范围。 2) 在一个整型常量后面加一个字母在一个整型常量后面加一个字母 l 或或 L,则表,则表 示示long int型常量。型常量。计算机语言程序设计计算机语言程序设计3.2.2 实型数据实型数据1. 实型常量的表示:实型常量的表示:2. 小数形式小数形式: 如:如: 12.3
11、、- 0.123 、123.0、0.0 指数形式:指数形式: 如:如:1.23e1 ( 1.23E1 ) 1.23*101 如:如:123e-3 ( 123E-3 ) 123*10-3注意事项注意事项(P33P33)计算机语言程序设计计算机语言程序设计3.2.2 实型数据实型数据2. 实型变量:实型变量: 实型数据在内存中的存放形式:如:实型数据在内存中的存放形式:如:101101.011 实型变量的分类:实型变量的分类:单精度:单精度:float 如如 float x, y ;双精度:双精度:double 如如 double z ;24b8b0 0000110101 1010 1100 00
12、00 0000 00000数符数符小数部分小数部分指数指数计算机语言程序设计计算机语言程序设计3.2.2 实型数据实型数据ANSI标准定义的实型数据类型:标准定义的实型数据类型:类型类型比特数比特数有效数字有效数字取值范围取值范围 float326 710-37 1038 double6415 1610-307 10308计算机语言程序设计计算机语言程序设计3.2.2 实型数据实型数据 实型数据的舍入误差:实型数据的舍入误差: 由于实型变量是用有限的存储单元存储的,因由于实型变量是用有限的存储单元存储的,因此能提供的有效数字是有限的,在有效位以外的数此能提供的有效数字是有限的,在有效位以外的数
13、字将舍去,由此可能产生一些误差。字将舍去,由此可能产生一些误差。 实型常量的类型:实型常量的类型:l实型常量不分单双精度,可以赋值给实型常量不分单双精度,可以赋值给float也可以赋也可以赋值给值给double,系统都将按照作为,系统都将按照作为双精度双精度来处理。来处理。l 在一个实型常量后面加一个字母在一个实型常量后面加一个字母 f 或或 F,则表示,则表示此此 常量按常量按单精度单精度来处理。来处理。计算机语言程序设计计算机语言程序设计3.2.3 字符型数据(一)字符型数据(一)1. 字符常量的表示:字符常量的表示: 用单引号括起来的一个字符。用单引号括起来的一个字符。 如:如:a、D、
14、 5、 % 、 转义字符:用转义字符:用 开头的字符序列开头的字符序列 如:如:n、t、b、” 如:如:101、141、x41、x61计算机语言程序设计计算机语言程序设计转义字符转义字符字符形式字符形式含义含义ASCII代码代码n换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头10t水平位移(跳到下一个水平位移(跳到下一个tab位置)位置)9b退格,将当前位置移到前一列退格,将当前位置移到前一列8r回车,将当前位置移到本行开头回车,将当前位置移到本行开头13f换页,将当前位置移到下页开头换页,将当前位置移到下页开头12反斜杠字符反斜杠字符“”92单引号(撇号)字符单引号(撇号)字符
15、39”双引号字符双引号字符34ddd1到到3位位8进制数所代表的字符进制数所代表的字符xhh1到到2位位16进制数所代表的字符进制数所代表的字符计算机语言程序设计计算机语言程序设计2.2.字符串常量字符串常量: : 用一对双引号括起来的字符序列。用一对双引号括起来的字符序列。 如如: : “HELLOHELLO”, ,”20082008”, ,”a a” 字符串结束标志:字符串结束标志:00 如如: :”HELLOHELLO”在内存中为在内存中为: :H EL LO 0A A为一个字符为一个字符”A A”为两个字符为两个字符AA 03.2.3 字符型数据(一)字符型数据(一)计算机语言程序设计
16、计算机语言程序设计3.2.3 字符型数据(二)字符型数据(二)3. 字符型变量:字符型变量: 用来存放字符常量(单个字符),而非字符串用来存放字符常量(单个字符),而非字符串如:如:char c1 , c2 ; c1 = a ; c2 = n ;字符型变量的存放:字符型变量的存放:l 存放的是对应字符的存放的是对应字符的ASCII码值。码值。l 字符型数据和整型数据是通用的。字符型数据和整型数据是通用的。l 字符型数据占用内存空间的一个字符,只能存字符型数据占用内存空间的一个字符,只能存 放放0255 范围内的整数。范围内的整数。计算机语言程序设计计算机语言程序设计例例1:1:字符的存储与输出
17、字符的存储与输出 # include void main( ) char c1,c2; c1=a;c2=b; printf(%c%c,c1,c2); c197; c298; printf(%c%c,c1,c2); 运行结果为:运行结果为: a ba b a b a b c1c2970110000198011000103.2.3 字符型数据(二)字符型数据(二)内存中内存中c1,c2c1,c2的存放形式的存放形式: :计算机语言程序设计计算机语言程序设计例例2:2:字符数据的输出形式字符数据的输出形式 # include void main( ) int i; char c; i=a; c=97
18、; printf(%c%d,c,c); printf(%c%d,i,i); 运行结果为:运行结果为:a 97a 97 a 97 a 97 3.2.3 字符型数据(二)字符型数据(二)计算机语言程序设计计算机语言程序设计计算机语言程序设计计算机语言程序设计 运算原则:运算原则: 进行运算时,不同类型的数据先转换为同一类型,进行运算时,不同类型的数据先转换为同一类型, 然后进行运算。然后进行运算。如如: 8+a+1.23-3.52*c 转换规则为:转换规则为:intshort,charunsignedlongdoublefloat低低高高此种数据类型转换是由系统自动进行的。此种数据类型转换是由系统
19、自动进行的。注:注:箭头表示当箭头表示当运算对象为不同运算对象为不同类型时数据转换类型时数据转换的方向的方向计算机语言程序设计计算机语言程序设计3.3.2 赋值运算时的类型转换赋值运算时的类型转换 赋值运算符:赋值运算符:= 说明:说明:赋值运算符左侧必须为变量,右侧为表达式。赋值运算符左侧必须为变量,右侧为表达式。 将运算符右侧的数据赋值给运算符左侧的变量。将运算符右侧的数据赋值给运算符左侧的变量。 规则:规则:在进行赋值运算时,赋值运算符右侧的数据类在进行赋值运算时,赋值运算符右侧的数据类 型先转换为赋值运算符左侧变量的数据类型。型先转换为赋值运算符左侧变量的数据类型。 如:如:int a
20、 ; a = 3.74 ; /* a 的值为的值为 3 */此种数据类型转换是截断型的转换,不会四舍五入。此种数据类型转换是截断型的转换,不会四舍五入。计算机语言程序设计计算机语言程序设计3.3.2 赋值运算时的类型转换赋值运算时的类型转换 赋值运算符:赋值运算符:变量变量 = 表达式表达式变量变量表达式表达式转换规则转换规则整型整型实型实型舍去实数的小数部分舍去实数的小数部分实型实型整型整型其值不变,以浮点数形式存储其值不变,以浮点数形式存储floatdouble截取其前截取其前7位有效数字存放位有效数字存放字符型字符型整型整型截取低截取低8位数据存放位数据存放整型整型字符型字符型将数据存放
21、到低将数据存放到低8位,高位,高8位补位补1/0intlong截取低截取低16位数据存放位数据存放longint将数据存放到低将数据存放到低16位,高位,高16位补位补1/0计算机语言程序设计计算机语言程序设计3.3.3 强制类型转换强制类型转换 强制类型转换强制类型转换: 将一个表达式的类型转换为指定的数据类型。将一个表达式的类型转换为指定的数据类型。 转换形式转换形式:(类型符)(表达式)(类型符)(表达式) 如:如:float a = 4.5 ; int b ; b = a * 2; 如:如:float a = 4.5 ; int b ; b = ( int ) a * 2;说明:说明:
22、 1)类型说明和表达式都需要加括号(单个变量可不加)类型说明和表达式都需要加括号(单个变量可不加 括号)。括号)。 2)无论自动转换,还是强制转换都是临时转换,不改)无论自动转换,还是强制转换都是临时转换,不改变数据本身的类型和值。变数据本身的类型和值。计算机语言程序设计计算机语言程序设计3.4.2 算术运算符及表达式算术运算符及表达式3.4.3 赋值运算符及表达式赋值运算符及表达式3.4.4 关系运算符及表达式关系运算符及表达式3.4.5 逻辑运算符及表达式逻辑运算符及表达式3.4.6 逗号运算符及表达式逗号运算符及表达式3.4.7 条件运算符及表达式条件运算符及表达式3.4.8 位运算位运
23、算计算机语言程序设计计算机语言程序设计3.4.1 C语言运算符简介语言运算符简介算术运算符算术运算符+-*/%关系运算符关系运算符=!=逻辑运算符逻辑运算符! &|位运算符位运算符|&赋值运算符赋值运算符 = 及其扩展赋值运算符及其扩展赋值运算符条件运算符条件运算符 ? :逗号运算符逗号运算符,指针运算符指针运算符*&求字节数运算符求字节数运算符 sizeof强制类型转换运算符强制类型转换运算符(类型)(类型)分量运算符分量运算符.-下标运算符下标运算符 计算机语言程序设计计算机语言程序设计3.4.2 算术运算符及表达式算术运算符及表达式 基本算术运算符:基本算术运算符
24、: + 加法或正值运算符加法或正值运算符 减法或负值运算符减法或负值运算符 * 乘法运算符乘法运算符 / 除法运算符除法运算符 % 模运算符,或求余运算符模运算符,或求余运算符 如:如:3 + 5 5 9 9 / 4 3.5 * 2 7%4 算术表达式:算术表达式: 用算术运算符和括号将运算对象用算术运算符和括号将运算对象(也称操作数也称操作数)连接连接 起来的、符合起来的、符合C语法规则的式子。语法规则的式子。操作对象包括:常量、变量、表达式、函数等操作对象包括:常量、变量、表达式、函数等 表达式的类型:表达式的类型: 算术运算符的优先级和结合性算术运算符的优先级和结合性:自左至右:自左至右
25、计算机语言程序设计计算机语言程序设计3.4.2 算术运算符及表达式算术运算符及表达式自增、自减运算符:自增、自减运算符: + - 作用:作用: + i - - i 在使用在使用 i 之前,使之前,使 i 的值加或减的值加或减1 i + i - - 在使用在使用 i 之后,使之后,使 i 的值加或减的值加或减1 说明:说明:只能用于变量,不能用于常量或表达式。只能用于变量,不能用于常量或表达式。 如:如: int i = 3, j, k ; j = i + ; k = + i ; int i = 3, j ; j = ( i + ) + ( i + ) + ( i + ) ; int i = 3
26、, j ; j = ( + i ) + ( + i ) + ( + i ) ; 结合方向:结合方向:“自右至左自右至左” 如:如: - j +i + j- ( j + )( i + ) + j计算机语言程序设计计算机语言程序设计3.4.3 赋值运算符及表达式赋值运算符及表达式 赋值运算符:赋值运算符:= 赋值表达式:赋值表达式: 由赋值运算符将一个变量和一个表达式连接起来由赋值运算符将一个变量和一个表达式连接起来 的式子称为赋值表达式的式子称为赋值表达式. . 格式:格式: 如:如:int a,b ; float d,e ; char c1, c2 ; a = 0 ; b = a+7 ; d
27、= 3.14 ; e = 2 ; c1 = a ; c2 = 65 ;计算机语言程序设计计算机语言程序设计3.4.3 赋值运算符及表达式赋值运算符及表达式 复合的赋值运算符:复合的赋值运算符: 赋值运算符前可加其他运算符,构成复合赋值运算符。赋值运算符前可加其他运算符,构成复合赋值运算符。 +=+=(加赋值)(加赋值) |=|=(按位或赋值)(按位或赋值) -=-=(减赋值)(减赋值) =(按位异或赋值)(按位异或赋值) * *= =(乘赋值)(乘赋值) =(右移位赋值)(右移位赋值) %=%=(求余赋值)(求余赋值) &=&=(位与赋值)(位与赋值)如:如:a + = 3 相
28、当于相当于 a = a + 3 x * = y + 8 相当于相当于 x = x * ( y + 8 ) x % = 3 相当于相当于 x = x % 3计算机语言程序设计计算机语言程序设计3.4.3 赋值运算符及表达式赋值运算符及表达式 赋值运算符结合方向:赋值运算符结合方向:“自右至左自右至左” 如:如:a = 5 a = ( b = 5 ) a = ( b = 4 ) + ( c = 6 ) a + = a - = a * a计算机语言程序设计计算机语言程序设计3.4.4 关系运算符及表达式关系运算符及表达式 关系运算符:关系运算符: = = != = 优先级相同(高)优先级相同(高)
29、= != 优先级相同(低)优先级相同(低)优先级比较优先级比较算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符高高低低 关系表达式:关系表达式: 用关系运算符将两个表达式连接起来的式子。用关系运算符将两个表达式连接起来的式子。关系表达式的值:关系表达式的值:即即“真真”或或“假假”逻辑值逻辑值 C语言中,以语言中,以 1 表示表示“真真”,0 表示表示“假假”如:如: a=3,b=2,c=1 d = a b e = a b c f = a b b & b b ! a & b | | b b ) & ( n = c d )应用举例:应用举例:判断某年是否闰年判
30、断某年是否闰年 闰年:闰年:y % 4 = 0 & y % 100 != 0 | | y % 400 = 0 非闰年:非闰年: ! ( y % 4 = 0 & y % 100 != 0 | | y % 400 = 0 ) 或:或: y % 4 != 0 | | y % 100 = 0 & y % 400 != 0计算机语言程序设计计算机语言程序设计3.4.6 逗号运算符及表达式逗号运算符及表达式 逗号运算符:又称顺序求值运算符逗号运算符:又称顺序求值运算符 格式:格式:表达式表达式1,表达式,表达式2 说明:说明:依次求解各表达式,整个表达式的值为表达式依次求解各表达式,整个表达式的值为表达式 2的值。的值。 如:如:( 3 * 5,2 * 4 ) 的值为的值为8如:如:a = 3 * 5,a * 4 ( a = 3 * 5,a * 4 ),a + 5 逗号表达式的扩展形式:逗号表达式的扩展形式:格式:格式:表达式表达式1,表达式,表达式2, ,表达式,表达式n如:如:a = 3 * 5,a * 4,a + 5 逗号运算符的优先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车制造行业顾问工作总结
- 年产800万平方米水性超细纤维材料项目可行性研究报告写作模板-申批备案
- 2025年全球及中国建筑隔热用气凝胶行业头部企业市场占有率及排名调研报告
- 2025年全球及中国有机肥快速测定仪行业头部企业市场占有率及排名调研报告
- 2025年全球及中国实验室冷藏柜行业头部企业市场占有率及排名调研报告
- 2025年全球及中国管路无菌连接器行业头部企业市场占有率及排名调研报告
- 2025-2030全球模型实时运维系统行业调研及趋势分析报告
- 2025年全球及中国2.4GHz 无线通讯芯片行业头部企业市场占有率及排名调研报告
- 2025-2030全球金属加工磨料行业调研及趋势分析报告
- 2025-2030全球高效智能无孔包衣机行业调研及趋势分析报告
- 电网工程设备材料信息参考价(2024年第四季度)
- 2025年江苏农牧科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025江苏连云港市赣榆城市建设发展集团限公司招聘工作人员15人高频重点提升(共500题)附带答案详解
- 江苏省扬州市蒋王小学2023~2024年五年级上学期英语期末试卷(含答案无听力原文无音频)
- 数学-湖南省新高考教学教研联盟(长郡二十校联盟)2024-2025学年2025届高三上学期第一次预热演练试题和答案
- 决胜中层:中层管理者的九项修炼-记录
- 《有机化学》课件-第十章 羧酸及其衍生物
- 人教版道德与法治五年级下册《第一单元 我们一家人》大单元整体教学设计2022课标
- 2024年海南公务员考试申论试题(A卷)
- 中医培训课件:《经穴推拿术》
- 临床药师进修汇报课件
评论
0/150
提交评论