第2章数据类型运算符与表达式_第1页
第2章数据类型运算符与表达式_第2页
第2章数据类型运算符与表达式_第3页
第2章数据类型运算符与表达式_第4页
第2章数据类型运算符与表达式_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章数据类型、运算符与表达式2回顾q程序是为执行一项任务而编写的有序指令集q算法是解决问题的具体方法和步骤q流程图是算法的图形化表现形式qC语言的特点qC程序的编译和运行过程q编译器将源程序转换成机器能理解的程序q连接器用于连接相关的目标文件以生成可执行程序3目标q理解变量和常量的含义q熟悉基本数据类型 - int、char、float 和 doubleq使用算术运算符q理解类型转换q使用关系和逻辑运算符4q电脑使用内存来记忆计算时所使用的数据q内存如何存储数据?q内存像旅馆q数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间1、开房间(单人间、双人间、总统套间)、开房间

2、(单人间、双人间、总统套间) 2、入住、入住内存如何存放数据.p30-3151000*(1+5%)内内 存存 10001050变量:一个数据变量:一个数据存储空间的表示存储空间的表示 对于专业程序员,数据存入内存不算完:对于专业程序员,数据存入内存不算完: 怎么找到存入的数据?怎么找到存入的数据? 存进去还能改吗?存进去还能改吗?98.76不同数据存入具有不同不同数据存入具有不同内存地址的空间,相互独立内存地址的空间,相互独立 变量.p30-31在银行存在银行存1000元钱,银行一年的利息元钱,银行一年的利息5%,那一,那一年之后钱变成了多少?年之后钱变成了多少?6q内存地址不好记,怎么办?q

3、通过内存中小房间的别名找到数据存储的位置q变量是存储数据的一个基本单元房间房间 房间名字房间名字 房间类型房间类型 入住的客人入住的客人 变量变量 变量名变量名 变量类型变量类型 变量值变量值 为什么需要变量.p30-31对应对应7变量应用.p30-311、在内存中存储本金1000元 2、显示内存中存储的数据的值 int money = 1000; /存数据存数据 数据类型数据类型 变量名变量名 内存空间存的数值内存空间存的数值 演示示例:如何存取变量演示示例:如何存取变量 printf(“%d”,money); /使用数据使用数据8变量的声明和赋值.p30-31q使用变量的步骤:q第一步:声

4、明一个变量q第二步:赋值q第三步:使用变量数据类型数据类型 变量名变量名 = 数值;数值; 根据类型开辟空间根据类型开辟空间 将数据存入空间将数据存入空间 取出数据使用取出数据使用 数据类型数据类型 变量名;变量名; 变量名变量名 = 数值;数值;int money = 1000;int money;money = 1000 ;9变量命名.p27-28在 C 语言中,变量命名需要遵循一定的规则有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip codeq 变量的命名规则:q变量名可

5、以由字母、数字和 _(下划线)组合而成q变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等q变量名必须以字母或 _(下划线)开头q变量名不能包含空白字符(换行符、空格和制表符称为空白字符)qC 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名qC 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量10变量命名.p27-28以下不合法的用户标识符是()以下不合法的用户标识符是() A Aj2_KEY B.Double C.4d D._g_j2_KEY B.Double C.4d D._g_按着按着C C语言规定的

