第2章基本数据类型ppt课件_第1页
第2章基本数据类型ppt课件_第2页
第2章基本数据类型ppt课件_第3页
第2章基本数据类型ppt课件_第4页
第2章基本数据类型ppt课件_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章根本数据类型根本数据类型本章主要内容本章主要内容2.1 数据类型概述数据类型概述2.2 标识符、常量和变量标识符、常量和变量2.3 整型数据整型数据2.4 实型数据实型数据2.5 字符型数据字符型数据2.6 数据的输入与输出数据的输入与输出程序是对数据进展各种操作程序是对数据进展各种操作首先要做的是事情是:对程序中将要用到的各种数首先要做的是事情是:对程序中将要用到的各种数据进展设计,包括数据是什么类型的?可以进展什据进展设计,包括数据是什么类型的?可以进展什么样的运算?详细的数值是多少?等等。么样的运算?详细的数值是多少?等等。计算机中的数据可以是各种类型的,例如,数值型计算机中

2、的数据可以是各种类型的,例如,数值型的:整数、实数;非数值型的:字符、图像、声音、的:整数、实数;非数值型的:字符、图像、声音、图片、动画等。图片、动画等。不同的程序设计言语对这些数据的表达方式是不一不同的程序设计言语对这些数据的表达方式是不一样的,本章学习样的,本章学习C言语如何表达数据。言语如何表达数据。数据类型概述数据类型概述数据类型概述数据类型概述C C言语为了处置方便言语为了处置方便 ,将一切能够的数据分成不同的类型。,将一切能够的数据分成不同的类型。 这些数据类型对数据的设计都不一样,包括数据在内存中的存储这些数据类型对数据的设计都不一样,包括数据在内存中的存储方式,数据范围,可以

3、进展的运算种类,输入输出方式等。方式,数据范围,可以进展的运算种类,输入输出方式等。标识符、标识符、 常量和变量常量和变量在程序中,不论是变量、符号常量,还是以后引见在程序中,不论是变量、符号常量,还是以后引见的数组、函数等数据对象通常都需求用一个名字的数组、函数等数据对象通常都需求用一个名字即标识符来表示才干运用。即标识符来表示才干运用。标识符就是一个名字。标识符就是一个名字。标识符有特定的命名规那么,需求严厉执行。标识符有特定的命名规那么,需求严厉执行。C言语规定,标识符只能由字母言语规定,标识符只能由字母(AZ,az)、数字、数字(09)、下划线、下划线( _ )3种字符组成,并且第一个

4、字符必种字符组成,并且第一个字符必需是字母或下划线。需是字母或下划线。 标识符、标识符、 常量和变量常量和变量根据标识符的不同用途,可以将其分以下根据标识符的不同用途,可以将其分以下3类:类:(1)关键字关键字关键字,又叫保管字,是指关键字,又叫保管字,是指C言语规定的、有特殊含义和专门言语规定的、有特殊含义和专门用途的标识符,主要用于描画数据类型、存储类型、类型定义用途的标识符,主要用于描画数据类型、存储类型、类型定义和语句控制。有和语句控制。有32个。例如,个。例如,int ,return 等等 (2)预定义标识符预定义标识符预定义标识符也是预定义标识符也是C言语中有特定含义的标识符,主要

5、用于描言语中有特定含义的标识符,主要用于描画库函数名如画库函数名如printf、scanf等和编译预处置命令名如等和编译预处置命令名如define、include等。等。(3)用户标识符用户标识符用户标识符是指在程序中由程序员本人定义的变量名、符用户标识符是指在程序中由程序员本人定义的变量名、符号常量名、数组名、函数名等。号常量名、数组名、函数名等。标识符、标识符、 常量和变量常量和变量用户标识符的命名规那么:用户标识符的命名规那么:1、只能由字母、数字、下划线组成。、只能由字母、数字、下划线组成。2、第一个字符必需是字母或下划线。、第一个字符必需是字母或下划线。练习:根据标识符的规那么,判别

6、以下字符能否合法练习:根据标识符的规那么,判别以下字符能否合法的的C言语用户标识符言语用户标识符 a 4tb _b5 int long sum 3、区分大小写、区分大小写4、不能运用系统中的有特定含义的关键字。、不能运用系统中的有特定含义的关键字。自定义标识符的命名规那么:自定义标识符的命名规那么:1、只能由字母、数字、下划线组成。、只能由字母、数字、下划线组成。2、第一个字符必需是字母或下划线。、第一个字符必需是字母或下划线。3、区分大小写、区分大小写4、不能运用系统中的有特定含义的关键字、不能运用系统中的有特定含义的关键字P365。 例:例:sumsum,_total, month, St

