c语言第2章车辆类型运算符.ppt_第1页
c语言第2章车辆类型运算符.ppt_第2页
c语言第2章车辆类型运算符.ppt_第3页
c语言第2章车辆类型运算符.ppt_第4页
c语言第2章车辆类型运算符.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1 第三章 数据类型、运算符和表达式 数据类型 方炜炜 2 第三章 数据类型 运算符 表达式 1、什么是数据类型? 2、C语言的数据类型有哪些? 一、C的数据类型 3 第三章 数据类型 运算符 表达式 1、什么是数据类型? 数据结构+算法=程序 C语言中以 “数据类型”形式存在 对数据的描述对操作的描述 4 数据类型 基本类型 整型 字符型 实型(浮点型) 枚举类型 构造类型 数组类型 结构体类型 共用体类型 指针类型 空类型 单精度型 双精度型 第三章 数据类型 运算符 表达式 在程序中对用到的 所有数据都必须指 定其数据类型. ? 不同类型的数据,所占 内存的字节数不同, 对 应的操作也不相同。 2、C的数据类型 5 第三章 数据类型 运算符 表达式 1、 常 量 2、 变 量 二、常量与变量 6 常量举例(求某商品总价) #include /可用“stdio.h”也可用 #define PRICE 100 /定义符号常量 void main() int sum; sum=PRICE*20; printf(“%dn“,sum); 单价符 号常量 数量直 接常量 7 第三章 数据类型 运算符 表达式 概念 在程序运行过程中,其值不能被改变的量。 分类 字面常量(直接常量): 12 -44.6 a “Hello! “ 符号常量:用一个标识符代表一个常量。 字符串常量 符号常量 的定义 格式:#define 常量名 字面常量 举例:#define PRICE 100 #define PI 3.14 #define C1 a 习惯上常量名用大写, 变量名用小写。 符号常量的定义放在 函数外面。 1、常量 8 标识符 identifier 1、标识符就是一个名字(如常量名、变量名 、函数名)。 2、组成:只能由字母、数字、下划线组成。 且第一个字符必须为字母或下划线。 3、长度:标识符的有效长度随系统而异,如 果超长,则超长部分被舍弃。建议不要超过8 个字符。 4、标识符命名的良好习惯见名知意 例如,name(姓名)、age(年龄) 9 下列标识符是否合法,为什么? sum a1 b2 s_name 123 #ss a.b.c 1a8bc 思 考 ? 合法 不合法 10 第三章 数据类型 运算符 表达式 概念其值可以改变的量称为变量。 2、变量 要素 (1)变量名。每个变量都必须有一 个名字变量名,变量命名遵循标 识符命名规则。 (2)变量值。在程序运行过程中, 变量值存储在内存中。在程序中,通 过变量名来引用变量的值。 11 变量定义数据类型 变量名, 变量名2; int a1,a2; float x1,x2; double y1,y2; char c1,c2; 习惯上,变量名用小写字母。 常量名用大写字母。 12 方式: 1、定义变量的同时赋初值(也叫变量初始化)。 格式: 数据类型 变量名=初值, 变量名2=初值2; 2、通过一个赋值语句给变量赋初值。 格式 : 变量名=初值; 变量赋初值 int a,b=3; int a,b; b=3; int ab3; int a,b; ab=3; b : undeclared identifier 13 1、程序中用到的变量必须“先定义(declare),后使 用”。 2、C语言的关键字不能用作变量名(书P375)。 3、C语言对英文字母的大小写敏感,即同一字母的大 小写,被认为是两个不同的字符。 4、定义变量时,给几个变量赋相同的初值, 应写成 : int a=3,b=3,c=3; 不能写成: int a=b=c=3; 5、给变量赋值时,正常情况下应给变量赋相同类型 的数据。 关于变量以及变量赋初值的几点说明 14 变量举例 include void main() int student,age; int if=adrress=1; float score=90; stadent=2; Age=20.7; printf(“%d %d %d %f“,if,student,age,score); 本程序中有几 处错误? 1、if:为关键词 2、int if=address=1;应分别赋初值。 3、stadent:未定义的标识符,拼写错误 4、Age:未定义的标识符,大小写敏感。 对score和age赋值时会自动进行类型转化。 9090.0;20.720 15 第三章 数据类型 运算符 表达式 1、整数类型 2、实数类型 3、字符类型 4、不同类型数据间的转换 四、基本数据类型 16 第三章 数据类型 运算符 表达式 1、整数类型变量 分类及取 值范围 类型比特数范围 int signed int 16 -3276832767(215-1) unsigned int 16 065535 short int signed short int 16 -3276832767(215-1) unsigned short int 16 065535 long int signed long int 32 -2147483648 2147483647 unsigned long int 32 04294967295 表示可以省略 占用的内存字节数 ,随系统而异。 思考:下列定义正确的是: int i=9.4; unsigned short i=-4; long i=3; 17 第三章 数据类型 运算符 表达式 表示方法 十进制: 123, -456, 0 八进制: 0123, -0456, 十六进制: 0x123, -0x456 以数字0开头 以0x开头 整数类型常量 分类 基本整型(数据范围与int型一样) 长整型 (在数值后面加“L(l)”, 数据范围与long int型一样) 无符号整型(在数值后面加“U(u)”) 如123l,315L 类型匹配 规则 一个整型常量,可以赋给能容纳下其值的整型变量 思考:下列常量哪些合法: 029,19u, -1234, 20L 029是非法数,19u错误 18 表示方法 十进制小数形式: 123. 34,-0.0045, 0.0 指数形式: E(e) 如2.3e2 ,-4.5e-3, 3.0+5 规范化指数形式 数字和小数点组成 实数类型常量 规范化指数: 字母e之前必须有数字,且小数点左边应有一位【且只有一位】非0 数字,如0.45e2或45e1是错误的。 字母e后指数部分必须为整数,如4.5e2.4是错误的。 2.3e2=2.3102=230 e表示10 思考:以下不是规范化指数形式的是: 4.5e-23 , 0.34e9 33e+4 19 第三章 数据类型 运算符 表达式 分类及取 值范围 类型 比特数 有效数字 数值范围 float 32 67 10-371038 double 64 1516 10-30710308 long double 128 1819 10-4931104932 2、实数类型变量 20 实数类型舍入误差 例题: #include “stdio.h” Void Main() float a,b; a=123456.789e5; b=a+20; printf(“%f”,a); printf(“%f”,b); a=12345678900; b=12345678920; Float有效位数7位 12345678848.000000 12345678848.000000 应避免将一个大数和一个很小的数相加减,会丢 失小的数,如1.0 / 3 * 3 的结果就不等于1 21 第三章 数据类型 运算符 表达式 表示方法用单引号括起来的一个字符. a A 9 = ? 不同的两个字符 转义字符 字符形式 含义 (P28) n 换行,从当前位置移到下一行开头 t 水平制表(跳到下一个tab位置) b 退格,将当前位置移到前一列 r 回车,将当前位置移到本行开头 单撇号字符 反斜杠字符 “ 双撇号字符 ddd 13位8进制数所代表的字符 xhh 12位16进制数所代表的字符 3、字符类型常量 语言还允许使用一种特殊形式的字符常量,就是以反斜 杠 开头的转义字符。 将后面的字符转换 为另外的意义.即是 一种控制符号. 22 字符类型变量 存储方式 以ASCII码 存储,占一个字节 类型及范围char 大小写英文字母,数字,运算符,标点符号等 不能在一个字符变量中放一个字符串 注意:字符型数据与整型数据在存储方式上的 相似性使得两者之间可以通用。但字符型数据 的表示范围是:0255。 举例 字符变量ch中存放字符a,其ASCII码为97, 在内存中以二进制形式存放,其格式如下: 0 1 1 0 0 0 0 1ch 23 例 字符变量的字符形式输出和整数形式输出。 P291 ASCII码 #include void main() char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%d,ch2=%dn“,ch1,ch2); printf(“ch1=%c,ch2=%cn“,ch1 -32,ch2); 字符类型举例1 一个字符型数据,既可以字符形式输出,也可以整数形式输出 字符数据进行算术运算,就是对它们的ASCII码值进行算术运算 ch1=97,ch2=98 ch1=A,ch2=b 程序运行结果: 24 字符类型举例2 字符数据与整型数据可以互相赋值 例字符数据的算术运算(参考教材 的ASCII码表)。 #include void main() char ch1; int i; i=a; ch1 =97; printf(“ch1=%c,ch1=%dn“,ch1, ch1); printf(“i=%c,i=%dn“,i, i); ch1=a,ch1=97 i=a,i=97 程序运行结果: 25 概念 字符串常量 用一对双引号“ “括起来的若干字符序列 字符串 长度 字符串中字符的个数。长度为0的字符串(即一 个字符都没有的字符串)称为空串,表示为“ (一对紧连的双引号)。 26 字符串“CHINA“在内存中的实际存储形式是怎样的?占 用多少个字节的内存空间? CHINA0 占用字节而 非字节内存 空间 存储方式C语言规定:在存储字符串常量时,由系统在 字符串的末尾自动加一个0作为字符串的结束 标志。( 以便系统判断字符串是否结束) 27 注意: 1、a是字符, “a“是字符串。 2、 不能把一个字符串赋给一个字符变 量 。如c=“a“、c=“Hello! “都是错误的。 3、C语言中没有字符串变量,可以用字符 数组来表示。 c=a占内存1字节,“a”占 2字节 28 总结:字符与字符串的区别有哪些? 定界符不同:字符常量使用单引号,而字符串 常量使用双引号; 长度不同:字符常量的长度固定为1,而字符串 常量的长度,可以是0,也可以是某个整数; 存储要求不同:字符常量存储的是字符的ASCII 码值,而字符串常量,除了要存储有效的字符外 ,还要存储一个结束标志0。 29 数据类型 常量 变量定义 注意事项 整型 45 int a; 小于32767 实型 4.5 float b; 输出保留小数点6位 字符 a char c; c=a;c=65;对 c=“a”错误 字符串 “a” 用数组 所占存储空间 长度1 30 第三章 数据类型、运算符和表达式 运算符和表达式 方炜炜 31 第三章 数据类型 运算符 表达式 (1)算术运算符和算术表达式 (2)赋值运算符和赋值表达式 (3)逗号运算符和逗号表达式 32 第三章 数据类型 运算符 表达式 基本算术运算符 + - * / % 例1 5/3=1 -5/3=-1 5%3=2 模运算符或求余运算符 算术表达式 用算术运算符和括号将运算对象(也称操作数)连接起来的 、符合C语法规则的式子。 优先级和结合性 先乘除、后加减,有括号先算括号。 自左至右 两个整数求/ 的结果为整数,向0取整 两边必整数 常量、变量等 33 举例:已知三角形的边长a、b、c,求三角 形周长的一半。 #include void main() float a,b,c,s; a=3;b=4;c=5; s=1/2 * (a+b+c); printf(“s=%8.2f“,s); s= 0.00 程序运行结果: ? s= 6.00 程序运行结果: 改为:1.0/2 (1/2.0) 34 第三章 数据类型 运算符 表达式 自增、自减 运算符 作用:使变量的值增1或减1。 格式: +i , -i (先使i的值加1(减)1 ,再使用i) i+ , i- (在使用i之后,使i的值加1(减)1) 例3 i=3; A) j=+i; B) j=i+; i=i+1i=i-1 ? j,i A) j=4 i=4 B) j=3 i=4 35 第三章 数据类型 运算符 表达式 例4 i=3; a=i+; b=i+; c=a+b; ? c, i c=7 i=5 i=4 说明 1、自增运算符和自减运算符只能用于变量 而不能用于常量和表达式。 2、使用+和-时,常会出现一些人们“想不 到”的副作用,初学者要慎用。 36 第三章 数据类型 运算符 表达式 赋值运算符 简单:= 复合:+=, -=,*=,/=,%= 赋值表达式 类型转换 条件:当赋值运算符两侧的类型不一致时 原则:以变量类型为准。 例1 float a; int b; a=1.2; b=a*3; ? b b=3 例2 a+=3; x*=y+8 a=a+3; x=x*(y+8) 例3a=b=5; a=7+(c=8) ? a,b,c a=5 ;b=5

温馨提示

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

评论

0/150

提交评论