6、用户标识符命名规则,不能出现在标识符中语言规定的用户标识符命名规则,不能出现在标识符中的是(的是( )A A大写字母大写字母 B. B. 连接符连接符 C C数字字符数字字符 D D下划线下划线11基本数据类型.p23-24数据属于不同类别AfricaThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jackie Chanchar数据类型非数值数值整型intshort intlong intdoublefloat非整型12整型.p23-25名称全称类型说明符缩写类型说明符位数范围整型intint16/32-2,147,

7、483,648 至 2,147,483,647无符号整型unsigned intunsigned16/320 至4,294,967,295短整型short intshort16-32768 至 +32767无符号短整型unsigned short intunsigned short160 至 65,535长整型long intlong32-2,147,483,648 至 2,147,483,647无符号长整型unsigned long intunsigned long320 至 4,294,967,29513整型.p23-25类型位数TCVC+int16/32unsigned16/32shor

8、t16unsigned short16long32unsigned long3214使用整型变量.p23-25q声明:int number;long int sum;unsigned int age;q可按如下方式初始化:number=0;int max = 100;在同一语句中可以声明多个类型相同的变量:int number, sum, num;15整型常量.p29q十进制:09的数字,前面可添加”+“或”-“,不能以0开始。如:98,-27,+101 q八进制: 07的数字,以0为前缀。如:037,021,0101 q十六进制:09的数字和AF的字母(大小写均可),以0X或0 x为前缀。如

9、:0 xab,0X2C3,0X101 q数字后加L或l表示长整数。如:98L,27l,+101L q数字后加U或u表示无符号数。如:98U,27u,+101U 16单精度浮点型.p27 float 在 C 语言中用于存储单精度浮点数float32 位10-38 至 10+38 ,7位有效数字q声明:float price;q初始化:float score = 11.3;score = 65.90;17双精度浮点型.p27 内存内存floatdouble213.5671435568967 64位位取值范围:10-308 至 1030816 位有效数字q声明:qdouble value ; q初始

10、化:qvalue = 213.5671435568967; qdouble price = 35.4; 18实型常量.p27 q定点数:09数字和小数点组成。如:0.54,128.5,.35 ,5. q指数形式: 形式为:aEn(a为十进制数,E大小写均可,n为十进制整数,值为a*10n。如:5E2,5.2E3,.2E5 , 1.E4 ,0E0 19年龄:_保险总额:_性别:_字符型3-1 .p25-27 2398340 M int/floatchar20字符型3-2 .p25-27 5 p $ 2 2 2 + 2 = 4 值符号值符号值符号0空字符44,9132空格45-9233!46.93

11、3447/9435#48 570 9 95-36$58:9637%59;97 122a z38&6012541)63?12642*64127DEL (Delete键)43+65 90A Z 21字符型3-3 .p25-27 占 8 位内存signed或 unsignedSigned-128 至 +127 unsigned 0 至 255 char gender;gender=m;char gender=m;22习题以下选项中,合法的一组以下选项中,合法的一组C C语言数值常量是(语言数值常量是( )A A028 B.12. C. .177 D. 0 x8A028 B.12. C. .1

12、77 D. 0 x8A .5e-3 0Xa23 4c1.5 10,000.5e-3 0Xa23 4c1.5 10,000 -0 xf 4.5e0 0abc 3.e5-0 xf 4.5e0 0abc 3.e5以下选项中可作为以下选项中可作为C C语言合法常量的是()语言合法常量的是() A A-80. B. -080 C. -8e1.0 D. -80.0e-80. B. -080 C. -8e1.0 D. -80.0e以下不合法的数值常量是()以下不合法的数值常量是()A A011 B011 B。101 C.8.0E0.5 D.0 xabcd101 C.8.0E0.5 D.0 xabcd23回顾

13、2-1q变量qint、long short、 unsigned 、signed qfloat、doubleqchar24回顾2-2q常量q整型:q 十进制(后加U为unsigned int ;加L或l为long int)q 八进制(以0开头);q 16进制(以0 x开头)q实型 q 十进制小数;q 指数:如123.4E3(E或e前面必须有数字,后面必须是整数)q字符:单引号引起来的一个字符q转义字符: (n,”,ddd,xhh)q字符串:双引号引起来的一个字符序列符号常量1(命名常量) .p29 q 一般采用全大写字母表示 q 语法:const 数据类型 标识符=数值常量;例: 计算圆的周长时

14、 const float PI=3.14; S=PI*r*r; /等价于3.14*r*rq const关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only)量。q优点:比数值常量可读性好、修改容易符号常量2(宏常量) .p70-71 q 还可用宏定义符号常量 语法:#define 符号名 常量值例: 计算圆的周长时 #define PI=3.14 S=PI*r*r; /等价于3.14*r*rq#define一般都定义在程序的头,#include之后 某班的A同学的C语言成绩是80分,B同学与A同学成绩相同,输出B同学成绩int aScore = 80; int bS

15、core;aScore = bScore;printf(%dn,bScore);bScore = aScore ; /将右边的值给左边的变量 赋值运算符 aScorebScore8080副本赋值运算符2-1 .p33-34 输出错误变量名变量名 表达式表达式;赋值运算符2-2 .p33-34 Z = ( X * 2 ) + ( 5 Y ) 表达式 表达式 表达式 q赋值运算符 表达式举例=左边必须是变量=右边可以是变量、常量或表达式29算术运算符.p34-37 q基本的算术运算操作数操作数操作数操作数运算符运算符+加法运算符,如加法运算符,如:、-减法运算符,如减法运算符,如:、*乘法运算符。

16、如乘法运算符。如:*/除法运算符。如除法运算符。如:%模运算符,或称求余运算符,两模运算符,或称求余运算符,两侧均为整型数据,如侧均为整型数据,如:值为值为30算术运算符2-2 .p34-37 算术一元一元-+num+ num=num+1num- num=num-1+num-numnum+num-前置前置后置后置二元二元表达式表达式如何计算如何计算结果结果 (num1=5)num2 = +num1;num1 = num1 + 1;num2 = num1;num2 = 6;num1 = 6;num2 = num1+;num2 = num1;num1 = num1 + 1;num2 = 5;num

17、1 = 6;num2 = -num1;num1 = num1 - 1;num2 = num1;num2 = 4;num1 = 4;num2 = num1-;num2 = num1;num1 = num1 - 1;num2 = 5;num1 = 4;31int num1 = 5; int num2 = 2; int a = num1 % num2;int b = num1 / num2;num1+;num2- -; 5 % 2= 15 / 2 = 2下面代码片断的输出结果是什么? 输出输出/:求商:求商%:求余数:求余数等价于:等价于:num1 = num1 + 1;等价于:等价于:num2 =

18、 num2 - 1;num1 = 6num2 = 1输出输出算术运算符3-3 .p34-37 32习题有以下程序有以下程序main()main() int m=12,n=34; int m=12,n=34; printf( printf(“%d%d%d%d”,m+,+n);,m+,+n); printf( printf(“%d%dn%d%dn”,n+,+m);,n+,+m); 程序运行后的输出结果是()程序运行后的输出结果是()A A12353514 B.12353513 12353514 B.12353513 C.12343514 D.12343513C.12343514 D.1234351

19、3表达式表达式3.6-5/2+1.2+5%23.6-5/2+1.2+5%2的值是()的值是()A A4.3 B.4.8 C.3.3 D.3.84.3 B.4.8 C.3.3 D.3.833类型转换.p46-47 q 自动类型转换(隐式转换)q原则:把表示范围小的类型的值转换到表示范围大的类型的值doublefloatlongunsignedintchar,short精度低精度高34类型转换.p46-47 q 强制类型转换q语法:(类型名) 变量或数值 q例如:(double) /将转换成double类型(int)(x+y) /将x+y的值转换成整(float)(5%3) /将5%3值转换成fl

20、oat型int a = 5, b = 3;float qu = (float)a / b; q注意q (int)x不是int(x)q (int)x+y1、根据天数(46)计算周数和剩余的天数2、已知圆的半径radius= 1.5,求其面积小结36复合赋值表达式.p42-43 运算符运算符计算方法计算方法表达式表达式求值求值结果(假定结果(假定 X = 10)+=运算结果运算结果 = 操作数操作数1 + 操作数操作数2X += 5X = X + 515-=运算结果运算结果 = 操作数操作数1 - 操作数操作数2X -= 5X = X - 55*=运算结果运算结果 = 操作数操作数1 * 操作数操

21、作数2X *= 5X = X * 550/=运算结果运算结果 = 操作数操作数1 / 操作数操作数2X /= 5X = X / 52%=运算结果运算结果 = 操作数操作数1 % 操作数操作数2X %= 5X = X % 5037赋值表达式和逗号运算符.p41-42 q赋值表达式qa=b=c=5;(从右向左计算)qa +=a-=a*aq逗号运算符和逗号表达式q3+5,6+8 qa=3*5,a*438习题有以下程序有以下程序main()main() char a1= char a1=M M,a2=,a2=m m; ; printf( printf(“%cn%cn”,(a1,a2);,(a1,a2)

22、; 以下叙述中正确的是()以下叙述中正确的是()A A程序输出大字字母程序输出大字字母M BM B。程序输出小写字母。程序输出小写字母m mC.C.格式说明符不足,编译出错格式说明符不足,编译出错 D D。程序运行时产生出错信息。程序运行时产生出错信息执行以下程序后输出结果是()执行以下程序后输出结果是()#include #include main()main() int a=10; int a=10; a=(3 a=(3* *5,a+4);5,a+4); printf( printf(“a=%dna=%dn”,a);,a); 39关系运算符 3-1 .p37-39 操作数操作数关系运算符关

23、系运算符关系表达式的关系表达式的计算结果计算结果 = = 逻辑值(真或假)逻辑值(真或假)在在C C语言中,语言中,“0 0”表示表示“假假”,“非非0 0”表示表示“真真”操作数操作数q关系运算符用于测试两个操作数或两个表达式之间的关系,其中操作数可以是变量、常量或表达式。40关系运算符关系运算符关系运算符 3-2 .p37-39 操作数操作数1 1操作数操作数2 241逻辑运算符.p39-40 运算运算运算符运算符表达式表达式逻辑“与”&operand1 & operand2逻辑“或”|operand1 | operand2逻辑“非”!operand1 q逻辑运算符用于连接

24、一个或多个条件,判断这些条件是否成立q逻辑运算符的类型为:42逻辑运算符总结.p39-40 &只有当两个两个条件都为真真时才执行操作只要任何任何一个条件为真真时就执行操作对原条件取反取反,即:如果原条件为假时就执行操作|!43sizeof 运算符.p43 sizeof(int);float num;sizeof(num);44char1int4short int2long4float4double8sizeof 运算符返回的大小q使用 sizeof 运算符可以获得数据类型占用内存空间的大小。其一般形式为: sizeof(type_name)qsizeof 运算符的结果以字节为单位显示注

25、意:在32位计算机中,int类型的变量占4字节的内存大小,和long类型的大小一样,所以现在基本上可以直接使用int类型,而不需要使用long类型。 44运算符优先级 2-1 .p44-45 q 当我们遇到一个复杂表达式时,需要确定先执行哪种运算,此时就需要考虑运算符的优先级 z = x + y g * h * (t/20)+ 65 r % 2先算哪部分加?减?取余?除?括号?要解决此问题,需要使用:运算符优先级45运算符优先级 2-2 .p44-45 运算符运算符描述描述结合性结合性()圆括号自左向右!, +, -, sizeof逻辑非,递增, 递减,求数据类型的大小自右向左*, /, %乘法,除法,取余自左向右+, -加法,减法自左向右

温馨提示

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

评论

0/150

提交评论