7、udent_name_total, month, Student_name, lotus_1_2_ lotus_1_2_,BASIC, li_ling BASIC, li_ling M.D.John, M.D.John, ¥123,3D64,ab 123,3D64,ab 标识符、标识符、 常量和变量常量和变量标识符、标识符、 常量和变量常量和变量程序中用到的数据,除了有前述类型之分外,还有常量和变程序中用到的数据,除了有前述类型之分外,还有常量和变量之分。量之分。常量:在程序运转过程中,其值不能被改动的量。常量:在程序运转过程中,其值不能被改动的量。在日常任务学习中,我们会接触到一些不变的数,

8、例如,圆在日常任务学习中,我们会接触到一些不变的数,例如,圆周率周率,自然常数,自然常数e等;有些情况下,在某种场所或问题的处等;有些情况下,在某种场所或问题的处置过程中,有些数据是固定的,例如,处置学生的成果统计置过程中,有些数据是固定的,例如,处置学生的成果统计问题过程中,普通来讲,学生的人数是固定的。问题过程中,普通来讲,学生的人数是固定的。通常,我们将这些我们事先知道的,并且在程序处置过程中通常,我们将这些我们事先知道的,并且在程序处置过程中不发生变化的数据,作为常量处置,直接给出数值的大小。不发生变化的数据,作为常量处置,直接给出数值的大小。变量:在程序运转过程中,其值能被改动的量。

9、变量:在程序运转过程中,其值能被改动的量。更多的情况是,我们希望经过程序的处置得出一些结果,这更多的情况是,我们希望经过程序的处置得出一些结果,这时很多数据是变化的。我们事先不知道的,作为变量处置。时很多数据是变化的。我们事先不知道的,作为变量处置。常量是在程序运转过程中常量是在程序运转过程中, ,其值不能被改动的量,也分为不同其值不能被改动的量,也分为不同的类型,例如:整型常量、浮点型常量、字符型常量等。的类型,例如:整型常量、浮点型常量、字符型常量等。常量在表达上,除了直接给出数值大小外,也要表示出其常量在表达上,除了直接给出数值大小外,也要表示出其类型。类型。常量的类型是经过书写方式表达

10、的。常量的类型是经过书写方式表达的。整型常量整型常量 直接书写成整数,例如:直接书写成整数,例如:1212、0 0、-3-3浮点型常量浮点型常量 直接书写成实数,例如:直接书写成实数,例如:4.64.6、-1.23-1.23字符型常量字符型常量书写成:书写成:a a、d d、? ?的方式,表示字符的方式,表示字符a a、d d、? ?。 单引号括起来的单个字符。单引号括起来的单个字符。整型常量、浮点型常量、字符型常量直接写成上述方式,称为整型常量、浮点型常量、字符型常量直接写成上述方式,称为直接常量,相对应的非直接常量是符号常量。直接常量,相对应的非直接常量是符号常量。标识符、标识符、 常量和

11、变量常量和变量符号常量:用一个符号在符号常量:用一个符号在C C言语中为标识符来代表一言语中为标识符来代表一个常量。个常量。例例 符号常量的运用符号常量的运用#define PRICE 30#include int main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); return 0;定义一个符号常量定义一个符号常量标识符标识符PRICEPRICE代表整型常量代表整型常量3030在下面的程序中,凡遇到在下面的程序中,凡遇到PRICE就用就用30替代。替代。标识符、标识符、 常量和变量常量和变量

12、#include int main ( ) int num, total; num=10; total=num * 30; printf(total=%dn,total); return 0; #define 同同#include一样,也是一个编译预处置命令一样,也是一个编译预处置命令标识符、标识符、 常量和变量常量和变量运用符号常量的益处是运用符号常量的益处是# include int main(void) double r, s, v; scanf(%lf, &r); s = 4.0*r*r*3.14 ; v = 4.0/3.0*r*r*r*3.14 ; . return 0;#

13、include # define PI 3.14int main(void) double r, s, v; scanf(%lf, &r); s = 4.0*PI*r*r ; v = 4.0/3.0*PI*r*r*r ; . return 0;3.141593.141593.14159标识符、标识符、 常量和变量常量和变量变量:在程序运转过程中,其值能被改动的量。也分为不同变量:在程序运转过程中,其值能被改动的量。也分为不同的类型,例如:整型变量、浮点型变量、字符型变量等。的类型,例如:整型变量、浮点型变量、字符型变量等。变量中的值需求在处置过程中保管起来。变量中的值需求在处置过程中保

14、管起来。C言语中的变量实践言语中的变量实践上代表的是计算机内存的一个存储空间。在这个空间中存放上代表的是计算机内存的一个存储空间。在这个空间中存放的是变量的详细数值。的是变量的详细数值。C言语中的处置方法是,言语中的处置方法是,为每个变量分配一个存为每个变量分配一个存储空间,用变量名来标储空间,用变量名来标识这个存储空间。识这个存储空间。3变量名变量名变量值变量值存储单元存储单元存储单存储单元地址元地址2019a在程序中,需求进展输入、处置、输出等操作时,只需运用变在程序中,需求进展输入、处置、输出等操作时,只需运用变量名量名a即可,即可,a中保管的值可以是中保管的值可以是3,也可以是随处置过

