计算机软件基础数据类型.ppt_第1页
计算机软件基础数据类型.ppt_第2页
计算机软件基础数据类型.ppt_第3页
计算机软件基础数据类型.ppt_第4页
计算机软件基础数据类型.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

/cyysj 第2章 计算机基础教学部 /cyysj 回顾 编辑源程序 文件名: *.c 编译目标程序 文件名:*.obj 连接可执行程序 文件名:*.exe 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序 C程序的组成函数 计算机基础教学部 /cyysj 目标 理解变量和常量的含义 熟悉基本数据类型 int、char、float 和 double 使用算术运算符 理解赋值运算符、逗号运算符 理解类型转换 计算机基础教学部 /cyysj main() float r, cm;float r, cm; scanf(“%f”, cm=2*3.14159*r; printf(“圆的半径=%fn”,r); printf(“圆的周长=%fn”,cm); 对数据对数据 的描述的描述 对操作对操作 的描述的描述 一个简单的C程序例子 /cyysj 2.1 C的数据类型 C语言提供了以下一些数据类型: 数据类型数据类型 构造类型构造类型 指针类型指针类型 空类型(空类型(无值类型)无值类型) voidvoid 枚举类型枚举类型 enumenum 数组类型数组类型 结构类型结构类型 structstruct 联合类型联合类型 unionunion 基本类型基本类型 整型整型 intint 字符型字符型 charchar 实型(浮点型)实型(浮点型) 单精度实型单精度实型 floatfloat 双精度实型双精度实型 doubledouble 计算机基础教学部 /cyysj 程序是用来对数据进行处理的,数据是所要 处理的对象,而运算符是施加给这些数据的操作 。 例如求圆的周长,写有如下程序语句: cm = 2 * 3 .1 4 1 5 9 * r; 其中 cm、r、2、3.14159 是参加运算的数 据,而 * 、= 是要进行的运算的符号。 手工计算时,根据给定的半径 r 就可以计 算出圆的面积。 什么是数据和数据类型什么是数据和数据类型 计算机基础教学部 /cyysj 计算机完成上述计算,首先要解决数据的存放问题: 1. 输入的半径 r 、运算的结果 cm 事先要给它们留 好位置。留多大的地方来存放它们? 2. 还要知道它们被存放在计算机内存的什么地方? 3. 数据 2 和 3.14159 与 r 、cm 不一样,它们是 在编写程序时就给出确定的值,在运算过程中不会改变。 这样的数计算机应该怎么处理? 4. 数 2 和 3.14159 一个是整数、一个是小数,计 算机存放它们是需要不需要区别? 什么是数据和数据类型什么是数据和数据类型 计算机基础教学部 /cyysj 基本数据类型 数据属于不同类别 Africa The quick brown fox TRUE 数据 非数值数值 整型非整型 9002.12 999 9/12/2003 2.175 123 Jackie Chan char 数据类型 非数值数值 整型 int short int long int double float 非整型 计算机基础教学部 /cyysj 数据类型(Data Type) 数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类 计算机基础教学部 /cyysj 2.2 常量与变量 2.2.1 常量 在程序运行过程中,其值不能被改变的量称为常量 常量区分为不同的类型: 整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 a, b,2 说明:说明:符号常量(又称宏名、宏常量) 为了使用方便,可用一个符号名来代表一个常量。 计算机基础教学部 /cyysj 符号常量宏常量 #define 标识符 字符串 宏常量( 宏名) 也称符号常量 一般采用全大写字母表示 宏定义不是语句,而是一种编译预处理 命令 计算机基础教学部 /cyysj 例:计算圆的周长和面积 #include #define PI 3.14159 #define R 5.3 main() printf(“area = %fn“, PI * R * R); printf(“circumference = %fn“, 2 * PI * R); area = 88.247263 circumference = 33.300854 相当于执行 #include main() printf(“area = %fn“, 3.14159 * 5.3 * 5.3); printf(“circumference = %fn“, 2 * 3.14159 * 5.3); 宏替换宏替换 计算机基础教学部 /cyysj 2.2 常量与变量 2.2.2 变量 变量代表内存中具有特定属性的一个存储单元,它 用来存放数据,也就是变量的值,在程序运行期间 ,这些值是可以改变的。 变量名实际上是一个以一个名字对应代表一个地址 ,在对程序编译连接时由编译系统给每一个变量名 分配对应的内存地址。从变量中取值,实际上是通 过变量名找到相应的内存地址,从该存储单元中读 取数据。 计算机基础教学部 /cyysj 常量 在程序运行过程中其值不改变的数据,是常量 。 变量 在程序运行过程中,其值改变的数据,称之为 变量,给变量一个名称,就是变量名。 变量名和内存中的存储单元相对应。 编写程序时通过变量名来存、取存储单元。 2.2 常量与变量 计算机基础教学部 /cyysj 2.2.2 变量 用来标识对象名字(包括变量、函数、数组、类型 等)的有效字符序列 。 C语言中,有3类标识符:关键字,系统预定义的标 识符 ,用户标识符。 变量的名字必须符合C语言对标识符的规定。 C语言规定标识符只能由字母、数字和下划线三种 字符组成,且第一个字符必须为字母或下划线。 2.2 常量与变量 计算机基础教学部 /cyysj 变量命名的规定:变量的名字必须符合C语言对标 示符得规定 例:sum,_total, month, Student_name, lotus_1_2_,BASIC, li_ling M.D.John, ¥123, 3D64, ab 2.2 常量与变量 计算机基础教学部 /cyysj 注意:注意: 编译系统将大写字母和小写字母认为是两个不同 的字符。 建议变量名的长度最好不要超过8个字符。 在选择变量名和其它标识符时,应注意做到“见 名知意”,即选有含意的英文单词 (或其缩写) 作标识符。 要求对所有用到的变量作强制定义,也就是“先 定义,后使用” 。 2.2 常量与变量 计算机基础教学部 2.3 整型数据 整数类型的有关数据: 类型类型 类型说明符类型说明符 长度长度 数的范围数的范围 基本型基本型 intint 2 2字节字节 -32768-327683276732767 短整型短整型 short 2short 2字节字节 -2-215 15 2 2 1515-1 -1 长整型长整型 long long 4 4字节字节 -2-231 31 2 2 3131-1 -1 无符号整型无符号整型 unsigned unsigned 2 2字节字节 0 06553565535 无符号短整型无符号短整型 unsigned short unsigned short 2 2字节字节 0 06553565535 无符号长整型无符号长整型 unsigned long unsigned long 4 4字节字节 0 0(2 232 32-1 -1) 4字节 2字节 4字节 4字节 2字节 4字节 VC+6.0系统下: 计算机基础教学部 b, B, KB, MB, GB, TB 一个位(bit)有多大? 只能是“0”或者“1”,这叫二进制 一个字节(Byte)有多大? 有8位 保存一个字符(英文字母、数字、符号) ASCII(美国标准信息交换码)编码 两个字节保存一个汉字 GB编码 计算机基础教学部 b, B, KB, MB, GB, TB Megabyte(MB),中文叫法:兆 Kilobyte(KB),中文叫法: K Byte,中文叫法:字节 bit,中文叫法:位 Gigabyte(GB),中文叫法:G Terabyte(TB),中文叫法:T 1 TB 1 TB = 1,024 GB1,024 GB 1 GB1 GB = 1,024 MB1,024 MB 1 MB1 MB = 1,024 KB1,024 KB 1 KB1 KB = 1,024 B1,024 B 1 B 1 B = 8 b8 b计算机基础教学部 /cyysj 使用整型变量 声明: int number; long sum; unsigned age; 可按如下方式初始化: 在同一语句中可以声明多个类型相同的变量: int page, height, width; 三种整型常量(整常数)表示 法: 十进制 :16 八进制 :016 十六进制 :0x16 定义时初始化变量: int number = 36; 定义后初始化变量: long sum; sum = 57; 计算机基础教学部 /cyysj 整型数据的溢出 #include void main() int a2147483647,b; b=a+1; printf(“%d,%dn”,a,b); 说明:说明:数值是以补码表示的。一个整型变量只能容 纳-21474836482147483647范围内的数,无法表 示大于2147483647或小于-2147483648的数。遇此 情况就发生“溢出”。 运行结果: 2147483647,-2147483648 计算机基础教学部 /cyysj 使用变量要注意 不要对变量所占的内存空间字节数想当然 用sizeof获得变量或者数据类型的长度 现场演示程序在Turbo C2.0和Visual C下 的运行结果 注意!注意! printf(“int=%d”, sizeof(int); 计算机基础教学部 /cyysj 变量声明 使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数 char esc = a; int i = 1; int sum = 0; float eps = 1.0e-5; 计算机基础教学部 /cyysj 2.4 浮点型数据 2.4.1浮点型常量的表示形式 两种表 示形式 十进制小数 指数 0.123 3e-3 注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数 1e31e3、1.8e-31.8e-3、-123e-6-123e-6、-.1e-3-.1e-3 e3e3、2.1e3.52.1e3.5、.e3.e3、e e 计算机基础教学部 /cyysj e指数 规范化的指数形式: 在字母e(或E)之前的小数部分中,小数点左边 应有一位(且只能有一位)非零的数字. 例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.23456e3称为“规范化的指数形式”。 计算机基础教学部 /cyysj 单精度浮点型 float 在 C 语言中用于存储单精度浮点数 float 32 位10-38 至 10+38 ,7位有效数字 float price; price = 11.3; 两种浮点型(实数)常量表示法: 十进制形式 :41.235, -12.0, .5 指数形式 :2e4, 1.8e-3, -123e-6, 3.5e+4 计算机基础教学部 /cyysj 双精度浮点型 内存 float double 213.5671435568967 64位 取值范围:10-308 至 10308 16 位有效数字 double pressure,d=35.4; pressure = 213.5671435568967; 计算机基础教学部 /cyysj 在线保险单在线保险单 年龄:_ 保险总额:_ 性别:_ 2.5 字符型数据 23 98340 M int/float char 计算机基础教学部 /cyysj 5 p $ “2“ 2 正确正确 2 + 2 = 4 计算机基础教学部 /cyysj 声明: char sex; 初始化: sex=m; char sex=m; 字符在内存中按照ASCII码存放的; 计算机基础教学部 ASCII码表 计算机基础教学部 /cyysj ASCII码表 值符号值符号值符号 0空字符44,91 32空格45-92 33!46.93 34“47/94 35#48 570 9 95- 36$58:96 37%59;97 122a z 38 ; xhhxhh用16进制表示字符c=c=x41x41; ; 转义字符 计算机基础教学部 /cyysj 例 转义字符的使用 #include void () printf(abc); printf(nabc); printf(ab c); 显示屏上的运行结果: abc abc abc 计算机基础教学部 /cyysj 在0255范围内,字符型数据和整型数据是通用的。字符 型数据可以以字符形式输出,也可以以整数形式输出 main() char c1,c2B; int a1; c1=97; a1=b-32; printf(“%c,%dn“,c1,c1); printf(“%c,%dn“,a1,a1); 运行结果: a,97 B,66 字符型数据和整型数据通用 计算机基础教学部 /cyysj 用双引号括住的由0个或多个字符组成的字符序列 “I am a string“ “表示空字符串 除注释外,是唯一可以出现中文的地方 C语言内部用0表示字符串的结束 “x“和x是不同的 里定义了一系列专门的字符串处理函数 转义字符也可在字符串中使用 字符串“t“NameAddressn“的长度? 15 字符串常量 计算机基础教学部 /cyysj 2.6 各类数值型数据间的混合运算 混合运算:整型(包括int,short,long)、浮点 型(包括float,double)可以混合运算。在进 行运算时,不同类型的数据要先转换成同一类 型,然后进行运算. 说明: 这种类型转换是由系 统自动进行的。 计算机基础教学部 /cyysj 2.7 算术运算符和算术表达式 算术 一元 二元 操作数操作数运算符 5/3=? 5%3=? 计算机基础教学部 /cyysj 2.7 算术运算符和算术表达式 基本的算术运算符: (加法运算符,或正值运算符。如:、 ) (减法运算符,或负值运算符。如:、 ) * (乘法运算符。如:*) (除法运算符。两个整数相除的结果为整数两个 整数相除的结果为整数,如:/结果为) (模运算符,或称求余运算符,两侧均应为整 型数据,如:53的值为2)。 计算机基础教学部 /cyysj 算术运算符 算术 一元 - + num+ num=num+1 num- num=num-1 +num -num num+ num- 前缀后缀 二元 计算机基础教学部 /cyysj 算术运算符 算术 一元 - + num+ num=num+1 num- num=num-1 +num -num num+ num- 前缀后缀 二元 计算机基础教学部 /cyysj 算术运算符 表达式如何计计算 结结果 (num1=5) num2 = +num1; num2 = num1+; num2 = -num1; num2 = num1-; num1 = num1 + 1; num2 = num1; num2 = num1; num1 = num1 - 1; num1 = num1 - 1; num2 = num1; num2 = num1; num1 = num1 + 1; num2 = 6; num1 = 6; num2 = 5; num1 = 6; num2 = 4; num1 = 4; num2 = 5; num1 = 4; 计算机基础教学部 /cyysj 增一和减一运算符 良好的程序设计风格提倡:在一行语句 中,一个变量只能出现一次加1或者减1 运算 过多的加1和减1运算混合,不仅可读性 差,而且因为编译器实现的方法不同,导 致不同编译器产生不同的运行结果 计算机基础教学部 /cyysj 优先级 C语言规定了各种运算的优先级。 优先级的规定符合思维习惯。 例如在算术运算中,先 * / 后 + -。 利用()提高程序的可读性,并减少出错的 概率。 结合性 多数运算符为左结合 少数为右结合: 赋值运算符 条件运算符 运算符的优先级和结合性 计算机基础教学部 /cyysj 3.3.1 赋值表达式 赋值运算符: l说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 例: 3=x-2*y; a+b=3; 例: a=5 a=5+(c=6) a=5+c=6 赋值转换规则:使赋值号右边表达式值自动转换成其左 边变量的类型 例 float f; int i; i=10; f=i; 则 f=10.0 例 int i; i=2.56; /结果i=2; 注意:调整 教学顺序 计算机基础教学部 /cyysj 复合赋值运算符: += = *= a += a -= a * a; (1) a = a - a * a = -132 (2) a = a + ( -132 ) =-132 -132 =-264 a += b a = a + b 赋值运算 计算: int a=2; a%=4-1; a+=a*=3; 计算机基础教学部 /cyysj 类型转换 自动类型转换 原则:把表示范围小的类型的值转换到表 示范围大的类型的值 short int long float double 强制类型转换(Casting) 语法:(类型名) 变量或数值 消除从大到小的警告 int x; float y=3.14; x=(int)y; 计算机基础教学部 /cyysj Example: int total, number; float average; average = total / number; 15 / 2 15 / 2 7 7 total15 number2 average?7.000000 类型强转(Casting) 两个整数运算的结果 还是整数,不是浮点数 计算机基础教学部 /cyysj Example: int total, number; float average; average = (float)total / number; 15.000000 / 2 15.000000 / 2 7.500000 7.500000 total15 number2 average?7.500000 类型强转(Casting) 计算机基础教学部 /cyysj 可以通过“(类型)表达式”的方式把表达式的 值转为任意类型 强转时,你必须知道你在做什么 强转与指针,并称C语言两大神器,用好 了可以呼风唤雨,用坏了就损兵折将 屠屠 龙龙 刀刀 倚倚 天天 剑剑 类型强转(Casting) 计算机基础教学部 /cyysj 2.8 逗号运算符和逗号表达式 逗号运算符:将两个表达式连接起来,又称为“顺序求 值运算符”。 如:5, 一般形式: 表达式,表达式 求解过程: 先求解表达式,再求解表达式。整个逗号 表达式的值是表达式的值。 优先级: 自左向右 逗号表达式 的值为14 计算机基础教学部 /cyysj 2.8 逗号运算符和逗号表达式 例:逗号表达式*5,* 分析:赋值运算符的优先级别高于逗号运算符, 因 此应先求解*5。 的值为5,然后求解* ,得。整个逗号表达 式的值为。 一个逗号表达式又可以与另一个表达式组 成一个新的逗号表达式。

温馨提示

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

评论

0/150

提交评论