教学课件第二章数据类型运算符和表达式

上传人:工**** 文档编号:568830922 上传时间:2024-07-27 格式:PPT 页数:32 大小:460.50KB
返回 下载 相关 举报
教学课件第二章数据类型运算符和表达式_第1页
第1页 / 共32页
教学课件第二章数据类型运算符和表达式_第2页
第2页 / 共32页
教学课件第二章数据类型运算符和表达式_第3页
第3页 / 共32页
教学课件第二章数据类型运算符和表达式_第4页
第4页 / 共32页
教学课件第二章数据类型运算符和表达式_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《教学课件第二章数据类型运算符和表达式》由会员分享,可在线阅读,更多相关《教学课件第二章数据类型运算符和表达式(32页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章 数据类型、运算符和表达式数据类型、运算符和表达式12.1 C2.1 C语言数据类型语言数据类型2.1.1 C语言数据类型语言数据类型 整型 字符型 单精度型 算术类型 实型(浮点型) 基本类型 枚举类型 双精度型 指针类型数据类型 数组 构造类型 结构体类型 共用体类型 22.2 2.2 常量与变量常量与变量常量常量1.定义:定义:在程序执行期间,其值不可改变的量称为常量在程序执行期间,其值不可改变的量称为常量2.类型:类型:v数值常量数值常量 例如:例如:10,3 , 2.68等等v符号常量符号常量 即用一个符号代表一个常量即用一个符号代表一个常量 例如例如: #define

2、PI 3.1415926 main( ) float r,l,s; r=2; l=2*PI*r;s=PI*r*r; printf(“l=%d, s=%d”, l,s); 3说明:说明:v符号常量必须符号常量必须先定义先定义后才能用它表示一后才能用它表示一个数值。个数值。v符号常量的值在其作用域内不能改变,符号常量的值在其作用域内不能改变,也不能再被赋值。也不能再被赋值。v符号常量名习惯用符号常量名习惯用大写大写字母表示。字母表示。4变量变量1. 定义:定义:程序执行期间值可以改变的量。2.命名规则命名规则: 变量名由标识符表示,只能由字母字母、数字数字和下划线下划线三种字符组成,且第一个字符必

3、须为字母字母或下划线下划线。 例如:下列标识符中,不合法的变量名有: M.D.John 12%gf 1add _ce36 age& 5thclass lotus-1-2-3 cd*ef 3.说明:说明: *变量要“先定义,后使用” 定义格式:定义格式:类型说明符类型说明符 标识符标识符1, ,1, ,标识符标识符n n 例如:int x, y, z; float a, b, c, d;5*选变量名时,要做到“见其名,知其意” 例如:name st_age xm nl class sum*大小写字母是两个不同的字符,C变量名习惯用小写小写字母表示。62.32.3整型数据整型数据整型常量整型常量*

4、十进制整数十进制整数 :由数字(0-9)和正负号表示 例如:123、-456、0 等*八进制整数八进制整数:以0开头数是八进制数 例如: 0123 即(123)8 =( 83 ) 10 (123) 8=182+2 81+3 80 =( 83) 10*十六进制整数十六进制整数:以0x或0X开头 例如:0x123 即 (123) 16 =( 291) 10 -0x12 即 (-12) 16 =( -18 ) 10 0x2F 即 (2F) 16 =( 47 ) 107整型变量整型变量 基本型:以 intint 表示 短整型:以 short intshort int 或 shortshort 表示 1

5、.类型 长整型:以 long intlong int 或 longlong 表示 无符号基本型(unsigned intunsigned int) 无符号型 无符号短整型(unsigned shortunsigned short) 无符号长整型(unsigned longunsigned long)说明说明: :一个无符号整型变量中可以存放的数的范围扩大一倍。 整型变量一般在内存中占2个字节(16位).82.42.4实型数据实型数据实型常量实型常量表示形式有如下两种: 十进制数形式十进制数形式:由数字和小数点及正负号组成。 (注意:必须有小数点) 例如:23.678 .678 23. 指数形式

6、:指数形式:由数字、小数点、字母e或E及正负号组成。 (注:e或E之前必须有数字,且后指数必须为整数) 例如:3.5E-5 2e3 E2 3.6e3.5 .e6 e 92.4.2 实型变量实型变量实型变量可分为: 单精度单精度(float型) 如: float x , y ; 双精度型双精度型(double型) 如:double a , b , c ;说明:1. float 型变量在内存中占4个字节;double 型变量在内存中占8个字节。2. 单精度实数提供7位有效数字;双精度实数提供1516位有效数字。3. 一个实型常量不分float 和 double 型, 一个实型常量可以赋给一个flo

7、at 型或 double 型变量,并根据变量的类型截取实型常量中相应的有效位数字。 例如: float a; double b; a=123456.789 ; b=123456.789 ;102.52.5字符型数据字符型数据2.5.1 字符常量字符常量1 .字符常量:用单引号括起来的一个字符。 例如: a A $ ! 注:a与A是 的字符常量。不同不同 2. 转义字符:以一个开头的字符序列 例如: n 换行 t 横向跳格(水平制表) b 退格 v 竖向跳格(垂直制表) f 走纸换页 r 回车,移到本行开头 a 报警 0 空字符11说明:说明:v“ddd” 与“xhh”分别表示用八进制数或十六进

8、制数表示一个字符。例如: 123 x65 129v由于 ”在C语言中都有了特殊的意义,故要想在字符串中使用它们,须在其前面再加上一个反斜线。例如: 反斜线 单引号 ” 双引号v若反斜线出现在以上未提到的字符前,则反斜线被忽略,而该字符就是它的字面表示。例如: c 表示字符 c例:main()printf(“ctlanguagsberCn”); printf(“istusef165x6e”);屏幕输出:C languageIs useful122.5.2 字符串常量字符串常量1.定义:括在一对双引号双引号之内的字符序列或转义字符序列称为字符串常量。 例如:“How are you!” “a” “

9、*abcnt”2.存储:字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符 0自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占n+1个字节。 b 与B是否相同? b 与“b”是否相同?b为98,B为66b是字符常量,“b是字符串常量132.5.3 字符变量(存放字符常量的变量)字符变量(存放字符常量的变量)定义形式: char 标识符标识符1 1,标识符,标识符2 2, ,标识符,标识符n n 例如: char c1, c2, c3, ch ; c1=a ; c2=b ; c3=c ; ch= d ;说明:1.字符变量在内存中占一个一个字节。2.在内存中

10、,是把字符对应的ASCII码值放到存储单元中.3.字符型数据与整型数据之间可以通用.练习:1.以下不合法的变量名为: (A) _123 (B) IF (C) e4 (D)float2.判断下列字符串的长度: “ 054054 ” “x56”cta ”“x56”cta ” “ntbab”“ntbab” 3 输出 ,6输出7V”c a6 输出 ab142.62.6变量赋初值变量赋初值1.初始化:在定义变量的同时为变量赋初值2.形式: 类型标识符 变量名=常量或常量表达式 例如: int x=10 ; char ch=a ;v变量赋初值允许使用符号常量例如: #define PI 3.1415926

11、 .float x=PI ; .v 可对被定义的变量的一部分赋初值 例如: int a , b, c=1, d=2; float r=2 ,l, s;v可对几个变量赋以同一个初值 例如: int a=6, b=6, c=6; 不要写为: int a=b=c=6;152.72.7算术运算符和算术表达式算术运算符和算术表达式2.7.1 基本的算术运算符基本的算术运算符: + - * / %说明:()上述运算符均为双目运算符(即有两个操作数)()“”“”作单目运算符时分别为正值、负值运算符。()在“”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。例如:5/3=()“”要求两侧均为整数,“”

12、运算不能用于float 和 double型数据例如:2162.7.2 2.7.2 算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性1.算术表达式:用算术运算符和括号将操作数连接起来的,符合语法规则的式子。例如: a + b + a*b/c +2.82.优先级:优先级:高于3.结合性结合性:“左结合性”或称为“自左至右的结合方向”即运算对象先与左边的运算符结合。例如:a - b + c172.8 2.8 不同数据类型的数据间的混合运不同数据类型的数据间的混合运算算形式: 隐式转换 (由系统自动进行) 显式转换 (强制类型转换)2.8.1 隐式转换隐式转换 隐式转换的转换规则:

13、 int unsigned int long int unsigned long int double short , char float(1) float 型数据一律转换成double 型数据。(2) char 和short int 型数据一律转换成 int 型数据 以上两条转换原则说明:即使两个操作数类型相同,但只要它们同属 char , short int 或 float 类型,则转换一定发生。18若两个操作数类型不同,则按下列顺序选取第一个适用的规则:(3)两个操作数之一为double 型数据,则另一个转换成 double 型(4)两个操作数之一为 unsigned long int

14、 型数据,则另一个转换成unsigned long int 型数据(5)两个操作数之一为 long int 型数据,则另一个转换成 long int 型数据(6)两个操作数之一为 unsigned int 型数据,则另一个转换成 unsigned int 型数据例:若有: int i ; float f ; double d ; long e ; 试判断表达式 3 +b +i*f - d/e 的类型int unsigned int long int unsigned long int doubleshort , char floatdouble型192.8.2 显式转换显式转换形式:(类型名)

15、(表达式)例如:( double) (a+b)说明:说明:()表达式应用括号括起例如:(int)(x+y) ; 若要得到x/2的小数形式,应写为: (float)x/2 还是 (float) (x/2) ?()在强制类型转换时,得到一个所需类型的中间变量,原来变量类型未发生变化。例如:float x=8.6 ; int y; y=(int)x ;202.9 自增、自减运算(、)自增、自减运算(、)作用:作用:使变量的值增或减,如:i , i (使用之前,先使i的值加(减)1)i, i (使用之后,使i的值加(减)1) +i 先执行i=i+1,再使用i的值 i+ 先使用i的值,再执行i=i+1例

16、如:int a=1 , b; b=+a ; b=a+ ;说明:(1)为单目运算符(2)+ 、只能用于变量,而不能用于常量或表达式。 例如:,(,(x+y)+x+y)+,+a, b+ ,+a, b+ 中合法的为:(3)自增、自减运算符为右结合性(即自右至左)。例如:a+ (a+) 21练习题练习题1. 设a=2, 则执行语句 k=+a+a+ 后的 k值为多少?k=6均为6(1) k=6 a=5(2) k=15 a=52.设a=2, b=9 , 则表达式 a+b+/a+的值为多少?表达式a+(+ b /+ a)的值为多少?3.设a=2 ,若执行语句k=(a+)+(a+)+(a+)后的k值为多少?若

17、执行语句k=(+a)+(+a)+(+a)后的 k值为多少?222.10 2.10 位运算位运算C语言中提供的位运算符: 、 、 & 、 、1.1.按位取反运算符按位取反运算符形式: A功能:把A的各位都取反,(即0变1,1变0)例如:int A=179A0 0 000 0 0 010110011A1 1 111 1 1 101001100232. 按位与运算符按位与运算符 &形式:A&B功能:对A的各位与B的对应位进行比较,如果两者都为1, A&B对应位上的值为1,否则为0。例如:int A=179(二进制10110011) int B=169(二进制10101001)A10110011B10

18、101001A&B10100001243. 按位或运算符按位或运算符|形式:A | B功能:对A的各位与B的对应位进行比较,如果两者中有一个 为1,A|B对应位上的值为1,否则为0。例如:int A=179(二进制10110011) int B=169(二进制10101001)A10110011B10101001A|B10111011254. 按位异或运算符按位异或运算符 形式:AB功能:对A的各位与B的对应位进行比较,如果两者不同, AB对应位上的值为1,否则为0。例如:int A=179(二进制10110011) int B=169(二进制10101001)A10110011B101010

19、01A&B00011010265. 左移运算符左移运算符 形式:An ( 其中其中 n为一个大于为一个大于0的整型表达式)的整型表达式)功能:把A的值向左移动n位,右边空出的n位用0填补。 当左移时移走的高位中全都是0时,相当于对A作n 次乘 以2的运算。例如:int A=27(二进制00011011)A00011011A形式:An n ( 其中其中 n为一个大于为一个大于0的整型表达式)的整型表达式)功能:把A的值向右移动n位,左边空出的n位用0填补。 相当于对A作n 次除以2的运算。例如:int A=179(二进制10110011)A10110011A300010110282.11 2.1