15、程变化,也可以是随处置过程变化了的其他值。了的其他值。标识符、标识符、 常量和变量常量和变量变量代表内存中具有特定属性的一个存储单元,它用来存放变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运转期间,这些值是可以改数据,这就是变量的值,在程序运转期间,这些值是可以改动的。动的。变量名实践上是一个以一个名字对应代表一个地址,在对程序变量名实践上是一个以一个名字对应代表一个地址,在对程序编译衔接时由编译系统给每一个变量名分配对应的内存地址。编译衔接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实践上是经过变量名找到相应的内存地址,从从变量中取值,实践

16、上是经过变量名找到相应的内存地址,从该存储单元中读取数据。该存储单元中读取数据。在在C C言语中,符号常量中用到的名字、变量名用到的名字,以言语中,符号常量中用到的名字、变量名用到的名字,以及今后将学到的函数名、数组名、类型名等,统称为标识符。及今后将学到的函数名、数组名、类型名等,统称为标识符。变量名的命名要符合标识符特定的命名规那么,需求严厉执行。变量名的命名要符合标识符特定的命名规那么,需求严厉执行。标识符、标识符、 常量和变量常量和变量变量名命名的本卷须知:变量名命名的本卷须知:编译系统将大写字母和小写字母以为是两个不同的字符。编译系统将大写字母和小写字母以为是两个不同的字符。 建议变

17、量名的长度最好不要超越建议变量名的长度最好不要超越8 8个字符。个字符。在选择变量名和其它标识符时,应留意做到在选择变量名和其它标识符时,应留意做到“见名知意,见名知意,即选有含意的英文单词即选有含意的英文单词 或其缩写作标识符。或其缩写作标识符。标识符、标识符、 常量和变量常量和变量变量是变量是C言语程序中用得最多的一个概念言语程序中用得最多的一个概念C言语要求,对一切用到的变量作强迫定义,也就是言语要求,对一切用到的变量作强迫定义,也就是“先定义声明,后运用先定义声明,后运用 标识符、标识符、 常量和变量常量和变量所谓声明一个变量,就是告知所谓声明一个变量,就是告知C编译器援用了一个新的变

18、量编译器援用了一个新的变量名,并指定了该变量的数据类型名,并指定了该变量的数据类型 变量声明的普通格式如下:变量声明的普通格式如下: 数据类型数据类型 变量名表;变量名表;当声明同一类型的多个变量时,各变量名之间用逗号隔开。当声明同一类型的多个变量时,各变量名之间用逗号隔开。下面分别对整型数据、实型数据和字符型数据的常量和变下面分别对整型数据、实型数据和字符型数据的常量和变量进展引见。量进展引见。 整型数据整型数据 整型常量的表示方法整型常量的表示方法 整型常量即整常数整型常量即整常数在言语中,整常数可用以下三种方式表示:在言语中,整常数可用以下三种方式表示:(1)(1)十进制整数十进制整数

19、如:如:123 -456 4123 -456 4(2)(2)八进制整数八进制整数 以以0 0头的数是八进制数头的数是八进制数 如:如:0123 0123 表示八进制数表示八进制数123 (123 (等于十进制数等于十进制数83)83) -011 -011 表示八进制数表示八进制数-11 (-11 (即十进制即十进制数数-9)-9)(3)(3)十六进制整数十六进制整数 以以0 x0 x开头的数是十六进制数。开头的数是十六进制数。 如:如:0 x123 0 x123 表示十六进制数表示十六进制数123 123 等于十进制数等于十进制数 291 291 -0 x12 -0 x12 表示十六进制数表示

20、十六进制数12 12 等于十进制数等于十进制数1818 八进制数八进制数 029 029 是错误的,为什么?是错误的,为什么? 整型数据整型数据也就是说,当在程序中需求运用一个整型常数时,可以也就是说,当在程序中需求运用一个整型常数时,可以用十进制的方式表达,也可以是八进制或十六进制。用十进制的方式表达,也可以是八进制或十六进制。#include void main( ) /*求两数之和求两数之和*/ int a,b,sum; /*声明,定义变量为整型声明,定义变量为整型*/ a=12; b=45; sum=a+b; printf(sum = %dn,sum);程序求程序求12+4512+45

21、的和,结果为的和,结果为: sum=57: sum=57 整型数据整型数据也可以将也可以将1212和和4545表示成八进制方式表示成八进制方式#include void main( ) /*求两数之和求两数之和*/ int a,b,sum; /*声明,定义变量为整型声明,定义变量为整型*/ a=014; b=055; sum=a+b; printf(sum = %dn,sum);同样,程序求同样,程序求12+4512+45的和,结果为的和,结果为: sum=57: sum=57整型数据整型数据还可以将还可以将1212和和4545表示成十六进制方式表示成十六进制方式#include void m

