第二讲基本数据类型精选PPT.ppt
第二讲基本数据类型第1页,本讲稿共23页学习目标:n理解数值数据的表示n理解文字数据的表示n理解C语言中数据类型的分类n熟练应用变量的定义和赋值n熟练应用表达式中数据类型的转换第2页,本讲稿共23页学习重点:nC语言中数据类型的分类n变量的定义和赋值n表达式中数据类型的转换第3页,本讲稿共23页学习难点:n表达式中数据类型的转换n单个字符与字符串存储区别第4页,本讲稿共23页什么是数据类型?n著名计算机科学家NikiklausWirth提出一个公式 数据结构+算法 程序实际上结构化的程序设计可以表示为:程序 算法数据结构程序设计方法语言工具和环境C的数据结构就是以数据类型的形式出现的第5页,本讲稿共23页一、数值数据的表示(1)nC语言中使用的数值数据有两种:整数整数和浮点小数。n整数整数表示形式:n十进制:123456n八进制:011072n十六进制:0 x11-0 x32一般整数的存储空间为2个字节,取值范围一般为 -215215-1,即-3276832767。n如果超过这个范围,只有使用占4个字节的长整型数,即在整数后面加上一个字母L(大小写均可),此 时 取 值 范 围 可 以 扩 大 到-231231-1,即-21474836482147483647。第6页,本讲稿共23页一、数值数据的表示(2)n浮点小数浮点小数 C语言中的浮点小数描述的是实数,可以采用十进制小数形式或者指数形式表示。n十十进进制制小小数数形式:包含整数部分、小数点和小数部分。如1.3234.0注意:其中小数点不能省略,34与34.0不是一样的。n指指数数形形式式:包含尾数部分、字母E或e和阶码。例如2.78E12。注意:尾数部分不能省、阶码必须是整数。浮点小数一般为单精度浮点类型,占用4个字节,有效位数67位,如果需要精度特别高,可以采用双精度浮点类型,有效位数可以达到1617位。第7页,本讲稿共23页二、文字数据的表示(1)nC语言把文字数据分为两种类型:单个单个字符和字符串字符和字符串。n单个字符单个字符单个字符的表现形式是由单引号括起来的一个字符,例如:aA5$。其中单引号、双引号和反斜杠的表现形式比较特殊,分别是、”、。在C语言中转义字符被认为是具有特殊意义的单个字符,例如n,代表一个换行符。单个字符在内存中只占用单个字符在内存中只占用1个字节个字节,其存储的内容为该字符在ASCII码表中对应的数值。第8页,本讲稿共23页二、文字数据的表示(2)n字符串字符串是由双引号括起来的字符序列,例如:”thisisaprogram.”IloveC”。字符串中的字符按照从左到右的顺序,依次存储在一段连续的空间里,其中每一个字符占用一个字节,其内容为该字符在ASCII码表中对应的数值。注意:C语言的字符串在实际存储时,将自动在字符串尾部加了一个结束标志0(其ASCII码值为0)。n思考:a“a”是相同的吗?第9页,本讲稿共23页三、C语言的数据类型nC语言提供的数据类型分类如下:第10页,本讲稿共23页数据类型及其范围2-1类型近似大小(位)最小范围char8-128 到 127unsigned80到255signedchar8-128到127int16-32,768到32,767unsignedint160到65,535signedint16与int相同shortint16与int相同unsignedshortint80到65,535第11页,本讲稿共23页数据类型及其范围(2)类型近似大小(位)最小范围signedshortint8与shortint相同signedshortint8与shortint相同longint32-2,147,483,648到2,147,483,647signedlongint320到4,294,967,295unsignedlongint320到4,294,967,295float32六位精度double64十位精度longdouble128十位精度第12页,本讲稿共23页四、变量的定义和赋值nC语言中的数据有两种基本形式:常量和变量。常量的值是固定的,变量是可以改变的第13页,本讲稿共23页四、变量的意义15内存中的数据数据数据1515内存内存n应用程序要为每一项数据分配内存应用程序要为每一项数据分配内存n 需要多少内存需要多少内存n 数据被存储在哪个数据被存储在哪个通过变量,可以为内存通过变量,可以为内存中的位置提供一个有意中的位置提供一个有意义的名称义的名称第14页,本讲稿共23页四、变量n变量的定义类型标识符类型标识符 变量名;变量名;变量在定义时要注意以下几个问题:变量的命名要符合C语言规定的标识符的命名规则,即只能由字母、数字和下划线组成,首字母必须为字母或下划线。此外C语言中规定的有特殊用途的关键字,例如int、float、if等,不能作为变量名称。ab2stu1x1_1sum_name1正确2acstu-1len#1elseintfloat不正确C语言中大小写是敏感的。但是习惯上,C中的变量一般用小写字母表示。第15页,本讲稿共23页四、变量名的命名规则变量名应该以字母开和下划线开头变量名应该以字母开和下划线开头应该避免使用专有名词来命名变量应该避免使用专有名词来命名变量第一个字符后面可以跟字母和数字第一个字符后面可以跟字母和数字变量名应该是有意义的而且是描述性的变量名应该是有意义的而且是描述性的应该避免使用可能引起混淆的字母应该避免使用可能引起混淆的字母编写程序时应该遵循一些标准的变量命名约定编写程序时应该遵循一些标准的变量命名约定编写程序时应该遵循一些标准的变量命名约定编写程序时应该遵循一些标准的变量命名约定第16页,本讲稿共23页四、变量的赋值(1)变量需要预置一个值,即赋值。赋值操作通过赋值符号“=”把右边的值赋给左边的变量:变量名=表达式;例如x=3;a=a+1;f=3*4+2;注意数学中的“=”符号不同于C语言中的赋值符号“=”。第17页,本讲稿共23页四、变量的赋值(2)n其中需要注意的是:1.如果赋值时两侧类型不一致时,系统将会作如下处理:1.将实数赋给一个整型变量时,系统自动舍弃小数部分。2.将整数赋给一个浮点型变量时,系统将保持数值不变并且以浮点小数形式存储到变量中。3.当字符型数据赋给一个整型变量时,不同的系统实现的情况不同,一般当该字符的ASCII值小于127时,系统将整型变量的高字节置0、低字节存放该字符的ASCII值。第18页,本讲稿共23页四、变量的赋值(3)2、字符型变量的值可以是字符型数据、介于-128127的整数或者转义字符。3、变量在定义的同时也可以赋初值,称作变量的初始化。第19页,本讲稿共23页五、表达式中数据类型转换(1)n自动类型转换C语言规定,不同类型的数据在参加运算前会自动转换成相同类型,再进行运算。转换的规转换的规则则是:如果运算的数据有float型或double型,自动转换成double型再运算,结果为double型。如果运算的数据中无float型或double型,但是有long型,数据自动转换成long型再运算,结果为long型。其余情况为int型。doublefloatlongunsignedintchar,short高高低低第20页,本讲稿共23页五、表达式中数据类型转换(2)n强制类型转换在C语言中也可以使用强制类型转换符,强迫表达式的值转换为某一特定类型。强制类型转换形式为:(类型)(类型)表达式表达式 强制类型转换最主要的的用途一是满足一些运算对类型的特殊要求,例如求余运算符“%”,要求运算符两侧的数据为整型,(int)2.5%3二是防止丢失整数除法中的小数部分。第21页,本讲稿共23页五计算机中数据的表示n计算机最主要的功能是处理数据,如数值、文字、图形、图像等。而这些数据必须被转换为相应的数字编码,才能进行存储和处理。n二进制、八进制、十六进制n进制之间的转换n二进制数在内存中的表示n字符编码第22页,本讲稿共23页学以致用1.编程输出字符0、9、A、Z、a、z的ACSII码的十进制、八进制和十六进制的表示形式。2.参考例L2_6.C编写一个程序,从键盘输入字符(例如1),转换成十进制数(即1),并输出。提示:“1”的ASCII码为十进制数49,将其减去一个数等于十进制1即可。3.已知a=3,b=2,c=2.5,计算(float)(a+b)/3+(int)c的值。4.编写一个程序输出5!、10!的结果。5.参考例L2_8.C编写一个程序,输入2个学生的姓名、学号、英语、数学、计算机成绩,输出这两个学生的姓名、学号和平均分。第23页,本讲稿共23页