




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计教程2022/1/271第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 2.1 C2.1 C语言的数据类型语言的数据类型 2.2 2.2 常量和变量常量和变量 2.3 2.3 整型数据整型数据 2.4 2.4 实型数据实型数据 2.5 2.5 字符型数据字符型数据 2.6 2.6 变量赋初值变量赋初值 2.7 2.7 各类数据之间的混合运算各类数据之间的混合运算 2.8 C2.8 C运算符简介运算符简介C语言程序设计教程2022/1/272 教学提示教学提示 本章介绍本章介绍C C语言提供的基本数据类型、运算语言提供的基本数据类型、运算符和表达式,这些知
2、识是程序设计的基础,符和表达式,这些知识是程序设计的基础,通过本章的学习,学生将对通过本章的学习,学生将对C C语言的数据处语言的数据处理功能有更进一步的了解。理功能有更进一步的了解。 教学目标教学目标 掌握掌握C C语言提供的三种基本数据类型的表示语言提供的三种基本数据类型的表示方法,掌握各种运算符和表达式,掌握数据方法,掌握各种运算符和表达式,掌握数据类型转换、自增自减运算符的使用。类型转换、自增自减运算符的使用。C语言程序设计教程2022/1/273 字符型(字符型(charchar) 整型(整型(short,int,long,unsignedshort,int,long,unsigne
3、d) 单精度型(单精度型(floatfloat) 实型实型 双精度型(双精度型(doubledouble) 枚举类型(枚举类型(enumenum) 数组类型(数组类型( ) 构造类型构造类型 结构体类型(结构体类型(structstruct) 共用体类型(共用体类型(unionunion) 指针类型(指针类型(* *) 空类型(空类型(voidvoid)基本类型基本类型数据类型数据类型2.1 C2.1 C语言的基本数据类型语言的基本数据类型一、数据类型概述一、数据类型概述第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2742.2 2.2 常量常量 常量是指在程序运行中常量
4、是指在程序运行中, ,其数值不能被改变的量。其数值不能被改变的量。 常量又可分为直接常量和符号常量。常量又可分为直接常量和符号常量。C语言程序设计教程2022/1/2752.2.1 2.2.1 常量(例常量(例2 21 1) 1.1.整数常量整数常量: : (1) (1) 十进制形式十进制形式: :与数学上的整数表示相同;与数学上的整数表示相同; 例如例如: 12, -100, 0: 12, -100, 0 (2) (2) 八进制形式八进制形式: :在数码前加数字在数码前加数字0 0; 例如例如: 012=1: 012=1* *8 81 1+2+2* *8 80 0=10(=10(十进制)十进
5、制) (3) (3) 十六进制形式十六进制形式: :在数码前加在数码前加0X0X(数字数字0和字母和字母X)。)。 例如例如: 0 x12=1: 0 x12=1* *16161 1+2+2* *16160 0=18(=18(十进制)十进制) * 八进制的数码范围为八进制的数码范围为07; 018 * 十六进制的十六进制的数码除了数字数码除了数字0 09 9外外, , 还使用英文字母还使用英文字母a f (或或A F)表示表示1015。 如:如:0 x1e 第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/276 2 2、分类:分类: 根据数据所占的二进制位数分为根据数据所占的
6、二进制位数分为:int:int、shortshort、longlong; 同样存储长度的数据又分同样存储长度的数据又分unsignedunsigned、signedsigned; 故可组合出六种类型。故可组合出六种类型。3 3、值域:值域: 由机器中数据的存储长度决定。由机器中数据的存储长度决定。 如如Turbo CTurbo C中,有中,有short(2short(2字节字节)int(2)int(2字节字节)long(4)long(4字节字节) ) 关键字关键字 所占位数所占位数 取值范围取值范围 short 16 short 16 -32768-327683276732767 unsign
7、ed short 16 unsigned short 16 0 06553565535 int 16 int 16 -32768-327683276732767 unsigned 16 unsigned 16 0 06553565535 long 32 -2147483648 long 32 -214748364821474836472147483647 unsigned long 32 unsigned long 32 0 042949672954294967295第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/277(1) (1) 十进制小数形式:十进制小数形式:由数字
8、和小数点组成;由数字和小数点组成; 例如例如: 3.4, 4., .3: 3.4, 4., .3。(2) (2) 指数形式:指数形式:“十进制小数十进制小数”+“ e(+“ e(或或E)”+“E)”+“十进制数整十进制数整数数”。 例如例如: 12.5e-6: 12.5e-6 表示表示12.512.51010-6 。 小数点不能单独出现;小数点不能单独出现; 0.0. .0 .0 . . e e或或E E的两边必须有数,且其后面必须为整数;的两边必须有数,且其后面必须为整数; 如:如: 6E0.2 6E0.2 e5e5 2、分类:分类: 关键字关键字 字节数字节数 取值范围取值范围 精度精度(
9、 (位位) ) float 4 3.4 float 4 3.41010-38 3.43.4101038 7 7 double 8 1.7 double 8 1.71010-308 1.71.71010308 1515注意注意第2章 C语言的基本数据类型与表达式2 2、实型、实型常量:常量:C语言程序设计教程2022/1/278 (1) (1) 用单引号括起来的一个字符;如:用单引号括起来的一个字符;如:AA、 11、?等。等。 (2) (2) 用单引号括起来的由反斜杠用单引号括起来的由反斜杠( ( ) )引导的转义字符。引导的转义字符。 字符形式字符形式 功能功能 n n 换行换行 t t 横
10、向跳格横向跳格 b b 退格退格 r r 回车回车 反斜杠字符反斜杠字符 单引号字符单引号字符 ddd 8ddd 8进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符 xhh 16xhh 16进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符第2章 C语言的基本数据类型与表达式3 3、字符常量、字符常量C语言程序设计教程2022/1/279例如:字符例如:字符A A的的ASCIIASCII码为:码为: 65D65D(十进制)(十进制)=41H=41H(十六进制)(十六进制)=101Q=101Q(八(八进制)进制) 字符字符A A可以表示为可以表示为AA、x4
11、1x41、101101。2、分类:分类: char char 和和 unsigned charunsigned char;3 3、值域:值域: 每个字符型数据在内存中占每个字符型数据在内存中占一个字节一个字节;包括;包括ASCIIASCII字符表中的所有字符(可显示字符和非显字符表中的所有字符(可显示字符和非显示字符)。示字符)。第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/27104、字符串常量:、字符串常量: 是用一对双引号括起来的字符序列。是用一对双引号括起来的字符序列。 如:如:“SHANGHAI”SHANGHAI”,“AbcdeFGHijk”AbcdeFGHij
12、k”,“How How are you”are you”。注意注意 a a与与“a”a”的区别。的区别。C语言程序设计教程2022/1/2711 120 、 -100、 0; 0120、 072; 0 xFFFF、 0 x1e、0X28AF,0XED4 ; 120L, 200L ; 长整型常量长整型常量 3.14、 -3.1、 5.12E-6 ; a 、#、n、101 ; 099、12f、 0 xg 、48EA ; 019.5 、1e-08; 实型常量只能用十进制形式表示实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9 ; changsha 、+?ab ; 、p
13、、ab ;第2章 C语言的基本数据类型与表达式请判断这些常量正确与否:请判断这些常量正确与否:C语言程序设计教程2022/1/27125 5、符号常量(例、符号常量(例2 22 2) 是是用标用标识符来表示一个数据;在程序不能给它赋值。识符来表示一个数据;在程序不能给它赋值。 定义形式定义形式: : #define#define 标识符标识符 常量数据常量数据 例如例如: #define PI 3.14159 : #define PI 3.14159 在程序预处理时,凡是出现标识符在程序预处理时,凡是出现标识符PIPI的地方都将用的地方都将用数据数据3.141593.14159来替换。来替换。
14、 如如: 2: 2* *2.32.3* *PI PI 就等价于就等价于 2 2* *2.32.3* *3.141593.14159。第2章 C语言的基本数据类型与表达式注意:注意:1 1、符号常量与变量不同,它的值在其作用域内不能改变,也不、符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。能再被赋值。2 2、使用符号常量的好处:、使用符号常量的好处:(1 1)含义清楚、见名知意。)含义清楚、见名知意。(2 2)修改方便、一改全改,如现在想将符号常量)修改方便、一改全改,如现在想将符号常量PIPI的值修改成的值修改成3.153.15的话,只需要将宏定义语句改为:的话,只需要将宏定
15、义语句改为: #define PI 3.15 #define PI 3.15 即可。即可。C语言程序设计教程2022/1/27132.32.3 变量变量 变量是指以标识符为名字,其值可以改变变量是指以标识符为名字,其值可以改变的量。的量。 变量代表计算机内存中的某一存储空间,变量代表计算机内存中的某一存储空间,该存储空间该存储空间中存放中存放的数据就是变量的值。的数据就是变量的值。 在同一程序块中,变量不能被重复定义。在同一程序块中,变量不能被重复定义。 使用变量时必须使用变量时必须“先定义,后使用先定义,后使用”。 C语言程序设计教程2022/1/27141、定义形式:定义形式:类型标识符类
16、型标识符: 变量名变量名1 ,变量名变量名2,变量名变量名3.; 例如例如:int a,b,c ; float x,y; char c1,c2; 或或 int c1,c2; 自己设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:int,int,float,charfloat,char;不可省;不可省第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/27152.3.32.3.3 变量赋初值变量赋初值又称为又称为变量初始化变量初始化 在说明变量的同时给变量一个初始值。在说明变量的同时给变量一个初始值。 在变量定义中赋初值的一般形式为:类型说明符类型说明符 变量变量1=
17、1= 值值1 1,变量,变量2= 2= 值值2 2,;例如例如int a=5, b=3; int a=5, b=3; int a=b=c=3; int a=b=c=3; int a,b,c; a=b=c=3; int a,b,c; a=b=c=3; C语言程序设计教程2022/1/2716 mainmain( ) int x int x,y y,z z,w w; / /* *定义定义x x,y y,z z,w w为整型变量为整型变量* */ / unsigned int k unsigned int k; / /* *定义定义k k为无符号整型变量为无符号整型变量* */ / x=10 x=1
18、0;y=-20y=-20;k=30k=30; z=x+kz=x+k;w=y+kw=y+k; printfprintf(“x+k=%dx+k=%d,y+k=%dn”y+k=%dn”,z z,w w); ; 第2章 C语言的基本数据类型与表达式例例2-12-1:变量定义举例:变量定义举例程序运行结果为:程序运行结果为: x+k=40 x+k=40,y+k=10y+k=10C语言程序设计教程2022/1/2717 C C语言允许整型、实型、字符型数据进行混合运算。语言允许整型、实型、字符型数据进行混合运算。 有有3 3种转换方式:自动转换、赋值转换和强制转换。种转换方式:自动转换、赋值转换和强制转换
19、。 一、类型自动转换一、类型自动转换 double float long unsigned int char,short第2章 C语言的基本数据类型与表达式2.3.4 2.3.4 数据类型转换数据类型转换 C语言程序设计教程2022/1/2718 int x=2;float y=1.6;char c=A;int x=2;float y=1.6;char c=A; 则:则:c+xc+x* *y = c + x y = c + x * * y y 65(int)+ 2(int) 65(int)+ 2(int) * * 1.6(double) 1.6(double) = 68.2(double) =
20、 68.2(double)二、 赋值转换 在赋值时将赋值符右边值的类型转换成与其左边变量类在赋值时将赋值符右边值的类型转换成与其左边变量类型一致的类型。型一致的类型。 有下列几种情况:有下列几种情况: (1) (1) 实型实型 整型(字符型):去掉小数部分;整型(字符型):去掉小数部分; 例如例如char c=68.5;printf(“%c”,c);第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2719(2) (2) 整型(字符型)整型(字符型) 实型:实型: 补足有效位;补足有效位;(3)(3)对对charchar、intint、shortshort、longlong、
21、unsignedunsigned型数据:型数据: 赋值符右边数据(赋值符右边数据(a a位)位) 赋值符左边的变量(赋值符左边的变量(b b位)位) 若若 a=b a=b 原样照赋;原样照赋; ab ab 截断高截断高a-ba-b位,送低位,送低b b 位;位; 有符号数据有符号数据 有符号变量:符号扩展;有符号变量:符号扩展; 其他情况:高其他情况:高a-ba-b位全补位全补0 0。 符号扩展:符号扩展: 符号位为符号位为0 0,剩余的高位补,剩余的高位补0 0; 符号位为符号位为1 1,剩余的高位补,剩余的高位补1 1。ababfloat f=23; 23.00000 f (7位)位)do
22、uble f=A; 23.00 f(15位)位)第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2720 三、强制类型转换三、强制类型转换 形式:形式: ( (类型名类型名) )表达式表达式 强制类型转换时强制类型转换时, ,得到所需类型的中间变量,原来变得到所需类型的中间变量,原来变 量的类型不会改变。量的类型不会改变。 例如:例如: int a=2,b=5;int a=2,b=5; float x=4.4; float x=4.4; 则有:则有: 表达式表达式 结果结果 b/a 2b/a 2 (float)b/a 2.5 (float)b/a 2.5 (float)(b
23、/a) 2.0 (float)(b/a) 2.0 (int)x%a+x 4.4 (int)x%a+x 4.4 (int)x%(a+x) (int)x%(a+x) 第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2721 按操作功能运按操作功能运算符大致可分为算算符大致可分为算术运算符、关系运术运算符、关系运算符、逻辑运算符、算符、逻辑运算符、按位运算符以及其按位运算符以及其它运算符如赋值运它运算符如赋值运算符、条件运算符、算符、条件运算符、逗号运算符等。逗号运算符等。 表达式是由操表达式是由操作数和运算符组成作数和运算符组成的序列。的序列。 第2章 C语言的基本数据类型与表
24、达式2.4 2.4 算术运算符与算术算术运算符与算术运算表达式运算表达式算术运算符算术运算符 + - + - * * / % / %关系运算符关系运算符 = = = = = != !=逻辑运算符逻辑运算符 ! & & 位运算符位运算符 | &| &赋值运算符赋值运算符 = = 条件运算符条件运算符 ?: :逗号运算符逗号运算符 ,指针运算符指针运算符 * * 和和 & &求字节数运算符求字节数运算符 sizeofsizeof强制类型转换运算符强制类型转换运算符分量运算符分量运算符 下标运算符下标运算符 C语言程序设计教程2022/1/2722 2
25、.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式 1 1、 运算符运算符 +(+(加加) ):3+43+4、 +3+3 -( -(减减) ):3-53-5、 -5-5 * *( (乘乘) ):3 3* *5 5 /( /(除除) ):5/25/2的值为的值为2 2;5.0/25.0/2的值为的值为2.52.5; %(%(取余取余) ):5%35%3的值为的值为2 2; -5%3-5%3的值为的值为-2-2; 5%(-3)5%(-3)的值为的值为2 2; -5%(-3)-5%(-3)的值为的值为-2-2; 12.3%3 12.3%3 若若a a能被能被b b整除,则有:整除,则
26、有:a%b=0a%b=0 第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2723 2.4.22.4.2、算术运算表达式、算术运算表达式 用算术运算符和括符将操作数连接起来的式子。用算术运算符和括符将操作数连接起来的式子。 优先级:()优先级:() * *、/ /、% +% +、- - 结合性:从左至右;结合性:从左至右; 表达式的值:表达式的值: 数值型数值型(int(int、longlong、unsignedunsigned、double)double);例如:例如: 已知:已知: float a=2.0;float a=2.0; int b=6,c=3; int b=
27、6,c=3; 求解:求解: a a* *b/c-1.5+a+fabs(-5)=b/c-1.5+a+fabs(-5)=?第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2724 double float long unsigned int char,short float a=2.0; int b =6,c =3;float a=2.0; int b =6,c =3; a a* *b/c -1.5 +a +fabs(-5)b/c -1.5 +a +fabs(-5)12.012.0/3/354.0 4.0 - 1.5- 1.52.5 2.5 + 97(int)+ 97(int)
28、99.5 99.5 + 5+ 5104.5104.5(double)(double)第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2725 1 1、赋值运算符、赋值运算符 = = 2 2、赋值表达式:用赋值运算符将变量和表达式连接起来、赋值表达式:用赋值运算符将变量和表达式连接起来的式子的式子 形式形式: : = 求值规则求值规则: : 将将“=”=”右边表达式的值赋给左边的变右边表达式的值赋给左边的变量。量。 结合性:自右至左;结合性:自右至左; 表达式的值:被赋值变量的值。表达式的值:被赋值变量的值。例如例如:(1) x=(y=12)/4 (1) x=(y=12)/4
29、 y y值为值为1212,x x值为值为3 3,表达式的值为,表达式的值为3 3 (2) x=y=12/4 (2) x=y=12/4 y y值为值为3 3,x x值为值为3 3,表达式的值为,表达式的值为3 3 (3) x=(y=12/4) (3) x=(y=12/4) y y值为值为3 3,x x值为值为3 3,表达式的值为,表达式的值为3 3 (4) (x=y)=12/4 (4) (x=y)=12/4 第2章 C语言的基本数据类型与表达式2.5 2.5 赋值运算符和赋值表达式赋值运算符和赋值表达式C语言程序设计教程2022/1/2726 3 3、复合赋值运算符、复合赋值运算符 * *= =
30、、/=/=、 %=%=、 +=+=、 -=, =-=, =, &=, &=、 =、 = 注意注意: : 复合运算符是一个运算符复合运算符是一个运算符, ,但功能上但功能上, ,是两个运算符功是两个运算符功能的组合。能的组合。例如例如: : (1) a+=b (1) a+=b 相当于相当于 a=a+ba=a+b a a* *=b =b 相当于相当于 a=aa=a* *b b a a* *=b+c =b+c 相当于相当于 a=a a=a* *(b+c) (b+c) 而不是而不是 a=a a=a* *b+cb+c (2) (2) 设设a=12a=12,计算表达式,计算表达式a+=a-
31、=aa+=a-=a* *1212和和a+=a-=aa+=a-=a* *=12=12 的值的值第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/27272.62.6自加与自减运算符自加与自减运算符 +i,-i+i,-i:使用之前使:使用之前使i i的值增的值增1 1(或减(或减1 1);); i+,i- i+,i-:使用之后使:使用之后使i i的值增的值增1 1(或减(或减1 1););等价于等价于 i=i+1;i=i+1;j=i;i+; j=i;i+; 所以所以i i的值为的值为4 4,j j的值为的值为3 3。i+;j=i; i+;j=i; 所以所以i i的值为的值为4 4
32、,j j的值为的值为4 4。例如:例如:(1) i+;(1) i+; +i; +i;(2) i=3;(2) i=3; j=i+; j=i+; (3) i=3;(3) i=3; j=+i; j=+i;第2章 C语言的基本数据类型与表达式C语言程序设计教程2022/1/2728 结合性:自右至左。结合性:自右至左。 如:如: i = 2;i = 2; j = -i+; j = -i+; 等价于:等价于:j=-(i+);j=-(i+); 即:即: j=-i;i+; j=-i;i+; “+”与与”- -“是同优先级是同优先级 所以所以i i的值为的值为3 3,j j的值为的值为-2-2。第2章 C语言
33、的基本数据类型与表达式 注意注意 “ “+”+”或或“-”-”自增与自减运算符的使用。自增与自减运算符的使用。 如:设如:设i=3i=3,k=(i+)+(i+)+(i+)k=(i+)+(i+)+(i+),k=k=? 如:设如:设i=3i=3,j=4j=4,k=i+jk=i+j,k=k=?C语言程序设计教程2022/1/27292.72.7位运算符位运算符 & | 低于单目、算术运算符,低于单目、算术运算符,高于其他运算符高于其他运算符低于单目、算术和关系运低于单目、算术和关系运算符,高于其他运算符算符,高于其他运算符C语言程序设计教程2022/1/2730位逻辑运算符的运算规则 假设a
34、i和bi均是一个二进制位(bit) 运算对象逻辑运算结果aibiai&biai|biai biai000001010111100110111100C语言程序设计教程2022/1/2731程序如下: main( ) int a=10, b=010; printf(%d %dn, a&b, a|b); printf(%d %dn, ab, a); 输出结果:输出结果:运行运行jc2_cC语言程序设计教程2022/1/2732移位运算 例如:ab-1 等价于 (a+8)(b-1) main( ) int a=10, b=2; printf(%d %dn, , ); 输出结果:输出结果:运行运行jc2_dC语言程序设计教程2022/1/2733例题 x=2;y=3;z=4 X%=y%=2 X=+y%z- - x !(x=y)&(y=z)|0 !(x+y)+z-1&b+c xy|z&yC语言程序设计教程2022/1/27342.8.2 2.8.2 逗号运算符和逗号表达式逗号运算符和逗号表达式 在语言中在语言中逗号逗号“,”也是一种运算符,称为逗也是一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预防肺结核教育
- 2025中国储备粮管理集团有限公司信息化运维中心招聘14人笔试参考题库附带答案详解
- 2024福建龙岩新叶工贸有限公司招聘2人笔试参考题库附带答案详解
- 2024海南省粮食和物资储备集团有限公司第6次社会招聘6人笔试参考题库附带答案详解
- 3000字思想汇报范文
- 2024年酒店线上宣传策略试题及答案
- 2024年湖南省鸿峪建设工程有限公司招聘7人笔试参考题库附带答案详解
- 2024四川资阳发展投资集团有限公司招聘1人笔试参考题库附带答案详解
- 2024四川宜宾市江安县第二次选聘县属国有企业领导人员3人笔试参考题库附带答案详解
- 2024年互联网架构开发的考试安排与试题答案
- 2025山西地质集团招聘37人笔试参考题库附带答案详解
- 2024年新疆中考数学试卷(含答案解析)
- 建筑地基基础检测规范DBJ-T 15-60-2019
- 07FK02防空地下室通风设备安装图集
- 广西安全员继续教育考试90分卷
- 参考文献的标注规范
- 武松打虎剧本
- 精品资料(2021-2022年收藏)辽宁省建筑材料检测费标准
- 浙江省交通建设工程质量检测和工程材料试验收费标准表
- 脱硝培训课件
- 分子生态学(课堂PPT)
评论
0/150
提交评论