22、ain( ) /*求两数之和求两数之和*/ int a,b,sum; /*声明,定义变量为整型声明,定义变量为整型*/ a=0 xc; b=0 x2d; sum=a+b; printf(sum = %dn,sum);同样,程序求同样,程序求12+4512+45的和,结果为的和,结果为: sum=57: sum=57 整型数据整型数据1、整型数据在内存中的存放方式、整型数据在内存中的存放方式数据在内存中是以二进制方式存放的数据在内存中是以二进制方式存放的 如如: int i; /: int i; /* * 定义为整型变量定义为整型变量 * */ / i=10; / i=10; /* * 给给i

23、i赋以整数赋以整数10 10 * */ / 101000111000001100100011001010111010001110100011逻辑上,可以了解为逻辑上,可以了解为 i10物理上,计算机存储器将为物理上,计算机存储器将为i i变量分配变量分配4 4个字节的存储空间,个字节的存储空间,数值数值1010是按照二进制补码方式存储的。是按照二进制补码方式存储的。 00000000000000000000000000001010整型数据整型数据数据的存储数据的存储整型数据整型数据设整数在内存中用设整数在内存中用2个字节存储,经过设置符号位表示数个字节存储,经过设置符号位表示数据的正负性。据的

24、正负性。1 000 0001 1000 00010 000 0001 1000 0001符号位符号位1:负数:负数0:正数:正数为了计算机内的运算,数值为了计算机内的运算,数值数据还有编码:原码、反数据还有编码:原码、反码、补码。码、补码。 整型数据整型数据对于正数,原码、反码、补码编码方法是一样的:最高位定对于正数,原码、反码、补码编码方法是一样的:最高位定义为符号位,值为义为符号位,值为0;其他位是数据的二进制方式。;其他位是数据的二进制方式。例如,例如,1的原码、反码、补码的原码、反码、补码假设每个整数在内存中占用两个字节,即假设每个整数在内存中占用两个字节,即16位位最高位表示符号:最

25、高位表示符号:0;其他;其他15位是位是1的二进制方式的二进制方式0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 1例如,例如,127的原码、反码、补码的原码、反码、补码0 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 1例如,例如,32767的原码、反码、补码的原码、反码、补码0 01 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1这是两字节这是两字节16位能表示的最大正数,再大就溢出了,所以位能表示的最大正数,再大就溢出了,所以数据是有范围的。数据是有范围的。

26、整型数据整型数据对于负数,原码、反码、补码编码方法不一样对于负数,原码、反码、补码编码方法不一样原码:符号位为原码:符号位为1,其他各位表示数值的绝对值对应的二进,其他各位表示数值的绝对值对应的二进制方式制方式反码:符号位为反码:符号位为1,其他各位是原码按位取反,其他各位是原码按位取反补码:反码加补码:反码加1例如,例如,-1的原码、反码、补码的原码、反码、补码1 10 00 00 00 00 00 00 00 00 00 00 00 00 00 01 1原码:原码:1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 0反码:反码:1 11 11 1

27、1 11 11 11 11 11 11 11 11 11 11 11 11 1补码:补码:3.3 整型数据整型数据1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1原码:原码:反码:反码:补码:补码:1 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 01 1 - 1-32768的补码的补码1 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0-32768是两字节是两字节16位

28、能表示的最小负数,再小也溢出了位能表示的最小负数,再小也溢出了int类型有数据范围,与类型有数据范围,与C系统有关,假设是系统有关,假设是16位,取值范围是位,取值范围是-32768,32767。超出范围就需求选择其他数据类型。超出范围就需求选择其他数据类型。-32767整型数据整型数据Turbo C 2.0和和Turbo C+ 3.0为一个整型变量在为一个整型变量在内存中分配内存中分配2个字节的存储单元个字节的存储单元(不同的编译系统为整型数据分配的字节数是不一不同的编译系统为整型数据分配的字节数是不一样的,样的,VC+ 6.0那么分配那么分配4个字节。个字节。数值默许是以补码数值默许是以补

29、码(complement) 表示的,即是表示的,即是有符号的数。有符号的数。 整型数据整型数据整型变量的根本类型是整型变量的根本类型是intint,用来存储有符号的整型数,用来存储有符号的整型数据,在程序设计过程中用得最多的一种变量类型。据,在程序设计过程中用得最多的一种变量类型。C C言语对整型变量进一步加以分类,以方便不同的运用场所。言语对整型变量进一步加以分类,以方便不同的运用场所。共六种共六种有符号根本整型有符号根本整型有符号短整型有符号短整型有符号长整型有符号长整型无符号根本整型无符号根本整型无符号短整型无符号短整型无符号长整型无符号长整型(signed)int (signed)sh

30、ort (int )(signed) long (int)unsigned intunsigned short (int)unsigned long (int) 留意:括号表示其中的内容是可选的留意:括号表示其中的内容是可选的. .整型数据整型数据整数类型的有关数据:整数类型的有关数据:整型数据整型数据整型变量的定义整型变量的定义言语规定在程序中一切用到的变量都必需在程序中定义声言语规定在程序中一切用到的变量都必需在程序中定义声明,即明,即“强迫类型定义。强迫类型定义。变量定义的普通方式变量定义的普通方式类型名类型名 变量名表;变量名表;例如例如: : int a,b int a,b; uns

31、igned short unsigned short c,d;c,d; long e,f; long e,f;指定变量、为整型指定变量、为整型指定变量、为无符号短整型指定变量、为无符号短整型指定变量、为长整型指定变量、为长整型关键字关键字整型数据整型数据例例2.1,常量和变量的定义与运用,常量和变量的定义与运用#include stdio.h#define WIDTH 80 int main( ) int length=100, cir, area; cir=(length+WIDTH)*2; area=WIDTH*length; printf(cir =%d,area=%dn,cir,are

32、a); return 0;运转结果:运转结果: cir =360,area=8000问题:请指出程序中的常量和变量问题:请指出程序中的常量和变量 整型数据整型数据例,整型变量的定义与运用例,整型变量的定义与运用#include int main() return 0;运转结果:运转结果: a+u=22,b+u=-14 阐明:阐明: 可以看到不同种类的整型数据可以进展算术运算可以看到不同种类的整型数据可以进展算术运算 int a,b,c,d;unsigned u;a=12; b=-24; u=10;c=a+u; d=b+u;printf(a+u=%d,b+u=%dn,c,d);整型数据整型数据例

