书签 分享 收藏 举报 版权申诉 / 28
上传文档赚钱

类型《高级语言程序设计》课件第2章基本数据类型.pptx

  • 上传人(卖家):momomo
  • 文档编号:7650619
  • 上传时间:2024-05-23
  • 格式:PPTX
  • 页数:28
  • 大小:211.17KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《高级语言程序设计》课件第2章基本数据类型.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    高级语言程序设计 高级语言程序设计课件第2章 基本数据类型 高级 语言程序设计 课件 基本 数据类型
    资源描述:

    1、第2章 基本数据类型2.1 整型数据2.2 字符型数据2.3 浮点型数据2.4 格式化的输入与输出第2章 基本数据类型2.1 整 型 数 据第2章 基本数据类型2.1.1 整型数据的进制整型数据,顾名思义,即是没有小数点部分的整数数据。整型数据以二进制补码的形式在内存中存储。整型常量即整型常数,可正可负。在C语言中,整型常量有三种形式,即八进制整数、十进制整数和十六进制整数。十进制的计数规则为逢10进1,基本数字为 0、1、2、3、4、5、6、7、8、9。十进制数的每一位都是10的指数幂。八进制的计数规则为逢8进1,基本数字为 0、1、2、3、4、5、6、7。在C语言中,八进制整数的表示以0开

    2、头,如0367表示八进制数367。八进制数的每一位都是8的指数幂,因此可以转化为十进制数。同理,十进制数也可以转换为八进制数,其规则为该十进制数除以8,求得商和余数,并继续用商除以8,直到商比8小为止。如十进制数247除以8等于30余7,30大于8,所以继续;30除以8等于3余6,3比8小,因此将所剩的余数按自下而上的顺序排列即得八进制数367。该计算过程用图2-2方法表示则更清晰。第2章 基本数据类型十六进制的计数规则为逢16进1,基本数字包括0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。在C语言中,十六进制的整数以0 x或者0X开头,如0 x367,0X1AF2。十六进制

    3、整数与十进制整数之间也可以相互转换,其方法与八进制整数和十进制整数之间的转换一样。而将十进制整数871转换为十六进制,参考图2-2可得图2-3,即得到十六进制数0 x367。十六进制整数与八进制整数之间也可以相互转换,可以通过十进制作为中间转换数制,即将十六进制数先转换为十进制数,再将十进制数转换为八进制数。二进制是计算技术中广泛采用的一种数制。二进制使用0和1两个数码来表示数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,是由18世纪德国数理哲学大师莱布尼兹(Leibniz)发明的。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以二进制补码的形式存储。设计补码

    4、的目的是简化运算规则。所谓补码的概念,主要是针对负数而言的。对于一个正数来说,原码、反码及补码是一样的。而对于负数来说,其补码等于其绝对值按位取反再加1。二进制数向八进制数或十六进制数的转换十分方便。由二进制数到八进制数,只需从右向左,取三位合一位,不够三位的第2章 基本数据类型前面补0,如图2-4所示。同理由二进制数转换到十六进制数,只需从右向左,取四位合一位,不够四位的前面补0。而八进制数、十六进制数向二进制数的转换,仅需对应地将每一位用三位或四位二进制数表示即可。2.1.2 整型变量整型变量的基本类型符为int(英文integer的缩写),在整型的表示符号int之前,分别加上不同的修饰符

    5、,便可以扩展整型的类型为基本整型:int。短整型:short int,可简写为short。长整型:long int,可简写为long。双长整型:long long int,可简写为long long。第2章 基本数据类型在数学上,整数可以是正数或负数。整型数据的正、负之分,在C语言中是用有符号数与无符号数的概念来定义的。如果预先知道某变量要处理的数据不会有负数存在,这时候就可以使用无符号类型。无符号和有符号类型的区分是由类型符int前的修饰符所定义的,通过有符号(signed)和无符号(unsigned)两个修饰符来表示。如果没有加修饰符,则默认为有符号(signed)。由于数据在内存中的存储

    6、占用一定的空间(字节数),因此数据就有相应的取值范围。C语言本身并没有明确规定各类型数据占多少字节,仅保证了short类型不比int长,而long类型不会比int短。早期C语言这种规定的目的是适应不同的机器。在计算机中,数据使用二进制表示,即0或1,每一位(bit)就代表了一个0或者1。每8个位组成一个字节(byte),字节是数据存储的单位。例如,在C语言的数据类型中,通常把short定义为2个字节,即16位。虽然C语言本身没有规定各种数据类型所占字节数,但是C语言标准中提出了将相关的数值取值范围的限制定义在头文件limits.h、float.h、stdint.h中。因此如果我们要确定某一数据

    7、类型所占字节数,可以通过查阅这几个文件或者通过sizeof()函数来确定数据类型的字节数。各种数据类型所占字节数和取值范围与编译器如何实现C语言标准有很大关系,本书列出Dev-C+中的整型数据的取值范围,如表2-1所示。在确定了编译系统的各数据类型的取值范围之后,就可以根据程序对相应数据的需求,来设计变量的类型。比如人的年龄,就可以使用unsigned char类型。由于表2-1的取值范围的存在,在计算过程中,会出现例2.1中超出某数据类型取值范围的状况存在。第2章 基本数据类型第2章 基本数据类型2.1.3 整型常量上一节中提到了整型常量即是整型常数,包括十进制数、八进制数和十六进制数。我们

    8、在例2.1中使用到的整数,都可以作为整型常量来使用。整型变量根据所表示数字的范围不同以及正负数的不同,可以有多种扩展类型。由此可知,整型常量也不局限于int类型。C语言标准(C11)中,对于扩展整型常量的表示法,通过添加后缀来实现,如表2-2所示。以一个十进制整数为例,由表2-2可知,如果该整数没有加后缀,则根据其数值所在的范围来确定它的类型。第2章 基本数据类型2.1.4 整数的存储当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以二进制补码的形式存储的。下面以短整型数据的存储为例来介绍计算机内部整型数据的表示。如果有一个短整型变量a:首先我们将其转换为二进制数,有十进制数12

    9、3二进制数 1111011二进制补码 1111011那么根据表2-1,短整型short int的数据位数为16位,因此在内存中,该数字存储为整型数据分为有符号数和无符号数。对于无符号数,根据表2-1,unsigned short的数据位数为16位,其取值范围为065535,在内存中的表示如下:0:第2章 基本数据类型65535:对于有符号数,其最左边的一位(称作最高位)表示符号位,如果该位的数字为1,则表示负数;如果为0,则表示非负数(0或正数)。有符号的short int数据同样占据16位的存储空间,其中第一位为符号位,因此数字0只能用15位表示,则有0:最大的正数为32767。如果正数32

    10、767+1,则有符号位是1,所以该数字为负数(-32768)。根据前面讲到的负数在计算机中存放的补码是该数的绝对值的原码取反再加1,我们对负数-32768取绝对值,得到32768。其二进制为第2章 基本数据类型对其取反,得再加1,则有所以,根据上述推导过程,我们可以得出当有符号位时,32767+1在计算机中表示为-32768。那么-32767为以此类推,最大的负数为 -1第2章 基本数据类型2.2 字符型数据第2章 基本数据类型2.2.1 字符型变量字符型变量用来存放程序中使用的字符型数据。字符型变量通过关键字char来定义。字符型变量属于整型数据类型的范畴,可以参与运算,也可以使用signe

    11、d(有符号)和unsigned(无符号)两个修饰符来修饰。其中,signed可省略,即在没有使用修饰符来定义字符型变量时,则认为是signed char。使用signed或者unsigned定义字符型变量时,二者的取值范围不同。signed char型变量的最高位为符号位,因此仅能存放7位二进制数,取值范围为-128127;使用码值0127表示标准ASCII字符,使用码值-1-128表示扩展的ASCII字符。unsigned char型变量的最高位不是符号位,因此可以存放8位二进制数,取值范围为0255;使用码值0127表示标准ASCII字符,使用码值128255表示扩展的ASCII字符。字符

    12、型变量的存储单元长度和取值范围如表2-3所示。第2章 基本数据类型2.2.2 字符型常量正如整型数据一样,字符型数据既可以是变量,也可以是常量。字符型常量是单引号括起来的字符,如a。注意,这里讲的字符是指ASCII和EASCII字符集中的单字节字符。双字节字符(如中文字符),不能定义为字符型常量。C语言中还有一类字符称作转义字符(escape sequence),这类字符是以反斜杠“”开头的字符序列,它包含了如表2-4所示的转义字符。第2章 基本数据类型2.3 浮点型数据第2章 基本数据类型C语言的基本数据类型之一的浮点型数据,用来表示实数。浮点型数据有三种类型,即单精度(float)、双精度

    13、(double)和长双精度(long double)。浮点型数据在内存中的存储方式与整数不同,它由三部分构成:由此,导致浮点型数据的精度是不确定的,即浮点数只能近似地表示某个实数,而不是精确地等于某个实数。具体来说,这个实数是由一个整数乘以某个基数(常用2)的整数次幂得到的。在计算机中,数值都是用二进制数字表示的,对于4个字节的单精度浮点数(float)而言,总共有32位,其中符号位占1位,尾数部分占23位,指数部分占8位。从这里也可以看出,尾数部分占的位数越多,表示的浮点数有效数字越多,精度越高;指数部分占的位数越多,则能表示的数值范围越大。因此,我们可以得到单精度浮点数的十进制表示的有效数

    14、字个数为10n-1223-1 即 nlog10223 这里n的最小值为7,当浮点数的绝对值大于等于1时,小数点后有效位数为6位。对于双精度浮点数(double)而言,占8个字节共64位,其中指数部分为11位,符号部分占1位,尾数部分为52位,因此它的有效数字为1516位。同理可得到长双精度浮点数(long double)的有效数字为1819位。由于浮点数的近似表示特点,导致了浮点数参与计算时容易产生误差,特别是当参与运算的两个数值相差很大时。第2章 基本数据类型浮点型常量的表示法可以通过在浮点数后加后缀来实现,后缀可以是f或F(表示float类型)、l或L(表示long double类型);如

    15、果没有后缀,则认为是double类型。也可以通过科学计数法表示浮点型常量,通过使用指数符号e(或E)来表达,其格式为第2章 基本数据类型2.4 格式化的输入与输出第2章 基本数据类型2.4.1 printf函数函数printf的作用是向系统默认的输出设备(一般是显示器)按照指定格式输出信息。虽然C语言要求变量与函数在使用前一定要声明或定义,但作为一个特例,在使用printf的时候可以不包含stdio.h(在这种情况下,编译器一般会警告启用了内置不兼容的隐式声明的printf)。printf函数的一般格式为作为函数而言,printf函数有返回值,其返回值的类型是整型。当成功执行该函数后,返回输出

    16、的字符的个数;如果有错误发生,则输出负值。printf函数包含了两个参数,即格式控制字符串和输出列表。输出列表是需要输出的数据,可以是变量,也可以是表达式。不同的输出变量与表达式之间需要使用逗号分隔开。格式控制字符串规定了输出列表中的数据输出的方式,因此输出列表中所要输出的数据的个数应与格式控制字符串中指定的数据格式的个数一一对应。如果格式控制字符串中指定格式的数据个数多于输出列表个数,则会输出错误数据;如果输出列表中的数据个数多于格式控制字符串中指定格式的数据个数,则多出的输出列表中的数据不被输出。printf函数的两个参数中,输出列表可以省略。当没有输出列表时,printf函数可以输出格式

    17、控制字符串中的信息。格式控制字符串,顾名思义,是一个字符串,它的一般格式为第2章 基本数据类型printf函数中的每一个指定格式的说明总是从符号“%”开始,然后才是格式控制符,它的作用是将输出数据转换为指定的格式,在符号“%”与格式控制符之间,可以加入不同的格式控制选项。1格式控制符printf函数中可使用的格式控制符如表2-5所示。第2章 基本数据类型2标识 格式控制字符串中的标识可以根据需要设置:(1)如果标识没有指定,则表示输出为右对齐,左边填充0或者空格。(2)如果标识是“-”,则表示输出为左对齐,右边根据需要填充0或者空格。(3)如果标识是“+”,则表示输出结果为有符号数,根据数据转

    18、换结果添加正号(+)或者负号(-)。(4)如果标识是空格,若输出结果为正数,则显示空格;若输出结果为负数,则显示负号。(5)如果标识是“#”,则当格式控制符为c、d、i、s、u中任意一种时,不起作用,而 当格式控制符为“o”时,输出时加前缀0;当格式控制符为“x”或“X”时,输出时分别加前缀0 x或0X;当格式控制符为“g”或“G”时,总是显示小数点及无意义的0;当格式控制符为“e”或“E”或“f”时,总是显示小数点。3宽度精度对于整型数据,精度选项不起作用,只有宽度选项起作用。当指定宽度为m时,如果输出的整型数据的位数小于m,则左端补空格;若大于m,则以整型数据的实际长度输出。对于浮点型数据

    19、,宽度和精度两个选项均起到控制作用。当宽度为m、精度为n时,如果输出的浮点型数据的位数小于第2章 基本数据类型m,则左端补空格;若大于m,则以浮点型数据的实际长度输出。如果浮点型数的小数点后位数小于n,则右端补0,凑够n位小数;如果浮点型数据的小数点后位数大于n,则第n+1位四舍五入后输出n位小数。对于字符串,宽度和精度两个选项均起到控制作用。当宽度为m、精度为n时,其作用是输出m列n个字符。如果字符串的实际长度大于m,则按字符串实际长度输出;若小于m,则左补空格;如果n小于m,则输出m列,不足部分补空格;若n大于m,则保证n个字符的正常输出。4printf函数输出详解(1)%c:作用:以单个

    20、字符形式输出。说明:格式符c前可加入标识及宽度控制。(2)%d(或者%i):作用:整数以有符号的十进制整数输出,正整数的符号忽略。说明:格式控制符%i与%d的使用一致,格式符d(i)前可加入标识、宽度控制,前还可加字符l或L输出长整型。(3)%e(或者%E):作用:以指数形式输出浮点数。说明:可有效控制浮点型数据的输出格式,格式符e(E)前可加入标识、宽度、精度控制。第2章 基本数据类型(4)%f:作用:以小数形式输出浮点数,小数点后保留6位数字。说明:可有效控制浮点型数据的输出格式,格式符f前可加入标识、宽度、精度控制。(5)%g(或%G):作用:系统自动选取控制符“%f”或“%e”格式中输

    21、出宽度较短的格式输出浮点数,并且不输出无意义的0。说明:可有效控制浮点型数据的输出格式,格式符g(G)前可加入标识、宽度、精度控制。使用“%G”时,若输出指数形式,则指数部分使用大写的 E。(6)%s:作用:输出字符串。说明:只能用于字符串的输出,格式符前可加入标识、宽度、精度控制。“%s”输出字符串,是通过指向字符串第一个字符位置的指针来实现的,通过该指针将字符串中的字符依序读出,直到遇到空字符0才停止。可以使用标识来控制字符串的对齐位置,也可以规定输出字符串的宽度及精度(字符个数)。若指定精度n,则输出字符串中的前n个字符。如果精度n小于宽度m,则补充空格。如果精度n大于宽度m,则忽略宽度

    22、m,输出n个字符。第2章 基本数据类型(7)%o、%u、%x(或%X):作用:无符号整数分别以无符号八进制、无符号十进制、无符号十六进制输出。说明:用于整型数据的输出格式控制,格式符前可加入标识、宽度控制。2.4.2 scanf函数scanf函数的作用是从系统默认的输入设备(例如,键盘)按照指定的格式读入信息。虽然C语言要求变量与函数在使用前一定要声明或定义,但作为一个特例,在使用scanf函数的时候也可以不包含stdio.h。scanf函数的一般格式为scanf函数按照格式控制字符串中的内容扫描从标准输入设备输入的数据,并将结果存储在地址列表中各内存地址所对应的变量或字符串中。作为函数,sc

    23、anf有返回值,其返回值的类型是整型;如果scanf函数成功执行,则返回地址列表中成功赋值的参数个数。scanf函数有两个参数,分别是格式控制字符串和地址列表。地址列表中包含的是不同变量的地址,而不是变量名。所谓地址,即该变量在内存中的存储位置,通过取地址运算符“&”,可以得到变量的地址。第2章 基本数据类型地址列表中包含的多个地址,需使用逗号间隔开来,地址列表中所包含的地址的个数,需要与格式控制字符串中的控制符的个数相对应。scanf函数的格式控制字符串的一般格式为与printf函数不同的是,scanf函数没有标识和精度控制项。但其使用的格式控制符与printf函数所使用的基本一致。1格式控

    24、制符scanf函数中可使用的格式控制符如表2-8所示。第2章 基本数据类型2scanf函数输入详解scanf函数从标准输入设备读入数据,其方式是按照格式控制字符串中的内容,依次读取,遇到格式控制符,则将输入数据按照该格式存入对应的地址。当输入的字符与格式控制符数目不匹配时,该输入字符及其后的输入字符将不能被scanf函数读取,而继续保留在内存中。1)输入数据的读取scanf函数从标准输入设备读入数据是按照格式控制字符串中的内容依次读取的。2)输入数据的间隔因为scanf函数读入数据的方式是按照格式控制字符串中的内容依次读取的,因此,输入的数据,尤其是对同种类型的输入数据,如果使用间隔符号,比如

    25、空格或者逗号等区隔开来,则会使输入数据与地址列表中变量的对应关系更加清晰。scanf函数的格式控制符为同一类型且没有使用任何间隔符号进行区别,那么系统会将所有连续的输入都认为是第一个控制符的输入内容,直到发生下列情况:(1)遇到空格,scanf函数会将空格符后的内容认为是下一个输入数据。(2)遇到回车换行,scanf函数会将回车换行后的内容认为是下一个输入数据。(3)遇到格式无法转换的输入数据或者输入的数据与控制符不匹配,则读取失败,该数据及其后内容将不被读取而继续留在内存中。第2章 基本数据类型因此对于输入数据,最好是以逗号、空格等间隔开来,以方便程序阅读。3)输入数据的宽度限制scanf函

    26、数的格式控制字符串中,可以使用宽度参数限制所读取的输入数据的列数,系统将自动按照宽度限制,截取所需长度的数据,存入相应的地址中。4)格式控制符s根据C语言规定,“%s”的作用是读取输入字符串。在读取输入的字符串时,以非空格开始读入,以非空格结束读入,并且系统会自动在读入的字符串结尾加结束标志,即空字符“0”。如果宽度大于要存入的字符数组的长度,则系统只能将与字符数组长度n一致的前n个输入字符存入数组中。对于格式输入,应注意以下几点:(1)scanf函数中使用变量的地址接收输入的数据,而不是变量名,注意符号&的使用。(2)注意数据输入的间隔。(3)在连续输入字符时,包括分隔符和转义字符在内的所有

    27、可以用键盘敲入的符号均会被视为有效的字符输入。(4)在连续输入数值时,可以通过以下符号间隔数据:空格符、水平制表符、回车换行符;不属于数值的非法字符;第2章 基本数据类型 使用域宽设定数据长度。2.4.3 putchar函数putchar函数即字符输出函数,其作用是向标准输出设备输出一个字符。调用putchar函数的一般格式为putchar(c)其中,参数c可以是字符常量、字符变量、整型常量、整型变量以及表达式,putchar函数将参数的值以字符的形式向标准输出设备输出。2.4.4 getchar函数getchar函数即字符输入函数,其作用是从标准输入设备输入一个字符。调用getchar函数的一般格式为getchar函数由标准输入设备读入一个字符。getchar函数读取的字符可以赋值给一个字符型变量或整型变量,也可以不赋给任何变量,仅作为表达式的一部分,参与表达式的运算。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《高级语言程序设计》课件第2章基本数据类型.pptx
    链接地址:https://www.163wenku.com/p-7650619.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库