已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章掌握数据类型、运算符和公式,掌握c语言的基本数据类型掌握识别符、关键字、常数和变量的使用掌握运算符、公式和数据类型之间的变换等,掌握简单的数据输入输出、学习目标、2.1数据类型、2.1.1数据类型概要、2.1数据类型、2.1.2整数类型整数类型简称整数、整数数据中没有小数部分。 整数以基本整数: int表示。 短:以短或短表示的。 长整数:以长整数或长整数表示。 2.1.2整数型、2.1数据类型、2.1.2整数型、注意:除了单个0是十进制数以外,所有以0开始的数据都在八进制数数据之后加上u或u :无符号类型,例如在65535u、168U数据之后加上l或l :长整数,例如-1L八进制、十进制十进制和十六进制表示整数的不同表达式,提供许多表达式只是为了方便使用,我们可以根据需要在适当的表达式c语言中选择不以二进制形式表达整数c语言的表达式。 八进制和十六进制是无符号、整数常数、十进制整数常数:数学表示法为168、-1、65535等。 八进制整数常量:由数字0到7组成,如0101和-045。 十六进制整数常量:以0 x或0 x开头的数字列表示十六进制数字,如0 x12。 整数常数,其次是非法的整数常数。 09:0应以八进制开头,但9不是有效的八进制。 0X6G:0X应以十六进制开头,但g不是有效的十六进制。 以下是合法的整数常数0000101:8进制,相当于10进制的65。 相当于八进制、十进制的-10。 65535 Lu :十进制,无符号长整数。 0XFF :十进制的十六进制数,相当于255。 整数常量,为无符号类型。 在数据之后添加u或u,例如65535u或168U。 如果说明为长整数,则在数据后面加上l或l (例如-1l )。 八进制、十进制和十六进制只提供整数不同的写法,提供多种写法只是方便使用,可以根据需要选择合适的写法。 在c语言中,整数不以二进制格式表示。 c语言通常只使用无符号八进制和十六进制,而不使用有符号的八进制和十六进制,因此没有特殊的无符号八进制和十六进制标识符。 2.1数据类型,2.1.3实数类型为实数类型,浮点数据类型为单精度浮点类型:浮点类型,类型名称为float。 双精度浮点类型:简称双精度类型,类型名称为double。 长倍精度型:型号为longdouble。 2.1数据型、2.1.3实数型、实数型常数、实数型常数为:小数形式,可以用十进制形式表示。 由数字序列和小数点构成的常数,例如3.1415926、-0.15、 15和2 .是合法的实数常数。 指数形式。 由十进制和步骤代码标志“e”或“e”和步骤代码组成,例如,3.14e-4或3.14e-4表示3.1410-4。 请注意,实数常量,个字符的e或e前面的尾数部需要数字。 例如,E2是非法的。 e或e之后的指数部分必须是整数,指数部分没有整数或小数是错误的。 例如,5e和5E-5.5是不正确的表示。 在c语言中,缺省实数型常量为double型,如果有后缀“f”或“f”,则为float型。有效数字,【例2-1】浮点精度测试实验# includevoidmin () flotx=0.9999694421875; 浮动=0. 9999999; printf(x=%.15fn ,x ); /*%.15f输出15小数*/printf(y=%.8fn ,y ); 2.1数据类型、2.1.4字符类型的数据在字符类型数据c语言中用char表示,在存储器中占据1字节。 字符类型数据包含计算机使用的编码字符集中的所有字符。 典型的ASCII字符集为128个字符。 扩展的ASCII字符集总共为256个字符。 字符数据和整数数据类似(除了占有的存储区域外),2.1数据类型、2.1.4字符类型、字符常数、字符类型常数由一对单引号包围的单个字符构成,例如a、b、8字符AZ的ASCII代码值为6590。字符a到z的ASCII代码值为97到122。 字符0到9的ASCII代码值为48到57。 空格字符的ASCII代码值为32。转义字符、字符串常量和字符串常量是用双引号括起来的字符串,“1234567”、“HelloWorld”等是字符串常量。 123101共有5个字元,占据6个位元组。每个字元都代表一个字元,并输出为123A。 2.2标识符、符号常量和变量、2.2.1标识符是程序中变量、符号常量、数组、函数、类型和文件等对象的名称。 2.2标识符,符号常数和变量,关键字,2.2标识符,符号常数和变量,2.2.2符号常数【例2-2】输入圆的半径,计算周长和面积。 define pi 3.14159 void main () flotr,c,s; scanf(%f”, )、2.2标识符、符号常数和变量、2.2.3变量能够变更程序执行中保存的值的量称为变量变量,称为变量名。 变量名和存储单元的地址有映射关系,程序通过用变量名指定地址,可以访问该存储的数据。 2.2识别符、符号常数和变量、变量的定义和说明数据类型变量名1、变量名2、变量名n; inti,j,k; floatx; longa、b、c; 4个基本要素:名称、类型、初始值和范围、2.2标识符、符号常量和变量、变量名称是标识符之一。 变量的数据类型可以是基本数据类型或复杂数据类型。 变量范围是指变量在程序中定义的范围,即变量名在某个代码区域中是否有意义。 变量需要初始值。 未分配变量的初始值取决于存储类型,静态存储的变量自动为0。 否则,将随机初始化。 2.2标识符、符号常数和变量、变量赋予初始值的2个方式变量说明时直接赋予初始值称为变量的初始化,例如inta=10、b=9、c=6; floatx=3.0,y=1.0,z=2.0; 使用赋值语句分配初始值。 示例: floatx; x=10.0; 2.2标识符,符号常量和变量,注意:编译系统将根据定义的类型为每个变量分配适当的存储单元。 变量存储单元地址为 inti; c=A; i=c; printf(c=%d,c=%cn ,c,c ); printf(i=%d,i=%cn ,I,I ); c=c 32; printf(c=%cn ,c ); c=0 x80; printf(c=%c,c=%dn ,c,c ); 运算符的功能,例如,2.3运算符和表达式、13类45运算符、2.3运算符和表达式,以及学习运算符需要注意以下几点: 运算符与操作对象操作数(包括常量、变量、函数调用等)之间的关系:操作数的个数(单眼、双眼、三眼)。 确定操作数类型(例如,馀数运算符%的操作数必须是整数)。 组合方向运算符的优先级。 运算结果的数据类型。 运算符连接操作数的表达式称为表达式。 2.3.1算术运算符和算术表达式,1 .基本算术运算符(加)、- (减)、* (乘)、/(除)、% (称为模型或馀数运算符)。 双目运算符,连接方向都是从左到右。 % (模)运算符仅用于整数变量或整数常量运算,a%b的结果是a除以b的馀数,其馀符号与被除数相同。 例如,7%3的值为17%-3的结果为-19%4的结果为-3。 运算符、- *、/操作数可以是整数或实数。/(除法)运算符。 2 .基本算术表达式,2.3和表达式,强制类型转换(显式转换)运算符:(类型)示例:(双精度) a (int ) (x y ) (浮点)5/3表达式必须加括号(强制类型转换是单目标运算,因此优先级高)。 例如,在上面的表达式中,仅将5/3转换为浮点类型,而不是将其转换为浮点类型。 显式转换变量的实数类型会得到新类型的值,原始变量的类型及其存储值保持不变。 2.3运算符和式、【例2-5】表示强制型变换。#includevoidmain()inti; 浮标; f=3.1415926; printf(i=%d,f=%fn ,I,f ); i=(int)f; printf(i=%dn ,I ); f=5/3; printf(f=%fn ,f ); f=(浮点)5/3; printf(f=%fn ,f ); printf(f=%dn ,f ); /*实数为整数*/printf(i=%fn ,I ); /*整数以实数输出*/,2.3.1算术运算符和算术运算式,3 .自变量运算符:和一元运算符,右键作用对象必须是变量前缀运算inti=5,j; j等于6。 接尾辞演算inti=5,j; j=i; j等于5。 2.3运算符和公式、【例2-4】输出以下程序的I、j的值。 #includevoidmain()inti=5,j; j=I; printf(i=%d,j=%dn ,I,j ); i=5; j=( i) ( i) (i) printf(i=%d,j=%dn ,I,j ); i=5; printf(i =%d,i=%dn ,I,I ); printf(i=%dn ,I ); i=5; printf( i=%d,i=%dn ,I,I ); printf(i=%dn ,I ); i=5; j=6; printf(i j=%d,j=%dn ,ijj,j ); printf(i=%d,j=%dn ,I,j ); i=5; j=6; printf(i j=%d,j=%dn ,ijj,j ); printf(i=%d,j=%dn ,I,j ); 2.3运算符和表达式,说明:左边是TC运行结果,右边是VC运行结果。 两者的不同在于,在输出printf函数时,紧接在VC之下的参数的后缀j、I在全部参数的处理完成之后起作用,而在TC之下,后缀的自我增减会影响该参数之前的参数的处理。 2.3运算符和表达式,2.3.2算术表达式,n*(n 1)/2,2 sqrt (1.0a ) * b/22.0 *2/2. 04.04.0,(-b sqrt(b*b-4*a*c)/(2*a ),-2. 3运算符和表达式,2.3.3代入运算符和代入表达式变量a=b=100; 连续分配,只有最后一步有效。 例如inta; a=100; a=200; 赋值运算符的优先级较低(高于逗号运算符),因此通常不需要在表达式中加括号。 例如,a=2 5/3表示a=(2 5/3 )赋值运算构成表达式,并且可以将该值赋值给其他变量。 例如,a=b=100; 其实,2.3运算符和表达式,复合代入运算符=,fufu,*=、/=、%=、printf(1 2 3 4 5=%dn ,(a=1,a=a 2,a=a 3,a=a 4,a=a 5); printf(a=%dn ,a ); 2.4数据类型变换、2.4.1数据类型变换的概要不同数据类型的存储长度和存储方法不同,一般不能直接混合运算。 为了提高编程效率、应用灵活性,c语言允许不同数据类型的相互转换。 不同数据类型的double比float更高级。 实数高于整数。 整数中长的比短的高。 例如,在无longintshortchar码(unsigned )比有码(signed )高、通过2.4数据类型变换、数据类型变换的效果数据类型等级的提高、编码比特扩展的降低以及通过零扩展位切换的数值的变化缺失精度实数被变换为整数的情况下,将小数舍入将double类型转换为float类型会减少(四舍五入)有效数字并丢失精度。 从long型变换为float型时,10位之间的整数变为7位的有效数字,会丢失精度,但会扩大数量的范围,因此数据类型会从下到上变换为2.4数据类型,自动型变换float在运算时会自动变换为double。 char和short在运算时自动转换为int。 对于混合使用int和unsigned的运算,将int转换为unsigned数据。 对于int或unsigned与long的混合运算,全部转换为long数据。 如果混合使用int、unsigned和long以及浮点类型的数据进行计算,则所有数据都将转换为double。自动类型转换规则、2.4数据类型转换、2.4.3代入类型转换代入运算的情况下,代入运算符两侧的类型(指基本类型)不一致时,表达式的值会自动转换为变量的类型,并存储在变量的存储单元中。 向实数型变量提供整数数据时,数值没有变化。 例如floatf; f=100; 如果将实数类型数据分配给整数变量,则截断小数部分。 例如,inta=3.1415; /*将存储器内变量a的值为3*/短的带符号整数数据分配给长整数变量时,需要进行符号位扩展。 将短无符号整数数据分配给长整数变量时,需要进行0扩展。 I的值为-1。2.4数据类型转换、长整数数据分配给短整数变量时,可能会溢出。 例如charc=321; 溢出后的c值为a。 如果将相同长度的带符号整数数据分配给无符号整数变量,则数据将丢失符号位功能。 示例: unsignedcharc=-1; c的值是255。 如果给予带符号整数变量相同长度的无符号整数数据,则数据获得编码比特功能。 对于16位int:inti=65535 u; 2.4数据类型转换、2.4.4强制类型转换强制类型转换的形式在(类型名称)(表达式)强制类型转换无法自动转换时使用。 例如,(int)5.0%3/*实数据的馀数运算*/(int)(f 0.5)/*第一位小数的四舍五入算法*/(int)(f*10 0.5)/10.0/*第二位小数的四舍五入算法*/、【例2-6】表示强制性变换的#includevoidmain()inti=5 浮标; f=3.1415926; p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年ERP教学目标水杯设计
- 2025山东日照城投集团有限公司高层次人才招聘28人笔试历年常考点试题专练附带答案详解
- 2025安徽(淮南)现代煤化工产业园区谢家集区等购买服务人员招聘笔试笔试历年备考题库附带答案详解
- 2025内蒙古高速石化招30人笔试历年常考点试题专练附带答案详解
- 2025中国葛洲坝集团机电建设有限公司招聘50人笔试历年典型考点题库附带答案详解
- 2025-2026学年一面教学设计工作室装修
- 2025-2026学年语文教学设计开题报告
- 校园环境卫生数字化监测方案
- 2025-2026学年力气的拼音教学设计语文
- 景区景区公共设施升级方案
- DL-T5588-2021电力系统视频监控系统设计规程
- 平安产险云南省商业性桑蚕养殖保险条款
- 2018年1月自考11501中国当代文学史试题及答案含解析
- 《基层公共卫生服务技术》课件-绪论
- 黑龙江旅游职业技术学院单招《职业技能测试》参考试题库(含答案)
- 【可行性报告】2023年高纯氮化铝粉体行业项目可行性分析报告
- 全国优质课一等奖中职《就业与创业指导》课件
- 医院医技科室综合目标管理考核标准
- 领导科学PPT完整全套教学课件
- 云南省普通初中学生成长记录模板-好ok
- GB/T 19867.1-2005电弧焊焊接工艺规程
评论
0/150
提交评论