33、例 整型数据的溢出整型数据的溢出#include int main() int a,b; a=32767; b=a+1; printf(“%d,%dn,a,b); return 0;运转结果:运转结果: 32767,-32768本例特指整型本例特指整型数据用数据用1616位保位保管的情形管的情形整型数据整型数据整型常量的类型整型常量的类型 (1)一个整数,假设其值在一个整数,假设其值在-32768+32767范围内,以为它是范围内,以为它是int型,它可以赋值给型,它可以赋值给int型和型和long int型变量。型变量。 (2) 一个整数,假设其值超越了上述范围,而在一个整数,假设其值超越了

34、上述范围,而在-2147483637+2147483647范围内,那么以为它是为长整型。可以将它赋值范围内,那么以为它是为长整型。可以将它赋值给一个给一个long int型变量。型变量。 (3) 假设所用的假设所用的C版本如版本如Turbo C分配给分配给short int与与int型数型数据在内存中占据的长度一样,那么它的表数范围与据在内存中占据的长度一样,那么它的表数范围与int型一样。型一样。因此一个因此一个int型的常量同时也是一个型的常量同时也是一个short int型常量,可以赋型常量,可以赋给给int型或型或short int型变量。型变量。(4) 一个整常量后面加一个字母一个整

35、常量后面加一个字母u或或U,以为是,以为是unsigned int型,型,如如12345u,在内存中按,在内存中按unsigned int规定的方式存放规定的方式存放(存储存储单元中最高位不作为符号位,而用来存储数据单元中最高位不作为符号位,而用来存储数据)。假设写成。假设写成-12345u,那么先将,那么先将-12345转换成其补码转换成其补码53191,然后按无,然后按无符号数存储。符号数存储。整型数据整型数据(5) 在一个整常量后面加一个字母在一个整常量后面加一个字母l或或L,那么以为是,那么以为是long int型型常量。例如常量。例如123l,432L,0L等。这往往用于函数调用中。

36、等。这往往用于函数调用中。假设函数的形参为假设函数的形参为long int型,那么要务虚参也为型,那么要务虚参也为long int型。型。整型常量的类型是根据整型常量的类型是根据1整数后的字母后缀来判别的整数后的字母后缀来判别的没有字母后缀,以为是没有字母后缀,以为是int123L long123U unsigned123LU unsigned long2整数的值整数的值实型数据实型数据实型数据的存储实型数据的存储定点数定点数 定点整数定点整数 隐含小数点位置隐含小数点位置 符号位符号位数值位数值位符号位符号位数值位数值位 定点纯小数定点纯小数 隐含小数点位置隐含小数点位置 实型数据的存储实型

37、数据的存储-浮点数浮点数 浮点数的小数点位置不固定,来源于数学中的指数表浮点数的小数点位置不固定,来源于数学中的指数表示方式。例如:示方式。例如: 57. 25 57. 25102102(0.5725)(0.5725) 其中,其中,1010的指数的指数2 2称为阶码,称为阶码,0.57250.5725称为尾数。称为尾数。 阶符阶符阶码阶码数符数符尾数尾数 + 2 + 0.5725 浮点数机内表示方式浮点数机内表示方式 实型数据实型数据C言语中实数的表示方式:言语中实数的表示方式:浮点表示法浮点表示法0.123 123.4 12. .12科学计数法科学计数法6.026E-27 1.2e+30 1

