任务2-2、理解数据在计算机中的表示与存储_第1页
任务2-2、理解数据在计算机中的表示与存储_第2页
任务2-2、理解数据在计算机中的表示与存储_第3页
任务2-2、理解数据在计算机中的表示与存储_第4页
任务2-2、理解数据在计算机中的表示与存储_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计与项目实践清华大学出版社描述学生的特征信息基本数据类型及运算项目2回顾与作业点评程序的基本结构程序注释的意义预习检查1、C语言的数据类型有哪些2、如何声明数据类型3、常量与变量目标了解数据的基本类型以及常量的表示方法掌握变量的定义及初始化方法项目任务任务任务2-2、理解数据在计算机中的表示与存储、理解数据在计算机中的表示与存储1、数据元素是如何存储在计算机中的?2、不同类型的数据将占用多少存储空间?3、描述学生的特征属性,包括学号、姓名、年龄、考试成绩等C语言的数据类型 数据类型可以分为四大类数据类型可以分为四大类 基本数据类型、基本数据类型、 构造数据类型、构造数据类型、 指针

2、数据类型、指针数据类型、 空类型空类型。 C语言的数据类型是按被说明量的性质、表示形式、占据存储空间的多少、构造特点来划分的。C语言的数据类型 构造数据类型包括构造数据类型包括 数组、 结构体、 共同体基本数据类型包括基本数据类型包括 字符型、 整型、 实型、 双精度型、 枚举类型。C语言的数据类型对于数据类型,按其取值是否可改变又分为两种对于数据类型,按其取值是否可改变又分为两种。 常量常量 变量变量它们可与数据类型结合起来分类它们可与数据类型结合起来分类:如如整型常量、整型常量、整型变量、整型变量、字符型常量、字符型常量、字符型变量等字符型变量等。常量常量是在程序中保持不变的量常量用于定义

3、具有如下特点的数据:在程序中保持不变在程序内部频繁使用需要用比较简单的方式替代某些值圆周率常量符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量#define也是一条预处理命令(预处理命令都以#开头),称为宏定义命令一经定义,以后在程序中所有出现该标识符的地方都不能改变其值C+中定义字符常量的方式为:const 常量名常量名=值值变量2-2 在程序执行过程中,其值可以改变的量称为变量。 一个变量应该有一个名字,称为变量名。 定义变量后,则将在内存中占据一定的存储单元。 变量必须先定义后使用变量2-1程序内存编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修

4、改这个数据的值。通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。存储 radius * radius *将值存储为10将值存储为声明和使用变量声明变量:变量类型变量类型 变量名列表变量名列表;定义时初始化变量:变量类型变量类型 变量名变量名 = 值值;定义后初始化变量:变量名变量名 = 值值;允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。最后一个变量名之后必须以“;”号结尾。变量定义必须放在变量使用之前。一般放在函数体的开头部分。给变量赋值,除了给一个直接的值以外,还可以通过计

5、算获得。,;,;演示示例:定义变量演示示例:定义变量声明和使用变量定义了一个变量,表示有三个含义:(1)计算机将分配相应大小的存储空间(2)允许该变量进行的运算。(3)数据的取值范围。变量命名在 C 语言中,变量命名需要遵循一定的规则有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip code 变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空

6、白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量变量与常量 编程求圆的面积演示示例:求圆的面积演示示例:求圆的面积基本数据类型数据属于不同类别AfricaThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jackie Chanchar数据类型非数值数值整型intshort intlong intdoublefloat非整型C语言的数据类型基本数据类型:

7、 包括字符型、整型、实型、双精度型、枚举类型。字符型,可分为 无符号或有符号类型;对于整型 可分为长整型和短整型、有符号长整型和短整型、无符号长整型和短整型;对于双精度型,有长双精度型。这些都是在类型词前加上以下几个修饰词组合而成的: unsigned /无符号 long /长 short /短 整型常量整型常量就是整常数。整常数有八进制、十六进制和十进制三种。 十进制整常数:十进制整常数没有前缀。其数码为十进制整常数:十进制整常数没有前缀。其数码为09。八进制整常数:八进制整常数必须以八进制整常数:八进制整常数必须以0开头,即以开头,即以0作为作为八进制数的前缀。数码取值为八进制数的前缀。数