20、1 赋值运算符和赋值表达式赋值运算符和赋值表达式2.11.1 赋值运算符(赋值运算符(=)形式:变量名=常量或表达式作用:将右边常量或表达式的值赋给左边的变量例如:a=3; b=c+d ;2.11.2 复合赋值运算符复合赋值运算符v复合赋值运算符:在赋值符“=”之前加上其它运算符v共有10种复合赋值运算符 += ,=, ,&, =, |=29例如:a+=3 a=a+3 x*=y+3 x=x*(y+3)2.11.3 赋值表达式赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子。形式: 变量变量 = 表达式表达式说明:v赋值表达式的值为被赋值的变量的值。例如:a=b=c=6 a=(b

21、=4)+(c=6) a=(b=4)*(c=6)30v练习:写出顺序执行下列表达式运算后的x值: 1. x=a=b=10 2. x=25%(c=3) 3. x/=x(a%2) 其中 (a=5) 4. x*=x+=x-=x X=10X=110赋值表达式中可以包含复合赋值运算符 例如:若a=12,计算表达式a+=a=a*a运算后a的值 第一步:aa*a a=a-a*a=12-12*12=-132 第二步:a+=-132 a=a+(-132)=-264312.12 2.12 逗号运算符和逗号表达式逗号运算符和逗号表达式1.逗号运算符逗号运算符:即“,”优先级优先级:为所有运算符中级别最低的。2.逗号表达式逗号表达式 形式:表达式表达式1 1,表达式,表达式2 2,表达式,表达式n n 求解过程:顺次求解表达式1,表达式2 最后求解表达式n。逗号表达式的值为表达式表达式n n的值。的值。例如:a=3*5,a*4a=3*5,a*4 a=3*5,a*4,a+5 a=3*5,a*4,a+5 x=(a=4%3 , a+1, a*10)60201032

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号