38、E-5实数的类型实数的类型都被看作是都被看作是 double实型数据实型数据浮点型常量的表示方法浮点型常量的表示方法两种表两种表示方式示方式小数小数指数指数0.1230.1233e-33e-3留意留意: :字母字母e(e(或或E)E)之前必需有数字,且之前必需有数字,且e e后面的指数必需为整数后面的指数必需为整数 实型数据实型数据规范化的指数方式规范化的指数方式 在字母在字母e e或或E E之前的小数部分中,小数点左边应有一位之前的小数部分中,小数点左边应有一位且只能有一位非零的数字。且只能有一位非零的数字。例如例如: 123.456: 123.456可以表示为:可以表示为: 123.456

39、e0 123.456e0 12.3456e1 12.3456e1 1.23456e2 1.23456e2 0.123456e3 0.123456e3 0.0123456e4 0.0123456e4 0.00123456e5 0.00123456e5 其中的其中的1.23456e21.23456e2称为称为“规范化的指数方式。一个浮点数输规范化的指数方式。一个浮点数输出时的方式。出时的方式。实型数据实型数据浮点型变量浮点型变量1、浮点型数据在内存中的存放方式、浮点型数据在内存中的存放方式 一个浮点型数据普通在内存中占一个浮点型数据普通在内存中占4个字节个字节(32位位)。与整型数。与整型数据的存

40、储方式不同,浮点型数据是按照指数方式存储的。系据的存储方式不同,浮点型数据是按照指数方式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数方式。指数部分采用规范化的指数方式。实型数据实型数据浮点型变量浮点型变量1、浮点型变量的分类、浮点型变量的分类单精度单精度floatfloat型型双精度双精度doubledouble型型长双精度型长双精度型long doublelong double类型类型 位数位数 数的范围数的范围 有效数字有效数字float 32 10-37 1038 float 32 10-37

41、1038 67 67 位位doubledouble型型 64 10-30710308 64 10-30710308 15161516位位long double 128 10-4931104932 long double 128 10-4931104932 18191819位位可以表示的数据范围比整数大很可以表示的数据范围比整数大很多,因此,实践运用中,假多,因此,实践运用中,假设整数很大,超出了整数的设整数很大,超出了整数的表示范围,经常用浮点数方表示范围,经常用浮点数方式,例如,计算式,例如,计算n!n!,经常运,经常运用用doubledouble类型变量。类型变量。实型数据实型数据例,浮点

42、型数据的舍入误差例,浮点型数据的舍入误差#include void main() float a,b; a = 123456.789e5; b = a + 20 ; printf(“%fn,b); 运转结果:运转结果: 12345678848.000000 12345678848.000000实型数据实型数据浮点型常量的类型浮点型常量的类型C编译系统将浮点型常量作为双精度来处置。编译系统将浮点型常量作为双精度来处置。 例如:例如:f = 2.45678 * 4523.65 系统先把系统先把2.45678和和4523.65作为双精度数,然后进展相作为双精度数,然后进展相乘的运算,得到的乘积也是一

43、个双精度数。最后取其前乘的运算,得到的乘积也是一个双精度数。最后取其前7位位赋给浮点型变量赋给浮点型变量f。 假设是在数的后面加字母假设是在数的后面加字母f或或F如如1.65f, 654.87F,这,这样编译系统就会把它们按单精度样编译系统就会把它们按单精度32位处置。位处置。实型数据实型数据字符型数据字符型数据字符常量字符常量(1)(1)用单引号包含的一个字符是字符型常量用单引号包含的一个字符是字符型常量(2)(2)只能包含一个字符只能包含一个字符a a, ,A A, , 1 1abcabc、“a aa A 9 + $ 在在ASCII字符集中,列出一切可用的字符字符集中,列出一切可用的字符2

44、56个个附录,每个字符:独一的次序值附录,每个字符:独一的次序值 ASCII 码码0-9 升序陈列升序陈列 A - Z a - z字符常量字符常量(1)(1)用单引号包含的一个字符是字符型常量用单引号包含的一个字符是字符型常量(2)(2)只能包含一个字符只能包含一个字符字符字符ASCII 码码对字符进展运算对字符进展运算 对字符的对字符的ASCII 码进展码进展运算运算例如:例如: A 的的 ASCII 码是码是 65那么:那么:A+1=66,对应字符,对应字符 B字符型数据字符型数据字符常量字符常量(1)(1)用单引号包含的一个字符是字符型常量用单引号包含的一个字符是字符型常量(2)(2)只

45、能包含一个字符只能包含一个字符有一些字符,如回车符、退格符等控制符号,不能在屏幕上有一些字符,如回车符、退格符等控制符号,不能在屏幕上显示,也无法从键盘输入,只能用本义字符表示。显示,也无法从键盘输入,只能用本义字符表示。本义字符:反斜杠本义字符:反斜杠加上一个字符或数字组成,它把反斜杠后加上一个字符或数字组成,它把反斜杠后的字符或数字转换成别的意义。的字符或数字转换成别的意义。例如:例如:n 表示回车表示回车 t 表示横向跳格表示横向跳格虽然本义字符方式上由多个字符组成,但它是字符常量,只虽然本义字符方式上由多个字符组成,但它是字符常量,只代表一个字符,运用方法与其他字符常量一样。代表一个字