8、码取值为07。八进制数通常是无符。八进制数通常是无符号数。号数。十六进制整常数:十六进制整常数的前缀为十六进制整常数:十六进制整常数的前缀为0X或或0 x。其。其数码取值为数码取值为09,AF或或af。整型常数的后缀 长整型数是用后缀长整型数是用后缀“L”或或“l”来表示的来表示的。十进制长整常数:158L (十进制为158)、358000L (十进制为358000);八进制长整常数:012L (十进制为10)、077L (十进制为63);十六进制长整常数:0X15L (十进制为21)、0XA5L (十进制为165)。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。数据在内存

9、中的存放形式 数据在内存中都是以二进制形式存放的。数据在内存中都是以二进制形式存放的。 数值是以补码表示,以最左边一位(最高位)作为符号位:0表示数值为正数,1表示数值为负数。 如:一个整数127和-3,它们在内存中分别占2个字节的存储单元,在内存中的存放形式如图2-2所示整型名称全称类型说明符缩写类型说明符位数 范围整型intint16-32768 至 +32767无符号整型unsigned intunsigned160 至 65,535短整型short intshort16-32768 至 +32767无符号短整型unsigned short intunsigned short160 至

10、65,535长整型long intlong32-2,147,483,648 至 2,147,483,647无符号长整型unsigned long intunsigned long320 至 4,294,967,295编译系统对于不同类型的变量分配不同大小的存储空间.整型变量 声明:int a,b,c; /a,b,c为整型变量为整型变量long x,y; /x,y为长整型变量为长整型变量unsigned p,q; /p,q为无符号整型变量为无符号整型变量 可按如下方式初始化:0;= 100;在同一语句中可以声明多个类型相同的变量:int , , ;类型说明符类型说明符 变量名标识符变量名标识符1

11、,变量名标识符变量名标识符2,变量名标识符变量名标识符3.变量名标识符变量名标识符n#include void main() int iNuma,iNumb,iNumc,iNumd; unsigned short int uNum; iNuma=12; iNumb=-24; uNum=10; iNumc=iNuma+uNum; Numd=iNumb+uNum; printf(“iNuma+uNum=%d,iNumb+uNum=%dn”,iNumc,iNumd);使用整型变量【案例2-3】整型变量的定义与使用。如果uNum=-10,其结果会如何?uNum是一个无符号数。使用整型变量【案例2-4】

12、整型数据的溢出。当整型变量赋予一个超过其取值范围的值时,就会产生溢出#include void main() short int iNuma,iNumb; iNuma=32767; iNumb=iNuma+1; printf(%d,%dn,iNuma,iNumb);由于不同的编译系统数据类型的取值范围不同,可能结果不一样。short的最大值为32767,当加1后,发生溢出.实型变量 实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。实型数据在内存中的存放形式 浮点数是按照指数形式存放的. 系统将数据分成小数部分和指数部分分别存放,小数部分

13、按规格化的指数形式表示。单精度浮点型 float 在 C 语言中用于存储单精度浮点数float32 位10-38 至 10+38 ,7位有效数字实型数据的舍入误差【案例2-8】实型数据的舍入误差。实型变量是由有限的存储单元组成的,能提供的有效数字是有限的#include void main() float fa,fb; fa=123456.789e5f; fb=fa+20;printf(%fn,fa); printf(%fn,fb);1.0/3*3的结果并不等于1。fa=123456.789e5f;其后缀表示为浮点数,由于fa 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后

14、均为无效数字。出现舍入误差。单精度浮点型 声明:float price; 初始化:float price = 11.3;price = 65.90;类型说明符 变量名标识符1,变量名标识符2,变量名标识符3. 变量名标识符n;浮点数的有效位数【例2-9】浮点数的有效位数#include void main()float fa;double db;fa=33333.33333;db=33333.33333333333333; printf(%fn%fn,fa,db);变量 db 是双精度型,有效位为十六位。在不同的编译系统中,其保留的有效位数不同双精度浮点型内存内存floatdouble213.

15、5671435568967 64位位取值范围:10-308 至 1030816 位有效数字 声明: double pressure; 初始化: pressure = 213.5671435568967; double dvalue = 35.4; 年龄:_奖学金:_性别:_字符型3-1 235000 M int/floatchar字符型数据字符型数据包括字符常量和字符变量。字符型数据包括字符常量和字符变量。 字符常量字符常量:字符常量是用单引号括起来的一个字符。字符常量是用单引号括起来的一个字符。 字符常量有以下特点:字符常量有以下特点:字符常量只能用单引号括起来,不能用双引号或其它括号。字符

