第2章基本数据类型及其操作.ppt
《第2章基本数据类型及其操作.ppt》由会员分享,可在线阅读,更多相关《第2章基本数据类型及其操作.ppt(55页珍藏版)》请在三一办公上搜索。
1、1,第2章 基本数据类型及其操作,2.1 C语言的基本数据类型2.2 常量与变量2.3 常用运算符与表达式2.4 数据的输入与输出2.5 应用实例本章小结,2,2.1 基本数据类型,一个程序应包括对数据的描述和对数据处理的描述。对数据的描述,即数据结构。在C语言中,系统提供的数据结构,是以数据类型的形式出现的。对数据处理的描述,即计算机算法。算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。实际上,一个程序除了数据结构和算法外,还必须使用一种计算机语言,并采用结构化方法来表示。,3,C语言提供的数据结构,是以数据类型形式出现的。具体分类如下:1.基本类型(分为整型、实型(又称浮点型)、字符
2、型和枚举型四种)。2.构造类型(分为数组、结构体和共用体三种)。3.指针类型。4.空类型,4,1.整数的存储。以二进制形式存储,一个数据占据2/4个字节内存。数据有正、负,负数以补码方式存放,或参与运算。如十进制数100,二进制为0110 0100。,2.实数的存储。采用指数形式存储,一个数占据4个字节内存,数值部分3个字节,指数部分一个字节。也是采用二进制数形式。,3.字符数据的存储。存放字符的ASCII码值,占一个字节。例如,字符A的ASCII码值为65,转换为二进制数为:0100 0001。,5,2.2 常量和变量,一、常量(常量的类型,可通过书写形式来判别)1.常量的概念 在程序运行过
3、程中,其值不能被改变的量称为常量。2.常量的分类(1)整型常量(分十进制、八进制、十六进制):123、67(十进制);056、024(八进制);0 x123、0 x56(十六进制)(2)实型常量:12.56、3.0e+4(指数形式,表示3.0104)(3)字符常量:A、c、6等,也包括转义字符,参见P16表2.1。(4)符号常量:用一个标识符代表一个常量。,6,案例2.1 符号常量的使用。#define PI 3.1415926/*定义符号常量的命令行*/#include/*文件包含预处理命令*/void main()double r,s,v;/*定义双精度浮点型变量r*/r=3.5;/*为半
4、径r赋值*/s=4.0*PI*r*r;/*计算表面积*/v=4.0/3.0*PI*r*r*r;/*计算体积*/printf(“s=%f,v=%fn”,s,v);/*输入计算结果*/该例题中 PI 就是符号常量。使用符号常量需要用命令行定义。,定义符号常量格式为:#define 标识符 常量串例如:#define PI 3.1415926表示把符号常量的值定义为3.1415926,7,二、变量1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。2.变量的两个要素(1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。(2)变量值。在程序运行过程中,变量值存储在内存中。
5、在程序中,通过变量名来引用变量的值。,8,3.标识符(即名称)命名规则(1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。(2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。(3)C语言的关键字不能用作变量名。注意:C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。习惯上,变量名和函数名中的英文字母用小写,以增加可读性。,9,4.变量的定义与初始化在语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。(1)变量定义的一般格式存储类型 数据类型 变量名,变量名2;例如,float ra
6、dius,length,area;(2)变量初始化的一般格式存储类型 数据类型 变量名=初值,变量名2=初值2;例如,float radius=2.5,length,area;,10,2.2.1 整型数据,1.分类 根据占用内存字节数的不同,整型变量又分为类:(1)基本整型(关键字为int)(2)短整型(关键字为short int)(3)长整型(关键字为long int)(4)无符号整型(unsigned)无符号型又分为无符号基本整型(unsigned int)、短整型(unsigned short)和长整型(unsigned long)三种,只用来存储无符号整数。,11,2.占用内存字节数与
7、值域 上述各类型整型变量占用的内存字节数,随系统而异。在TC中,一般用字节表示一个int型变量,且long型(字节)int型(字节)short型(字节)。显然,不同类型的整型变量,其值域不同。例如,TC编译系统中一个int型变量,其取值范围是-3276832767;一个unsigned型变量的值为:065535。P19表2.2.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其值的整型变量。,12,2.2.2 实型数据,一、实型变量 语言的实型变量,分为两种:(1)单精度型。关键字为float,一般占字节(32位)、提供位有效数字。(2)双精度型。关键字为double,一般占个字节
8、、提供1516位有效数字。二、实型常量.表示形式 实型常量即实数,又称浮点数,其值有两种表达形式:(1)十进制形式。例如3.14、9.8。(2)指数形式:E(e)。例如3.0+5等。,13,案例2.2 计算三门课的平均分。#include void main()int english,math,c;/*定义3个整型变量*/int sum;/*定义整型变量sum*/float average;/*定义单精度浮点类型average*/printf(“请输入英语成绩:”);scanf(“%d”,14,2.2.3 字符型数据,一、字符常量1.字符常量的定义用一对单引号括起来的单个字符,称为字符常量。例
9、如,A、等。2.转义字符语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的转义字符。注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:、。,15,二、字符变量字符变量的类型关键字为char,一般占用1字节内存单元。1.变量值的存储 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。P342 附录CASCII码表例如:char ch1,ch2;/*定义两个字符变量:ch1,ch2*/ch1=a;ch2=b;/*给字符变量赋值*/,16,2.特性字符数据在内存中存储的是字符的ASCII码 一个无符号整数
10、,其形式与整数的存储形式一样,所以语言允许字符型数据与整型数据之间通用(0255)。(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。(2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。,17,案例2.3 将给定的小写字母转换为大写。#include void main()char c1,c2;/*定义两个字符类型的变量*/c1=a;/*将字符常量a赋给字符变量c1*/c2=b;/*将字符常量b赋给字符变量c2*/c1=c1-32;/*求字符a对应的大写字母*/c2=c2-32;/*求字符b对应的大写字母*/printf(“%c%cn”,c1,c2);/*
11、输出字符变量c1、c2的值*/,18,三、字符串常量1.字符串常量的概念和字符串长度字符串常量是用一对双引号括起来的若干字符序列。字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“”(一对紧连的双引号)。例如,“How do you do.”、“Good morning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。,19,2.字符串的存储C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。注意:在源程序中书写字符串常量时,不必加结束字符0。如果有一个字符串为“CHINA”,则它在内存中的实际存
12、储如下所示:最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。,20,综上所述,字符常量A与字符串常量A是两回事:(1)定界符不同:字符常量使用单引号,而字符串常量使用双引号;(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,21,2.3 常用运算符与表达式,在语言中,除控制语句和输入输出函数外,其它所有基本操作都作为运算符处理。1.五种基本算术运算符+、-(减法/取负)、*、/、%(求余数)(1)关于除法运算/C语言规定:两
13、个整数相除,其商为整数,小数部分被舍弃。例如,5/2=2。(2)关于求余数运算要求两侧的操作数均为整型数据,否则出错。,22,【案例2.4】计算表达式1+1/2+1/3+1/4+1/5的值。当“/”左右两边的操作数都是整数时,其结果也为整数。例如:1/2=0。若“/”左右两边的操作数有一个是实数,其结果为实数,1.0/2=0.5#include void main()float x;/*定义一个浮点型变量x*/x=1+1.0/2+1.0/3+1.0/4+1.0/5;printf(“x=%fn”,x);/*输出变量x的值*/,23,2.表达式和算术表达式(1)表达式 用运算符和括号将运算对象(常
14、量、变量和函数等)连接起来的、符合语言语法规则的式子,称为表达式。单个常量、变量或函数,可以看作是表达式的一种特例。将单个常量、变量或函数构成的表达式称为简单表达式,其它表达式称之为复杂表达式。(2)算术表达式表达式中的运算符都是算术运算符。例如,3+6*9、(x+y)/2-1等,都是算术表达式。,24,3.运算符的优先级与结合性(1)语言规定了运算符的优先级和结合性。所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。自左至右的结合方向,称为左结合性。反之,称为右结合性。结合性是语言的独有概念。除单目运算符、赋值运算符和条件运
15、算符是右结合性外,其它运算符都是左结合性。,25,4.数据类型转换(1)在语言中,整型、实型和字符型数据间可以混合运算。如果一个运算符两侧的操作数的数据类型不同,则系统按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。转换规则如下所示。char,short float int unsigned long double向下的箭头,表示必须的转换。char和short 型必须转换成 int 型,float型必须转换成double型。横向向右的箭头,表示不同类型的转换方向。注意:箭头方向只表示数据类型由低向高转换,不要理解为int型先转换成unsigned型,再
16、转换成long型,最后转换成double型。,精度低,精度高,26,(2)除自动转换外,语言也允许强制转换。数据类型强制转换的一般格式为:(要转换成的数据类型)(被转换的表达式)当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。例如,(double)a(等价于(double)(a)/*将变量a的值转换成double型*/(int)(x+y)/*将x+y的结果转换成int型*/(float)5/2(等价于(float)(5)/2)/*将5转换成实型,再除以2(=2.5)*/(float)(5/2)/*将5整除2的结果(2)转换成实型(2.0)*/注意:强制转换类型得到的是一个所需类型
17、的中间量,原表达式类型并不发生变化。例如,(double)a 只是将变量a的值转换成一个double型的中间量,其数据类型并未转换成double型。,27,5.赋值运算符及其表达式,(1)“=”是一个赋值运算符(2)a=3是赋值表达式。(3)赋值表达式加上一个分号构成语句,如:a=3;if(a=b)0)t=a;红色部分是一个条件 该语句的含义是:先将b的值赋予a,若a的值大于0,则将a的值赋予t。这里的a=b是一个赋值表达式。注意:赋值表达式和赋值语句的差别。,28,2.4 数据的输入与输出,输入/输出以计算机为主体,输入是指从输入设备(键盘等)向计算机输入数据,输出是指从计算机向输出设备(显
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 数据类型 及其 操作
链接地址:https://www.31ppt.com/p-5910504.html