46、符,运用方法与其他字符常量一样。字符型数据字符型数据 有些以有些以“ 开头的特殊字符称为本义字符开头的特殊字符称为本义字符n 换行换行t 横向跳格横向跳格r 回车回车 反斜杠反斜杠ddd ddd表示表示1到到3位八进制数字位八进制数字xhh hh表示表示1到到2位十六进制数字位十六进制数字字符型数据字符型数据字符型数据字符型数据本本义义字字符符 反斜杠后跟一个字符或数字反斜杠后跟一个字符或数字 字符常量,代表一个字符字符常量,代表一个字符 n 101 x41 A 一切字符都可以用本义字符表示一切字符都可以用本义字符表示 字符变量字符变量字符型变量用来存放字符常量,留意只能放一个字字符型变量用来

47、存放字符常量,留意只能放一个字符。符。字符变量的定义方式如下:字符变量的定义方式如下:char c1,c2;之后,可以用下面语句对之后,可以用下面语句对c1,c2赋值:赋值: c1a;c2 b ;一个字符变量在内存中占一个字节一个字符变量在内存中占一个字节 字符型数据字符型数据字符数据在内存中的存储方式及其运用方法字符数据在内存中的存储方式及其运用方法将一个字符常量放到一个字符变量中,实践上并不是把该字将一个字符常量放到一个字符变量中,实践上并不是把该字符本身放到内存单元中去,而是将该字符的相应的符本身放到内存单元中去,而是将该字符的相应的ASCII代代码放到存储单元中。码放到存储单元中。实际

48、上实际上c1c2例如:例如:char c1,c2;c1a;c2 b ;9798c1c20110000101100010这种存储原理,使得在这种存储原理,使得在C言语中,字符型数据和整型数据之言语中,字符型数据和整型数据之间可以通用。一个字符数据既可以以字符方式输出,也可间可以通用。一个字符数据既可以以字符方式输出,也可以以整数方式输出。以以整数方式输出。实践上实践上字符型数据字符型数据例例 向字符变量赋以整数向字符变量赋以整数#include int main() char c1,c2; c1=97; c2=98; printf(“%c %cn,c1,c2); printf(“%d %dn,c

49、1,c2); return 0; 运转结果:运转结果: a b a b 97 98 97 98c1=a;c2=b;字符型数据字符型数据例例 大小写字母的转换大小写字母的转换#include int main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“c c,c1,c2; return 0;运转结果:运转结果:A B字符型数据字符型数据字符串常量字符串常量字符串常量是一对双撇号括起来的字符序列字符串常量是一对双撇号括起来的字符序列.合法的字符串常量合法的字符串常量:“How do you do., “CHINA, “a , “$1

50、23.45,“可以输出一个字符串,如可以输出一个字符串,如 printf(“How do you do.); 也可以也可以printf(“%s,“How do you do.);对比其他数据类型常量的输出对比其他数据类型常量的输出printf(“%d,345); printf(“%f,2.134); printf(“%c,a);字符型数据字符型数据字符串常量字符串常量 是字符常量,是字符串常量,二者不同。是字符常量,是字符串常量,二者不同。 c= c=a a; ; a a;c cCHINACHINA; ; 结论:不能把一个字符串常量赋给一个字符变量。结论:不能把一个字符串常量赋给一个字符变量。

51、如:假设如:假设c c被指定为字符变量被指定为字符变量 :char cchar c;字符型数据字符型数据变量赋初值变量赋初值在今后的学习过程中,更多的精神用在变量的运用上。在今后的学习过程中,更多的精神用在变量的运用上。 定义了变量后,就可以在程序中运用变量了。定义了变量后,就可以在程序中运用变量了。 其中,经常会遇到的一种运用情形是,为变量赋初始值。其中,经常会遇到的一种运用情形是,为变量赋初始值。如:如:int a,b,c;int a,b,c; float x,y; float x,y; double s,g; double s,g; char ch1,ch2 char ch1,ch2;

52、在程序中就可以按照定义的类在程序中就可以按照定义的类型运用这些变量。型运用这些变量。 当然,可以在变量定义好后,用赋值运算的方式完成。当然,可以在变量定义好后,用赋值运算的方式完成。 C C言语允许在定义变量的同时给变量一个初始值。言语允许在定义变量的同时给变量一个初始值。变量赋初值变量赋初值 然后再进展其他处置然后再进展其他处置如:如:int a;int a; float f; float f; char c; char c; C C言语允许在定义变量的同时给变量一个初始值。言语允许在定义变量的同时给变量一个初始值。a=3;f=3.56;c=a;如:如:int a=3;int a=3; fl