16、常量只能是单个字符,不能是字符串。字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。字符型3-3占 8 位内存signed或 unsignedSigned-128 至 +127 unsigned 0 至 255 char gender;gender=m;char gender=m;转义字符 转义字符是一种特殊的字符常量转义字符是一种特殊的字符常量。 转义字符以反斜线开头,后跟一个或几个字符。转转义字符具有特定的含义义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。案例先输出”hijk “t表示然后横向跳一个制表符输出L,b退格,相等于将输出的L字符删除,然后输

17、出M,#include void main()printf( ab ctderfn);printf(hijktLbMn);【案例案例2.10】转义字符的】转义字符的使用。使用。先输出” ab c” ,t表示然后横向跳一个制表符(默认个空格字符的位置)输出de,r表示回车,在第一列的位置输出f,所以最后输出f ab c de。t表示回车换行,准备在第二行输出。字符数据在内存中的存储形式每个字符变量被分配一个字节的内存空间。每个字符变量被分配一个字节的内存空间。字符值是以字符值是以ASCII码的形式存放在变量的内存单元之中的码的形式存放在变量的内存单元之中的。语言允许对整型变量赋以字符值,也允许对

18、字符变量赋以整型值语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。 x的十进制ASCII码是120120121b=y;a=x;y的十进制ASCII码是121字符串常量字符串常量是由一对双引号括起的字符序列字符串常量是由一对双引号括起的字符序列。CHINA , “C program” , $12.5 等都是合法的字符串常量。字符串常量和字符常量的区别:字符串常量和字符常量的区别:字符常量由单引号括起来,字符串常量由双引号括起来。字符常量只能是单个字符,字符串常量则可以含一个或多个字符。可以把一个字符常量赋予一个字符变量,

19、但不能把一个字符串常量赋予一个字符变量。在语言中没有相应的字符串变量语言中没有相应的字符串变量。字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符串结束的标志0 (ASCII码为0)。案例【案例【案例2.11】向字符变量赋以整数。】向字符变量赋以整数。#include void main()char a,b;a=120;b=121;printf(%c,%cn,a,b);printf(%d,%dn,a,b); 当格式符为c时,对应输出的变量值为字符,当格式符为d时,对应输出的变量值为整数。a,b值的输出形式取决于值的输出形式取决于printf函

20、数格式串中的格式符函数格式串中的格式符。定义a,b为字符型,但在赋值语句中赋以整型值。案例【案例【案例2.12】字符的大小写转换】字符的大小写转换#include void main() char a,b; a=a; b=b; a=a-32; b=b-32; printf(%c,%cn%d,%dn,a,b,a,b);a,b被说明为字符变量并赋予字符值,语言允许字符变量参与数值运算,即用字符的ASCII 码参与运算。由于由于大小写字母的大小写字母的ASCII 码相差码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。变量的初始化 在程序中常常需要对变量赋初值,以便使用变量。

21、在程序中常常需要对变量赋初值,以便使用变量。在变量定义的同时可以给变量赋初值。在变量定义的同时可以给变量赋初值。在变量定义中赋初值的一般形式为:在变量定义中赋初值的一般形式为:类型说明符类型说明符 变量名变量名=表达式表达式|常量;常量;int iCount=0; /定义一个变量并初始化int iNum1=1,iNum2=2 /一次性定义多个变量并初始化float fscore=90.6,x=3f,y=0.75;char cSex=M;(1)在定义中不允许连续赋值,如int a=b=c=5是不合法的。(2)变量定义后如果没有赋值,其变量的值是一个不确定的值,所以变量在引用前必须有确定的值。测试数据长度C语言不规定各种类型的数据占用多大的存储空间,同一类型的数据在不同的计算机上可能占用不同大小的存储空间。测试数据长度运算符sizeof,一般格式:sizeof()或sizeof()sizofe是一元运算符,与其他一元运算符具有相同的优先级别,结结合性从右至左。合性从右至左。计算某类型的数据占用的内存大小(字节数)各

温馨提示

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

评论

0/150

提交评论