已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教学内容:2.1数据类型2.2整型数据2.3实型数据2.4字符数据2.5常量与变量教学要求:1.掌握C语言数据类型分类。2.掌握C语言常量、变量的使用。3.掌握整型数据、实型数据、字符数据使用规则。,第2章语言数据类型,数据类型,C语言提供的数据结构,是以数据类型形式出现的。1.基本类型整型、实型(又称浮点型)、字符型、空类型2.构造类型数组类型、结构类型、共用类型、文件类型3.指针类型4.用户自定义型C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。,2.1基本数据类型的特征,一、数值的定点表示和浮点表示1.定点数:不带指数部分的数3.14159,90,2,-202.浮点数:由数字(尾数)和指数(阶码)两部分表示3.14159e0,0.314159e+1,0.0314159e+2,31.4159e-1,314.159e-2计算机中凡事实数都以浮点形式存储,二、整型数据在内存中的存放形式inti;i=10;10=(1010)2有符号整数(补码表示法:便于加减运算),2,10,2,5,2,2,2,1,0,余数,0,1,0,1,首位,0000000000001010,0000000000001010,1111111111110101,1111111111110110,10的原码,取反,再加1,得-10的补码,10的表示法,正数的补码等于它的原码,-10的表示,计算10-10:10-10=10+(-10),0,=,10,-10,+,无符号整数,unsignedinte,f;signedinte,f;=inte,f;,各种进制之间的转换二进制、八进制、十六进制转换成十进制方法:按权相加,十进制转换成二进制、八进制、十六进制,方法:连续除以基,从低到高记录余数,直至商为0。,例把十进制数59转换成二进制数,(59)10=111011B,例把十进制数159转换成八进制数,例把十进制数459转换成十六进制数,(159)10=(237)8,(459)10=(1CB)16,二进制与八进制之间的转换二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制八进制转换成二进制:用3位二进制数代替每一位八进制数,例(1101001)2=(001,101,001)2=(151)8,例(246)8=(010,100,110)2=(10100110)2,00000011010201131004101511061117,二进制与十六进制之间的转换二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制十六进制转换成二进制:用4位二进制数代替每一位十六进制数,例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F,3.字节(Byte)字节是计算机中的最基本的存储单位,是指位二进制码所占的存储空间称为一个字节(Byte),每个字节都有一个地址。,1KB=1024B1MB=1024KB1GB=1024MB,4.字(word)是指计算机一次可以处理的最大二进制位数,称一个机器字,简称字。一个字所包含的二进制数的位数称为字长。,带符号的整数的数值以补码表示,数的最高位表示该数的符号。0表示正数;1表示负数。,原码:最高位为符号位,其余各位为数值本身的绝对值,反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反,补码:正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加1,4.数值的表示方法原码、反码和补码,(用一字节表示数),负数补码的求法:,先取该数的绝对值:例-1010,以二进制表示该数:100000000000001010;,取反:1111111111110101;,加1:1111111111110110;,负数补码转换成十进制数:,最高位不动,其余位取反加1,补码:1111111111110110;,取反:1000000000001001;,加1:1000000000001010;,数值,符号,三、类型宽度与取值范围1.位:bit字节:byte(B)1B=8bit2.带符号整数范围:-2n-12n-1-1不带符号整数范围:02n-13.测定数据类型所占存储空间长度sizeof(类型表示符)例如:sizeof(char)size(1.23),2.2数据常量,一、整型常量三种进制八进制、十六进制和十进制,八进制整常数,八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为07。八进制数通常是无符号数。以下各数是合法的八进制数:015(十进制为13)0101(十进制为65)0177777(十进制为65535)以下各数不是合法的八进制数:256(无前缀0)03A2(包含了非八进制数码)-0127(出现了负号),十六进制整常数的前缀为0X或0 x。其数码取值为09,AF或af。以下各数是合法的十六进制整常数:0X2A(十进制为42)0XA0(十进制为160)0XFFFF(十进制为65535)以下各数不是合法的十六进制整常数:5A(无前缀0X)0X3H(含有非十六进制数码),十六进制整常数,十进制整常数,十进制整常数没有前缀。其数码为09。以下各数是合法的十进制整常数:237-568655351627以下各数不是合法的十进制整常数:023(不能有前导0)23D(含有非十进制数码),整型常量类型的确定,整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为065535,有符号数为-32768+32767。八进制无符号数的表示范围为00177777。十六进制无符号数的表示范围为0X00XFFFF或0 x00 xFFFF如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:十进制长整常数158L(十进制为158)十进制长整常数-358000L(十进制为-358000)八进制长整常数012L(十进制为10)八进制长整常数077L(十进制为63)八进制长整常数0200000L(十进制为65536)十六进制长整常数0X15L(十进制为21)十六进制长整常数0XA5L(十进制为165)十六进制长整常数0X10000L(十进制为65536),字符常量1)可打印字符常量用一对单引号括起来的一个字符,是可打印字符常量,例如a、A、?、3都是可打印字符常量。,二、字符类型及其常量,单撇号只是字符与其他部分的分隔符,输出字符常量时不输出单撇号不能用双撇号代替单撇号,”a”不是字符常量单撇号内的字符不能是单撇号或反斜杠,例:输出整型常量、字符常量的值main()printf(“%dn”,349);printf(“%dn”,-9);printf(“%Cn”,M);运行结果:349-9M,(3)一个字符型数据,既可以字符形式输出,也可以整数形式输出。例3.10字符变量的字符形式输出和整数形式输出。main()charch1,ch2;ch1=a;ch2=b;printf(“ch1=%c,ch2=%cn”,ch1,ch2);printf(“ch1=%d,ch2=%dn”,ch1,ch2);程序运行结果:ch1=a,ch2=bch1=97,ch2=98,2)转义字符C语言还允许用一种特殊形式的字符常量,就是一个以“”开头的字符序列(包括一些不可打印字符常量),这种反斜杠字符常量又称转义字符。,反斜杠后面跟一个字母代表一个控制字符(不可打印字符)表示“”,代表撇号字符后跟13位八进制代表ASCII码为该八进制的字符x后跟12位十六进制数代表ASCII码为该十六进制的字符,以“”开头的字符在printf函数中控制输出格式:n换行t横向跳格(下一个输出区)v竖向跳格b退格r回车f走纸换页反斜杠字符单引号ddd1到3位8进制数所代表的字符。如:101=Axhh1到2位16进制数所代表的字符。,4)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。例:字符数据的算术运算。main()charch1,ch2;ch1=a;ch2=B;/*等价于ch1=97;ch2=66;*/printf(“ch1=%d”,ch1-32);/*字母的大小写转换*/printf(“ch2=%dn”,ch2+32);printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32);运行结果:ch1=65,ch2=98ch1=A,ch2=b,例用字符形式输出一个大于256的数值main()charch1=a;printf(ch1+200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200);printf(ch1+256=%dn,ch1+256);printf(ch1+256=%cn,ch1+256);程序运行结果:ch1+200=297ch1+200=)ch1+256=353ch1+256=a,例用转义字符输出字符和不可打印字符。main()printf(“ABCtabctxyzn”);printf(“abcbxyzn”);程序运行结果如下:,5)字符串常数,(1)字符串常量的概念和字符串长度字符串常量:是用一对双引号括起来的若干字符序列。字符串长度:字符串中字符的个数称为。空串:长度为0的字符串(即一个字符都没有的字符串),表示为“”(一对紧连的双引号)。例如字符串常量:“Howdoyoudo.”长度为14(空格也是一个字符)“Goodmorning.”长度为13如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。例C:msdosv6.22C:msdosv6.22Isay:Goodbye!Isay:Goodbye!,6)字符串的存储C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示:CHINA0最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。,例输出字符串常量#includemain()char*p;/*定义一个指针变量*/p=Iamastudent.;printf(%sn,p);printf(%sn,Isay:Goodbye!);运行结果:Iamastudent.Isay:Goodbye!,7)字符常量A与字符串常量A的区别:(1)定界符不同:字符常量使用单引号A,而字符串常量使用双引号;(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,例符号常量WHI的使用。#defineWHIIamastudent.main()printf(“Iamastudent.n”);printf(%sn,“Iamastudent.”);printf(%sn,WHI);运行结果:I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 致密颗粒病的护理
- 2026年质量员之土建质量基础知识考试题库附参考答案【考试直接用】
- 2026年质量员之设备安装质量专业管理实务考试题库附完整答案(网校专用)
- 2026年秋季成都银行校园招聘(第二批次)120人历年真题汇编附答案解析
- 2026甘肃嘉峪关市教育系统招聘公费师范毕业生和小学全科型教师37人笔试模拟试卷附答案解析
- 青海润本投资有限责任公司面向社会公开招聘!历年真题汇编及答案解析(夺冠)
- 2026楚能新能源校园招聘(二期)历年真题汇编带答案解析
- 2026宁夏面向西安交通大学招录选调生历年真题汇编带答案解析
- 2025江西九江学院第二批招聘博士研究生学历学位高层次人才20人笔试模拟试卷附答案解析
- 2026年质量员之土建质量基础知识考试题库附参考答案(黄金题型)
- 2025年医疗器械研发项目实施方案
- 2025广东东莞市厚街镇下属事业单位招聘10人参考题库附答案详解(a卷)
- 2025年湖南岳麓山实验室第二批招聘19人参考题库及完整答案详解一套
- 2025年大学《医学实验技术-实验动物学基础》考试参考题库及答案解析
- GB/T 12221-2025金属阀门结构长度
- 2024年毕节市村干部专项招聘乡镇事业单位真题
- 2025年江苏省南通市公共基础辅警考试笔试题库及答案
- 2025中国超算中心建设及市场应用前景分析报告
- 特殊人群疼痛管理
- 浙江省温州市2024-2025学年高三上学期11月第一次适应性考试地理试题(解析版)
- GB/T 222-2025钢及合金成品化学成分允许偏差
评论
0/150
提交评论