53、oat float f=3.56;f=3.56; char c= char c=a a; ;afcafc33.56a33.56a先变量定义先变量定义给变量赋值给变量赋值变量赋初值变量赋初值对于:对于:int a,b,c; int a,b,c; C C言语允许在定义变量的同时给变量一个初始值。言语允许在定义变量的同时给变量一个初始值。a=3;b=3;c=3;如:如:int a=3,b=3,c=3;int a=3,b=3,c=3; 假设:假设:int a,b,c=5; int a,b,c=5; 表示什么含义?表示什么含义?abc5abc333( (一一) )所谓输入输出所谓输入输出 是以计算机主机

54、为主体而言的是以计算机主机为主体而言的输出输出: :从计算机向外部输出设备从计算机向外部输出设备( (显示器显示器, ,打印机打印机) )输出数据输出数据输入输入: :从输入设备从输入设备( (键盘键盘, ,鼠标鼠标, ,扫描仪扫描仪) )向计算机输入数据向计算机输入数据键盘键盘显示器显示器计算机计算机输入输入输出输出数据的输入与输出数据的输入与输出( (二二)C)C言语本身不提供输入输出语句言语本身不提供输入输出语句, ,输入和输出操输入和输出操作是由作是由C C函数库中的函数来实现的函数库中的函数来实现的例如例如:字符输入函数字符输入函数: getchar 字符输出函数字符输出函数:put

55、char格式输入函数格式输入函数: scanf 格式输出函数格式输出函数: printf字符串输入函数字符串输入函数:gets 字符串输出函数字符串输出函数:puts数据的输入与输出数据的输入与输出(三三)在运用系统库函数时在运用系统库函数时,要用编译预处置命令要用编译预处置命令“#include将有关的将有关的“头文件包括到用户源文件头文件包括到用户源文件中中.例如:在调用规范输入输出库函数时,文件开例如:在调用规范输入输出库函数时,文件开头应该有:头应该有: #include “stdio.h 或:或: #include 由于由于C系统曾经编写好这些函数程序,我们只需求按照语法规系统曾经编

56、写好这些函数程序,我们只需求按照语法规定的要求进展参数设置,正确运用即可,非常方便。定的要求进展参数设置,正确运用即可,非常方便。数据的输入与输出数据的输入与输出一字符输出函数一字符输出函数普通方式普通方式函数作用函数作用putcharch向终端或系统默许的输出设备输出一个字符向终端或系统默许的输出设备输出一个字符 注注: ch 可以是一个字符型整型变量、常量或表达式可以是一个字符型整型变量、常量或表达式; 也可以是一个本义字符,也可以是一个本义字符, 如如 putchar(n) putchar(101)。数据的输入与输出数据的输入与输出结果是在显示器上输出一个回车结果是在显示器上输出一个回车

57、写到程序中的情形写到程序中的情形一字符输出函数一字符输出函数普通方式普通方式putcharch#include void main() putchar(n);数据的输入与输出数据的输入与输出结果是在显示器上输出一个结果是在显示器上输出一个A写到程序中的情形写到程序中的情形一字符输出函数一字符输出函数普通方式普通方式putcharch#include void main() putchar(101);数据的输入与输出数据的输入与输出举例举例#include int main() char ch1B,ch2=O,ch3=Y; putchar(“); /*输出双引号输出双引号本义字符本义字符*/ p

58、utchar(ch1); putchar(ch2); putchar(ch3); /*输出字符型变量中的字符输出字符型变量中的字符*/ putchar(); return 0; BOY数据的输入与输出数据的输入与输出例例 输出单个字符输出单个字符#includeint main() char a,b,c; a=B;b=O;c=Y; putchar(a); putchar(b); putchar(c); putchar(n); return 0;B O Yputchar(n);putchar(n);B O Y数据的输入与输出数据的输入与输出练习:练习: 阅读以下程序,写出运转结果阅读以下程序,写

59、出运转结果#include stdio.hint main( ) char ch1=B,ch2=o,ch3=k; putchar(ch1);putchar(ch2);putchar(ch2);putchar(ch3); putchar(t); putchar(ch1+32);putchar(ch2); putchar(ch2);putchar(ch3); putchar(n); putchar(ch2-32);putchar(ch3-32); putchar(n); return 0;Book bookOK数据的输入与输出数据的输入与输出二字符输入函数二字符输入函数普通方式:普通方式:函数作用

60、:函数作用:函数值:函数值: 注:注:getchar函数没有参数,所接受的字符可以赋给字符型或整型函数没有参数,所接受的字符可以赋给字符型或整型变量,也可以作为表达式的一部分。变量,也可以作为表达式的一部分。getchar从终端或系统隐含指定的输入设备从终端或系统隐含指定的输入设备输入一个字符。输入一个字符。从输入设备得到的字符。从输入设备得到的字符。数据的输入与输出数据的输入与输出例例 输入单个字符输入单个字符运转程序:运转程序:从键盘输入字符从键盘输入字符a按按Enter键键屏幕上将显示输出的字符屏幕上将显示输出的字符aa用户键盘输入的字符用户键盘输入的字符a#includeint main() cha

温馨提示

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

评论

0/150

提交评论