已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 数据类型与表达式,3,教学目标,(1) 掌握基本数据类型的含义及其定义方法; (2) 理解常量和变量的概念及类型说明方法; (3) 掌握算术、赋值、关系、逻辑及其他运算符和表达式的使用方法。,4,基本内容,2.1 数据类型 2.2 常量和变量 2.3 运算符与表达式,5,2.1 数据类型,数据 程序的主要任务是对数据进行处理,而数据有多种类型,如数值数据、文字数据、图像数据以及声音数据等。 不同类型的数据在存储器中存放的格式不同 程序中对各种数据进行处理之前都要对其类型 (也就是存储格式) 预先加以说明,其目的是: 便于为这些数据分配相应的存储空间 说明了程序处理数据时应采用何种具体运算方法,6,数据类型,计算机只能存放二进制数据。不同类型事物的数据如何区分和描述?由此产生数据类型。 不同类型的数据占据不同长度的存储单元。 不同类型的数据对应不同的值域范围。 不同类型的数据对应不同的操作(运算)及规则。 数据类型越丰富,求解能力越强大。,7,整 型,短整型 占用两个字节存储空间 -215215-1(-3276832767) 整型、长整型 占用四个字节存储空间 -231231-1,15,8,7,0,31,24,23,16,15,8,7,0,8,实 型,可采用浮点类型和双精度类型表示: 浮点类型 使用4个字节存放数据,10-381038, 有效数字7位 双精度类型数据 使用8个字节存放数据,10-30810308,有效数字15位,尾数部分,指数部分,31,24,23,16,15,8,7,0,浮点型存储格式,9,字符型、布尔型、无值型,字符型(char) 占用一个字节存储空间 27 271 (128 127) 布尔型(bool) 即逻辑型,占用一个字节存储空间,0表示false,1表示true 无值型(void) 值域为一空集,主要用来说明函数的参数或返回值类型,表示无参数或无返回值。,7,0,10,2.2 常量和变量,在实际数据处理过程中,有些数据经常变化,而有些数据不变化。 变化的量称变量,不变化的量称常量。,11,2.2.1 常量,整型常量 2进制常量 100100000000B,10B 8进制常量 04400,0777,0100 10进制常量 2304 16进制常量 0x900,0xABC,0xffff 实型常量: 有两种表示形式: 十进制形式: . 0.0, -2.68, 3.141593, 637.312, 32768.0, 指数形式: . 1.267E20, 1.2E-5 字符型常量 a, A, 1, , +, 字符串常量 “Visual C+“, “12.34“, “This is a string.n“, 布尔型常量:true 和 false,12,文字数据表示,文字数据有两种: 单个字符: 例如,A 、+ 、 0 、 实际存储的是其编码 可以用整数来表示ASCII码 字符串:例如,“This is a string . “ 如何存储?,13,ASCII码,共有128个,使用整数0127表示。 10个阿拉伯数字 52个英文字母 32控制字符(非显示字符) 34个特殊字符 ASCII码对应的字符 A的值65、a的值97(差是32) 问号?的值63、*的值42 回车键的值13、ESC键的值27 助记码 转义字符 n(换行), r(回车), t(横向跳格), (单引号), ,14,字符串存储方式,字符串“MONDAY”的存储方式,15,字符和字符串的区别,字符 是用单引号括起来的单个字符,它在存储器中占1个字节; 字符串 是用双引号括起来的一串字符,它在存储器中占n+1个字节,即字符串的结束符0也占1个字节的位置。 例如: A和“A”是有区别的;前者是字符常数,后者是字符串常数。,16,2.2.2 变量,定义: 其值可以改变的量称为变量。 变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。 在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。 用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。,变量命名规则 变量使用规则 变量初始化 变量引用 类型修饰符,17,(1)变量定义,变量的定义:用基本数据类型描述符来说明对象 变量类型 变量名表; 例: int i, j, k; /说明了3个整型变量 short len; /说明了1个短整型变量 float average; /说明了1个浮点类型的变量 double baseSalary, bonus, totalSale, additionalBonus, Salary; /说明了5个双精度类型的变量 bool sex; /说明了1个布尔型变量 char c1, c2; /说明了2个字符型变量,18,(2) 变量(标识符)命名规则,变量名只能由字母、数字或下划线组成; 变量名的第一个字符必须是字母或下划线; 变量名长度不能超过编译器规定的长度; 不要用保留字定义变量名。 合法变量名: a、 b1、 _area、m_nCount 不合法变量名: 1-name、 student one、 float,19,(3)变量使用规则,先定义,后使用 例如: int a,b,c; a=1;b=2;c= a+b; 下列用法是错误的(有几处?): #include using namespace std; int main() int a; cinb; int c=a+b; coutcendl; return 0; ,20,(4)变量初始化,变量初始化就是给变量赋初值,可采用以下任意一种方式: 先定义,再赋初值 例如: int sum,fac; sum=0;fac=1; 定义时赋值(有两种形式) 例如: int count = 0; 或 int count (0); char c=A; 或 char c(A);,21,(5) 类型修饰符,在基本数据类型前加类型修饰符,可以改变数据表示的范围。常用的有: unsigned 无符号 long 长型 short 短型 例如: unsigned char 表示范围变为0255 unsigned short int 表示范围变为065535,22,例2-4 整型数据的溢出,#include int main() short a, b; a=32767; b=a+1; cout“a=“aendl“b=“bendl; return 0; ,-,23,2.3 运算符与表达式,表达式是由运算符将运算对象 (如常数, 变量和函数等) 连接起来的具有合法语义的式子。 不同类型的表达式按不同运算规则进行计算。 计算结果是不同类型的值。,24,2.3.1 算术运算符和算术表达式,算术运算符: + - * / % 加 减 乘 除 整除取余 算术表达式: 由算术运算符组成的表达式。 运算对象:数值变量、常数、函数、表达式等 运算结果: 数值 优先级: 先乘、除、取余,后加、减 结合性: 从左至右 注意事项: x*-y 应写成 x*(-y) 6x 应写成 6*x 5X 2 应写成 5*X*X,25,自增、自减运算符,“+”和“-”是自增、自减运算符 i+ 等价于 i=i+1 i- 等价于 i=i-1 运算规则 只能用于变量和指针 合法: i+ ; 非法: +(a+b); 前缀形式 +(- -)V,先运算,再引用。 后缀形式 V+(- - ),先引用,再运算。,26,自增和自减运算符的用法,表达式 表达式的值 副作用 i+ i i的值增大1 i- i i的值减少1 +i i+1 i的值增大1 -i i-1 i的值减少1,27,例:+和-,假设a= 1: x = ( a+) * (a+) ,结果? x = ( a+) * (+ a) ,结果? x = (+ a) * (+ a) ,结果?,28,类型不同的数据之间的混合算术运算,不同类型的数据在参加运算之前会自动转换成相同的类型, 然后再进行运算。 转换的原则:由低级向高级转换 char - int - float - double 例2-1 算术运算 #include using namespace std; int main() int x=7, y=3; double d=7.0; coutx“/“y“=“x/yendl; /整数除法coutx“%“y“=“x%yendl; /整数求余 coutd“/”y“=”d/yendl; /double与int运算 return 0; ,29,2.3.2 关系运算符和关系表达式,关系运算符: = ,=,= 高于 = , != 赋值运算 关系运算 算术运算 运算对象:算术、关系、赋值、字符表达式,30,运算对象,算术表达式: x+y = x*y ; 关系表达式: (a b) = (c d); 赋值表达式: (x + = 3 ) = ( y- = 1); 字符表达式: a ! = A ;,31,运算规则,关系成立,结果为真(非0);否则,结果为假(0)。 例如: ,; = 结果为 结果为 a = b 结果为 a! = b 结果为 结合性:从左到右。,32,注意事项,在逻辑上必须正确,否则会出现不正确的结果。 例如: 1X 10 若写成 1=x=10,正确的写法是: 1 = x & x = 10,在语法上是正确的,但在逻辑上是错误的。 当 x= 8 时, 1 = x = 10 结果为1 当x= - 5时, 1 = x = 10 结果也为1,33,2.3.3 逻辑运算符和逻辑表达式,逻辑运算符: &(与) |(或) !(非) 逻辑表达式: 由逻辑运算符组成的表达式。 运算结果: 逻辑值(“真”和“假”) 优先级: ! & | 赋值运算 &、| 关系运算 算术运算 !,34,举例,xc或xb至少之一成立 x = b i和j均小于或等于100,或者i和j均大于k ( i k & j k ) 选所有未婚的 35岁以上男副教授和30岁以上女讲师 ! 婚否 & ( (性别=男& 职称=副教授& 年龄=35) | (性别=女& 职称=讲师& 年龄=30)),35,2.3.4 赋值运算符和赋值表达式,赋值运算符 = 赋值表达式 V = e 赋值表达式的值等于运算符右边的表达式的值 副作用是将表达式的值存入变量V。 复合赋值运算符 格式: V op = e 等价于: V = V op e 例如: a += 5, 等价于 a = a + 5 复合赋值运算符有 +=、- =、*=、/=、%=等10个,36,举例,i=j=m*n; 计算表达式m*n的值,将其结果存入变量j中,然后再将结果存入变量i中。 temp=a; a=b; b=temp; 交换a和b的值,temp是工作单元。 sum=sum+i;(等价于 sum+=i;) 计算sum与i的和,结果送sum。 stri = ch+A- a; 将字符变量ch转换为大写字母,结果存入数组stri中。,37,表达式中各运算符的运算顺序,C/+中的几十种运算符有严格、确定的运算符优先关系和运算顺序规则。,39,扩展阅读,2.4 常量修饰符 2.5 强制类型转换运算符 To be continue,40,2.4 常量修饰符,直接常量:其本身的书写格式就说明了该常数的类型 符号常量 用const定义的常量 const double pi=3.1415926; 用宏定义#define定义的常量;类似变量,但不是变量。 #define PI 3.1415926 #define MAXNUM 10000 可以出现在表达式中 f1= r * r * PI; 但是不能作左值,下列用法是错误的: PI = 1.0*3.14 ;,41,2.5 强制类型转换运算符,强制类型转换 C格式: (类型语句)e C+格式: 类型语句(e) 例: int i=1,j=2; double d; d = i / j; /结果d为0.0 d = (double) i / j; /结果d为0.5 d = double ( i ) / j; /结果d为0.5,42,上机指导,2.6 语法错误 查看和修改编译错误 查看和修改链接错误,43,应用举例,例2-5 温度转换:输入一个华氏温度,计算并输出对应的摄氏温度值。,#include using namespace std; int main() double c, f; coutf; c=5.0/9.0 * (f-32); /温度转换公式 cout“对应于华氏温度“f“的摄氏温度为“cendl; return 0; ,44,应用举例,例2-6 大小写转换: 输入一个字符,判断它是否为大写字母。如是,将其转换为对应的小写字母输出;否则,不用转换直接输出。 算法: 从ASCII码表知道,大小写对应字母之间的差值是32 如:A的值65、a的值97(差是32) 小写字母的ASCII码值 对应的大写字母的ASCII码值-A +a ,45,#include using namespace std; int main() char ch; coutch; if(ch=A ,46,应用举例,例2-7 转义字符的使用 #include using namespace std; int main() cout“Hellon“; /使用换行符 cout“1t2t3t4t5n“; /使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级制冷设备维修工实操考核试题及答案
- 水上与港口防火安全技术培训
- 宫颈癌和子宫肌瘤妇科腹部手术护理
- 防爆电气设备安装与使用常见误区及安全规范培训
- 调车员(山上、山下)安全操作规程培训
- 旅游开发对古建筑消防安全的影响与对策
- 刘家峡海事通讯网启动培训课件
- 2026-2027学年江苏常州金坛区高一上学期开学考物理试卷及答案
- (2026年)小学资助工作总结范文
- 2025年河南省新乡市延津县三年级数学下学期期末预测试题含答案
- GB/T 47962-2026移相变压器的应用、规范和试验导则
- 四年级上册教学计划2026-2027学年湘艺版四年级上册音乐
- 2026-2027学年第一学期新人教版六年级上册数学教学计划
- 新版部编人教版版五年级上册语文全册教案(完整版)教学设计含教学反思
- 煤矿注氮方案及安全技术措施培训课件
- 检验科危急值全流程管控
- 中国2型糖尿病防治指南2025版
- 核心素养导向的初中化学科普阅读题解析策略教学设计-以九年级下册为例
- 手动液压叉车安全操作规程
- TGDACM 0174-2026 中医技术操作规范 温通拨筋罐疗法
- 《电机与电气控制基础》中职全套教学课件
评论
0/150
提交评论