C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算

上传人:w****i 文档编号:92478554 上传时间:2019-07-10 格式:PPT 页数:94 大小:1.34MB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算_第1页
第1页 / 共94页
C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算_第2页
第2页 / 共94页
C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算_第3页
第3页 / 共94页
C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算_第4页
第4页 / 共94页
C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 蔡启先第2章 数据和运算(94页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据和运算,计算机是通过执行程序来实现其功能的。程序包含两方面的内容:计算过程的描述和数据的描述。计算过程体现为指令的序列,而数据的描述由类型定义和变量说明来实现。C语言具有丰富的数据类型,它可以在基本类型的基础上按层次产生各种构造类型:数组、结构体、共用体等,并利用它们处理各种复杂的问题 。,C语言的数据类型如下:,数据类型,基本类型,构造类型,指针类型,无值型void,整型 int,字符型char,实型float,枚举类型,数组类型,结构体类型,共用体类型,C语言数据处理的基本对象是常量和变量,处理的过程就是运算。通过运算符对变量和常量进行运算构成表达式。本章主要介绍C语言的标识符

2、、基本数据类型、常量变量、简单输入输出函数、以及算术运算符、赋值运算符、关系运算符、逻辑运算符等表达式。它们都是构成C语句的基本材料。,第 2 章 数 据 与 运 算,目录,2.1 C语言的基本数据类型型,2.2 常量与变量,2.3 简单的输入输出,2.4 C语言的运算符和表达式,2.5 运算符的优先级和结合性,2.6 不同数据类型数据间的转换,2.7 容易混淆或出错的C运算,2.1 C语言的基本数据类型,基本数据类型最主要的特点是其值不可以再分解为其他类型。构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的,一个构造数据类型的值可以分解成若干个“成员”或“元素”,每个“成员”或

3、“元素”都是一个基本数据类型或构造类型。指针是一种特殊的数据类型,专门用来表示某个量在内存储器中的地址。空类型主要用于无返回值的函数类型或无参数的函数参数。,C语言的数据类型是按被定义变量的性质、表示形式、占据存储空间的多少及其构造特点来划分的。在C语言中,数据类型可以分为基本数据类型、构造数据类型、指针类型、无值型(空类型)和用户自定义类型。,2.1 C语言的基本数据类型,2.1.1 基本数据类型的类型名,2.1.2 类型修饰符,2.1 C语言的基本数据类型,2.1.1 基本数据类型的类型名,C语言使用类型名来区分基本数据类型。字符型的类型名是char,整型的类型名是int;实型分为单精度浮

4、点型和双精度浮点型两种,单精度浮点型的类型名是float,双精度浮点型的类型名是double。枚举型将在第8章讲解。这五种基本类型代表了数据在计算机中的不同存储形式。 字符型char:以1个字节存放1个ASCII码字符的值。 整型int:在PC机上以2或4个字节存放1个定点数。 单精度浮点型float:以4个字节存放1个浮点数。 双精度浮点型double:以8个字节存放1个浮点数。,2.1 C语言的基本数据类型,2.1.2 类型修饰符,基本数据类型前面都可以加类型修饰符,以扩大适应范围。例如:整型int之前加类型修饰符short,则表示以2个字节存放一个定点数,表数范围为-32768到3276

5、7,如果要表示一个更大的定点数,可以在int前加上一个类型修饰符long,long int型数据在计算机中以4个字节存储,表数范围为-2147483648至2147483647。C语言的类型修饰符有:signed(带符号)、unsigned(无符号)、long(长型)和short(短型)等四种。,2.1 C语言的基本数据类型,2.1.2 类型修饰符,1.修饰符用于整型数据 修饰符short和long用于int型,可得到如表2-1所示整型变量数据类型。 表2-1 整型数据分类表,2.1 C语言的基本数据类型,2.1.2 类型修饰符,注意: (1) C语言中int型的省缺说明是带符号数(signe

6、d),所以定义带符号数时,关键词signed可以省略。带符号(signed)和无符号(unsigned)的差别在于最高位的含义不同。如果定义了一个带符号数,则编译器把它的最高位当作符号位:符号位为0,该数为正;符号位为1,该数为负。 (2) 在16位系统(如Turbo C 2.0)中int型占2个字节,数的表示范围-3276832767;在32位系统(如Visual C+ 6.0)中int型占4个字节,数的表示范围-21474836482147483647。,2.1 C语言的基本数据类型,2.修饰符用于实型数据 实型数据表示的是带小数的数据。实数常量在C语言中又叫浮点数。实型变量可分为单精度和

7、双精度两种类型,分别用float和double来定义。分类情况如表2-2 表2-2 实型数据分类表,2.1.2 类型修饰符,2.1 C语言的基本数据类型,在具体的编译环境下,每种数据类型所占的字节数可以通过sizeof运算符求得,具体的使用格式是:sizeof(数据类型)。例如在16位系统中sizeof(int)的结果是2。,本书如不特别说明,一般以16位系统中的数据表示为准,即int型长度为两个字节,2.1.2 类型修饰符,2.2 常量与变量,2.2.1 常量,2.2.2 变量及其数据类型,2.2 常量与变量,2.2.1 常量,在程序运行过程中,其值不能被改变的量称为常量。如:1,128,a

8、,-255等。常量也分为各种数据类型,每个常量的表示方法取决于它的类型。通常把常量分为数值常量、字符常量、字符串常量、符号常量。数值常量又分为整型常量和浮点常量。,2.2 常量与变量,2.2.1 常量,1. 数值常量 数值常量分为整型常量和浮点常量。 (1)整型常量 整型常量是不带小数的数。整型常量可以用三种数制来表示。 十进制整型常量:其表示同一般的十进制整数,如x=123; 八进制整型常量:以“0“开始,后面跟八进制整数。如y=057,即十进制的47。 十六进制整型常量:以“0x“开始,后面跟十六进制整数。如0xa8,即十进制的168。 整型数据在内存中是以补码的形式存放的,所占字节数在各

9、种机器处理上有所不同,在16位机器上占两个字节。其中,带符号数据的最高位为符号位,0表示正数,1表示负数。无符号数据最高位就是数据位。,2.2 常量与变量,Int型最大值为32767: Int型最小值为32768: Unsigned Int型最大值为65535: Unsigned Int型最小值为0: 这里要特别注意Int型的最小值为32768而不是32767,因为+0表示0,-0表示负的最大值。 若要表示长整型常量或无符号整型常量,可在常量后面加上后缀L或U。如123L,它在内存中要用4个字节存放。123U表示无符号int型数,123LU表示无符号long型数。,整型常量可分为:短整型(sh

10、ort int)、整型(int)、长整型(long int)和无符号型(unsigned),它们所表示数的范围不同,即在内存中所占的字节数不同。具体可参照表2-1。例如:,2.2.1 常量,2.2 常量与变量,2.2.1 常量,(2)浮点常量 浮点常量又称实型常量,浮点常量的整数部分后面跟小数。C语言中的浮点常数为双精度型,有两种书写方式:小数形式和指数形式。 小数形式:小数形式由数字和小数点组成(注意必须有小数点),如: 0.302、.38、37.234、163.0; 指数形式:为在整数后面加上字母e(或E)后跟一个1 3位的整数,如: 12.3e3 表示12.3103 3.45E-4 表示

11、3.4510-4 1e5 表示1.0105,注意不能表示成e5! 通常对特别大或特别小的数用指数格式比较方便,一般不太大也不太小的数用小数形式则比较直观。 浮点型数据在内存中不象整型数那样按二进制补码形式存储,而是分为尾数部分和指数部分存放。常用的浮点数类型有float型和double型。后者的精度,即数据的有效位数要比前者多一倍。 浮点数在程序中较难处理,原因之一是没有一种理想的方式可以表示任意的数字。从数学意义上讲,两个不同的数字之间有无穷个实数,而计算机只能区分至少有一位(bit)不同的两个数字。如果要表示那些无穷无尽的各不相同的数字,就要使用无穷多的位。实际上计算机只能用较少的位(通常

12、是32位或64位)来表示一定范围内的浮点数,因此这种表示只能是近似的。,2.2 常量与变量,2.2.1 常量,2字符常量 字符常量是用单引号引起来的单个字符或由反斜杠后跟某个字母组成的转义字符。例如: 单引号引起来的单个字符, x,6,$等。其值为该字符的ASCII码值。 反斜杠后跟某个字母组成转义字符(又称转义序列),如表2-3所示。,2.2 常量与变量,2.2.1 常量,表2.2 转义序列表,在内存中,字符型数据是以ASCII码存放的,一个字符占一个字节。例如,字母A的十进制ASCII代码值是65,则字母A可表示为101或者x41、A等,也可直接用ASCII码值表示,如65,0x41,01

13、01。字符常量是1字节的整数,其值可以象整数一样参加数值运算。例如,A的值是65,A+20的值是85。,2.2 常量与变量,2.2.1 常量,3字符串常量 字符串常量是以双引号括起来的一组字符。例如,“apple”是一个字符串常量。 字符串常量存储时,按字符串中字符从左到右的顺序依次占用连续的存储单元,每个字符占用一个字节,存放其对应的ASCII码。C编译器还会自动在每个字符串常量的末尾加上一个空字符NULL(即 0 )作为结束标志。因此,含n个字符的字符串,则占用的存储空间为n+1个字节。例如,下面的字符串”apple”在内存中要占用6个字节,即: 因此字符串和字符是两种不同类型。其区别如下

14、: 字符由单引号括起来,字符串由双引号括起来。例如a为一个字符,而“a“是一个只包含一个字母a的字符串,而abc是错误的表示。 一个字符占一个字节,而一个含n个字符的字符串占n+1个字符。 注意:字符常量3和整型常量3的区别,前者存储的是ASCII值即51,后者值为3。,2.2 常量与变量,2.2.1 常量,4符号常量 符号常量,即用一个符号(标识符)来代表一个常量。 (1) 符号常量的定义 符号常量采用宏定义形式: 例如,在求圆面积的程序中可以为定义一个符号常量。 #define PI 3.1415926 又如: #define PRICE 30,#define 符号常量 常量,2.2 常量

15、与变量,2.2.1 常量,注意,在标识符和字符序列之间可以有任意个空格,字符序列以换行作为结束。#define不是C语言的语句,而是编译系统的预处理命令,所以命令中没有分号。为了与一般变量名相区别,通常符号常量用大写字母来表示。符号常量的定义必须放在程序的开头,每个定义独占一行;符号常量的值作为字符序列对待,它没有数值的含义,也没有类型的含义。编译器在对源程序编译时,会用字符序列代替程序中的标识符(符号常量),然后根据它在程序的上下文关系确定其类型。上例中如果程序中出现PRICE,则用30代替。,2.2 常量与变量,2.2.1 常量,(2) const限定 可以在变量说明(稍后将会介绍)中加上

16、常量修饰符const,对于用const说明过的变量,在程序执行期间其值不能被修改,但可以给它们赋初始值。其一般形式为: 这是一条C语言语句,必须以分号结束。例如: const double pi=3.1415926; 该语句产生一个不能由程序修改的双精度浮点型变量pi。const变量要么由初始化赋值(如上例),要么由一些依赖硬件的方式获得其值。将const修饰符用于变量说明中,可以确保变量的值不被程序的其它部分修改。,const 数据类型 符号常量=常量;,2.2 常量与变量,2.2.1 常量,用const定义符号常量有两个好处:第一,如果编译程序知道一个变量的值不会改变,编译程序就能对程序进行优化;第二,编译程序会试图保证该变量的值不会因为程序员的疏忽而被改变。 当然,用#define来定义符号常量也有同样的好处。但是,有时我们用const而不用#define来定义符号常量。其原因是const变量可以定义任何类型(如结构)的符号常量,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号