版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
封面计算机程序设计C语言程序设计第三章
数据类型与表达式第四章数据类型和表达式§4数据类型与表达式内容算法和数据类型就构成了一个程序,本章在了解算法以后,介绍C语言所能提供的各种数据类型,以便了解各种类型数据的使用及其在计算机中的存储方式。同时介绍了实现各种运算的运算符,以及不同运算符的运算优先级和运算结果的类型。重点:数据越界问题、类型转换问题。C语言的数据类型各种数据类型具有不同的存储方式、取值范围及允许的操作。整型实型字符型char短整型short整型int长整型long单精度float双精度double数组、结构体struct、共用体union、枚举类型enum基本类型构造类型指针空类型voidC数据类型数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作§4-1基本数据类型各种数据类型具有不同的存储方式、取值范围及允许的操作。对数据的合理描述,称之为数据结构:本节介绍:无值型:void整型:int/long/short实型:(小数/浮点数)float/double字符型:char①无值型无值型void
使用:对函数进行描述对指针进行描述②整型整型int内存长度:2Byte示例:整型数据+7和–7的内存表示:000000000000011111111111111110011、(7)10=(111)22、原码:+7:0000000000000111-7:10000000000001113、补码:+7:0000000000000111-7:1111111111111001+7:–7:③实型实型(小数、浮点数)单精度 float 内存长度:4Byte双精度 double 内存长度:8Byte例如:101.10110.1011011×211④字符型字符型char内存长度:1ByteASCII码表以字符A为例:AASCII码值6510000010100000101000001七位ASCII代码表⑤整型数据类型类型内存表示范围基本型int2Byte-32768-32767长整型long(int)4Byte-231-231-1短整型short(int)PC机↔基本型工作站1Byte-128-127无符号型unsignedunsignedint2Byte0-65535unsignedlongint4Byte0-232-1§4-2常量整型常量浮点型常量单字符常量字符串常量符号常量①整型常量十进制表示:用一串连续的数字表示十进制数。负数在前面加负号‘-’,除表示整数0外,不以0开头。后缀‘l’或‘L’表示长整型,‘u’或‘U’表示无符号数。 345、31684、0、-23456、459L、356l、567LU八进制表示:以数字0开头的一个连续数字序列,序列中只能有0-7这八个数字。后缀和负号的使用与十进制相同。045、-078、06745L、而019、423非法八进制数。十六进制表示:以0X或0x开头的连续数字和字母序列,序列中只能有0-9、A-F和
a-f这些数字和字母。后缀和负号的使用与十进制相同。例:0x100X2550xd4ef0X6a7bL②浮点型常量小数形式。由数字和小数点组成,必须有小数点。例:4.23、0.15、.56、78.、0.0指数形式。以幂的形式表示,以字母e或E后跟一个以10为底的幂数。字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,字母e或E的前后及数字之间不得有空格。例:2.3e5、500e-2、4.5e0而e4、.5e3.6、.e5、e不合法如果表示浮点类型和长双精度类型,在双精度数的最后附加后缀字符f(或F)和l(或L)。例:34.2f、.5F、12.56L、2.5E3L规范化的指数形式:小数点的左边有一位非0的数字③单字符常量字符内部表示占用一个字节,用对应ASCII编码的二进制形式存储。例如:‘a’、’1’、’\0’、’\n’、’\x17’、’\007’C语言把字符类型看作一种特别短的整数类型。允许参与算术运算。例:‘A’+2表示将‘A’的ASCII码65加2,结果67是字符‘C’的ASCII码。转义字符:‘\’,具有控制含义的转义字符,在输入输出时会引起设备完成相应的动作。转义字符专义字符功能说明专义字符功能说明\n回车换行\f走纸换页\t跳格(制表位)\\反斜杠‘\’\v竖向跳格\‘单引号\b退格\ddd八进制字符\“双引号\xhh十六进制字符\r回车例题:写出下面程序的输出结果:main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’④字符串常量字符串:双引号括起来的一串字符字符串结束标志:‘\0’字符串的内部表示方法:使用一片连续的字节空间,依次存放字符串的每一个字符,在结尾处加特殊字符‘\0’,表示字符串结束。注意:字符和字符串表示形式的区别,’a’和”a”有什么不同?数字和数字字符的区别,1和’1’有什么不同?空字符‘\0’和空格字符‘’的区别,它们的ASCII码值有什么不同?⑤符号常量标识符形式的常量例:求圆周长#definePI3.1416main(){floatr,l;printf("INPUTr=");scanf("%f",&r);l=2*PI*r;printf("L=%.2f\n",f);}#definePI3.1416π无法输入
pi不符合习惯§4-3变量变量的基本操作:①赋值,向变量中存入数据值;②取值(引用),取得变量当前存储的值,以便在计算过程中使用。变量定义:类型名<变量表>;变量定义的三个位置:1、函数或复合结构(一对{}括起来的一段程序)内所有执行语句的前面。2、所有函数外面。3、函数形参表中。①变量的定义格式:[修饰符]定义符变量表列
longinta,b; 功能:分配内存建立变量名与内存地址间的对应关系inta,b;a=3;b=a+2;E002E000abE000E002②变量的初始化赋值运算符=:格式:变量=值(常量、变量、表达式)例如:x=-x;变量的初始化定义时初始化(必须为常量或常量表达式)
inta=3,b=5;使用前初始化 inta;
a=3;变量名:内存地址变量值:内存空间记录的数据③整型变量和字符型变量的关系字符型数据在内存中以ASCII码值对应的整数存储整型和字符型数据有对应表示的关系main(){inta=65;charc='A';printf("%d,%d,%c,%c",a,c,a,c);}执行结果:65,A,65,A例题:例题:判断如下程序的输出结果:main(){charc;c='\376';printf("%d,%c",c,c);}§4-4运算符与表达式运算符:C语言中描述数据运算的特殊符号。表达式:用运算符将C语言的各种运算对象连接起来,组成符合C语法要求的式子,称表达式。运算对象包括常量、变量、函数等。计算:表达式的求值过程称计算。C的运算符主要分为四大类:算术运算符关系运算符与逻辑运算符位运算符特殊运算符(赋值/条件/逗号/指针/求字节/强制类型转换/分量/下标/函数调用)§4-4-1算术运算符与表达式五种基本算术运算符+、-(减法/取负)、*、/、%(求余,模运算符)关于除法运算/C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如:5/3=1。关于求余数运算%5%3=2 5%2=1要求两侧的操作数均为整型数据,否则出错。算术运算表达式定义: 由算术运算符、括号和任何有值的对象连接起来的符合C语言要求的式子称为算术运算表达式例如: 3+5*8+2*(3/2)算术运算表达式的求解优先级与结合性原则计算过程:对表达式自左向右依次扫描,当某一操作数两端的运算符优先级不同时,先与优先级高的运算符结合运算;当操作数两端的运算符优先级相同时,按照结合性的方向(算术运算:自左向右)进行运算。例题:按照优先级与结合性原则计算: 3+5*8/4+2*23+5*8/4+2*2123140232102313123442517§4-4-2自增(减)运算自增(++)、自减(--)运算自增运算使单个变量的值加1,自减运算使单个变量的值减1例如:inta,b=1;b++;a=++b;表达式与运算规则自增、自减运算符都有两种用法:前置运算──运算符放在变量之前:
++变量、--变量先使变量的值增(减)1,然后再以变化后的值参与其它运算,即先增减、后运算。后置运算──运算符放在变量之后:
变量++、变量--变量先参与其它运算,然后再使变量的值增(减)1,即先运算、后增减。例4.1例:a=1,b=2; k=(a++)+(b--)+(b++);a++:先使用a求解表达式,再执行a自增(减)1k=(a++)+(b--)+(b++)k=a+b+b
k=1+2+2k=52
a++、b--、b++
a=2、b=1、b=2结果
k=5,a=2,b=2例4.2例:a=1,b=2; k=(++a)+(--b)+(++b);++a:先执行a自增(减)再使用a求解表达式1
++a、--b、++b
a=2、b=1、b=22k=(++a)+(--b)+(++b)k=a+b+b
k=2+2+2k=6结果
k=6,a=2,b=2例4.3
a=1,b=2; k=(++a)+(b--)+(++b)+(a--) 1++a、++ba=2、b=32k=a+b+b+ak=2+3+3+2k=103
b--、a--a=1、b=2结果
a=1,b=2,k=10说明自增、自减运算,常用于循环语句中,使循环控制变量加(减)1,以及指针变量中,使指针指向下(上)一个地址。自增、自减运算符,不能用于常量和表达式。例如,5++、--(a+b)等都是非法的。在表达式中,连续使同一变量进行自增或自减运算时,很容易出错,所以最好避免这种用法。尽量不要写不人都不容理解的表达式§4-4-3赋值运算符与表达式赋值符号“=”就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。赋值运算符的一般形式为:变量=表达式例如,x=5+2如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。表达式计算求解过程: 1、计算整个表达式的值 2、把表达式的值赋给变量例如:floatx;
inta=1,b=2;x=a*b/a-’a’+1.5;X=a*b/a–‘a’+1.512213-954-93.5赋值表达式的值赋值表达式的值即变量的值。main(){
inta;floatb;b=a=2.5;
printf("a=%d,b=%.2f\n",a,b);}a=2,b=2.00执行结果:§4-4-4复合赋值运算复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。复合赋值运算的一般格式为: 变量 双目运算符=
表达式 └──┬──┘ 复合赋值运算符等价于:变量=变量双目运算符(表达式)复合赋值运算符C语言规定的10种复合赋值运算符如下:+=-=*=/=%=/*复合算术运算符5*/&=^=|=<<=>>=/*复合位运算符5*/例如:x+=3 /*等价于x=x+3*/y*=x+6 /*等价于y=y*(x+6),而不是 y=y*x+6*/表达式求解:展开:变量=变量<运算符>表达式
a+=4+5a=a+(4+5)
a*=4+5a=a*(4+5)例4.1求解表达式:a+=a-=a*a (a=12)§4-4-5逗号表达式运算符:(,)用逗号(,)把表达式连接起来的符合C语言的式子称为逗号表达式求解:求解所有表达式的值逗号表达使得值是最后一个表达式的值例如:a=(3,5,7) a=3,5,7赋值表达式逗号表达式表达式类型的判断:优先级最低原则§4-5类型转换在C语言中,整型、实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西安财经大学《生物与土壤地理学实践》2023-2024学年第一学期期末试卷
- 2025年度国画艺术产业投资合同3篇
- 2024版简单钢结构合同
- 二零二五年度建筑工程承包合同标的和工程量清单2篇
- 2024版智慧城市建设项目合同
- 2025年度国际环保技术引进与实施合同3篇
- 2024影视制作基地建设与运营合同
- 四川文轩职业学院《大数据处理与Mapeduce编程模型实践》2023-2024学年第一学期期末试卷
- 二零二五版工业自动化设备安装施工合同范本2篇
- 二零二五版个人信用担保车辆购置贷款合同样本3篇
- 分割不动产的协议书(2篇)
- 菏泽2024年山东菏泽市中心血站招聘15人笔试历年典型考点(频考版试卷)附带答案详解版
- 供热通风与空调工程施工企业生产安全事故隐患排查治理体系实施指南
- 精-品解析:广东省深圳市罗湖区2023-2024学年高一上学期期末考试化学试题(解析版)
- 记账实操-基金管理公司的会计处理分录示例
- 中国慢性便秘诊治指南
- 儿童流感诊疗及预防指南(2024医生版)
- 沐足行业严禁黄赌毒承诺书
- 2025年蛇年红色喜庆中国风春节传统节日介绍
- 河北省承德市2023-2024学年高一上学期期末物理试卷(含答案)
- 山西省2024年中考物理试题(含答案)
评论
0/150
提交评论