大学计算机基础课件第二章.ppt

上传人:sh****n 文档编号:7430966 上传时间:2020-03-21 格式:PPT 页数:34 大小:817KB
返回 下载 相关 举报
大学计算机基础课件第二章.ppt_第1页
第1页 / 共34页
大学计算机基础课件第二章.ppt_第2页
第2页 / 共34页
大学计算机基础课件第二章.ppt_第3页
第3页 / 共34页
点击查看更多>>
资源描述
1 第二章基本数据类型 运算符和表达式 2 1数据类型2 2变量和常量2 3运算符和表达式2 4指针2 5typedef语句2 6应用举例 2 2 1数据类型 程序中要对各种各样的数据进行描述和操作 用到的数据都必须指明其类型 数据类型的作用 指出了应为数据分配的存储空间的大小规定了数据所能进行的操作 数据类型 基本类型 构造类型 整型 int 实型 字符型 char 布尔型 bool 空类型 void 单精度型 float 双精度型 double 指针数组结构型 struct 共用体 union 枚举 enum 类 class 3 2 2变量和常量 1 变量的定义程序运行过程中其值可变的量 定义方式如下 C C 规定 程序中所有变量必须先定义后使用 可及时发现录入错误 如 定义的变量为data 而程序体中使用变量为date 同时还可限制非法运算 如 a b 若a b为float类型则出错 C 中变量可随时使用 随时定义 例如 inta b 定义变量a和b为整型 floatx y 定义变量x和y为单精度实型 数据类型变量名表 2 2 1变量 4 2 变量的初始化变量必须先有确定的值后才能参与各种相应的操作 变量获取值的途径有三 通过输入语句输入 如 cin a 通过赋值语句赋值 如 a 3 通过初始化方式赋初值 如 intk 3 所谓初始化是指在定义变量的同时指定变量的初值 形式有二 例如 intk 3 m 3 n 3 intk m n 3 不允许为多个变量同时初始化 数据类型变量名 表达式 数据类型变量名 表达式 5 3 变量引用 C 中增加了 引用 这一概念 许多地方可以代替指针实现相应的功能 比指针更安全 所谓引用即给一个已知变量起个别名 系统不为引用另外开辟内存 而是与原变量共享同一段内存 引用好比是一个虚拟的变量 声明形式为 数据类型 引用名 已定义的变量 如 inta 3 你知道此时a的值为多少吗 6 2 2 2常量在程序运行过程中其值不能改变的量 有值常量和符号常量两种 1 整型常量 7 2 实型常量十进制小数形式 由正负号 数字和小数点组成 如1 25 1 25 17 和 1指数形式 由尾数 指数符号e 或E 及指数构成 其中指数必须是十进制整数 如1 25e 5 1e10 1 25e5 注意 e前面不能没有数字 e后面的数字必须为整数 也不能加园括号 如1E 3 E 5 1e2 1都是错误的 8 3 字符常量C C 提供了两类字符型常量 普通字符常量 用单引号括起来的一个字符 如 A 0 转义字符常量 以 反斜杠 开头的用单引号括起来的字符序列 如 n t x61 等 常用的转义字符见p26 注意 0 表示ASCII码为0的字符 它是一个空字符 注意其与 0 的区别 后者表示的是ASCII码为48的数字字符 字符型数据在内存中以ASCII码存储 故整型数据和字符型数据在一定范围内可以通用 如 x a 2 printf d a 9 4 字符串常量字符串常量是用双引号括起来的字符序列 系统在字符串常量最后自动加字符串结束符号 0 例如 字符串 A 的存储形式 字符 A 的存储形式 5 符号常量是以标识符形式出现的常量 作用是便于程序阅读和修改 C 中用define命令或关键字const定义符号常量 形式如下 A 0 A 内存中实际存放的是这些字符的ASCII码 define标识符常量值const数据类型标识符 常量值 或 10 注意 习惯上符号常量名大写 而变量名小写 以示区分 符号常量虽然用标识符来标识 但本质上是常量 具有常量值不能改变的性质 definePI3 14 constdoublePI 3 14 include iostream h voidmain floatr 3 0 s l l 2 PI r s PI r r cout l l s s endl 例2 1 1 演示不同精度圆周率的程序运行结果2 观察编译中的 警告 对程序运行的影响3 消除 warning 的方法 11 2 3运算符和表达式 2 3 1基本概念 运算符具有三个属性 优先级 指运算的先后次序 共分15个级别 见p27表1 2 4 结合性 指相同优先级运算符连续出现时的计算顺序 分自左向右和自右向左两种 除特别声明外 皆指自左向右 目数 指运算符要求的操作数的个数 包括单目 双目和三目 一般目数越少 优先级越高 表达式 由常量 变量 函数调用和运算符按一定规律组合在一起构成的式子 如 a 14 3 2 sqrt 17 12 2 3 2运算符1 算术运算 种类 加法或取正 减法或取负 乘法 除法 求余数 自增 自减 其中 和 的结合性则是自右向左优先级 从高到低 正 负 加 减 13 说明 在除法运算中 当两个操作数都是整数时 商也为整数 小数部分一律舍去 如 1 201 0 20 5 求余运算 要求两个操作数都是整型 结果为整除后余下的整余数 自增 自减运算符 i i 在使用i之前 先使i的值加减1 i i 在使用i之后 使i的值加减1 若i的值为3 则 j i j的值为4 i的值为4j i j的值为3 i的值为4 注意 自增 自减运算符只能用于变量 而不能用于常量和表达式 5 a b 14 2 关系运算 种类 大于 等于 大于等于 不等于 优先级 从高到低 关系运算描述的是一种 判断关系 其结果有 真 true 和 假 false 两种 用 1 代表 真 用 0 代表 假 例如 5 3的结果为1 a B 的结果为0思考 x为0到100之间的数能否表示为0 x 100 15 3 逻辑运算 种类 逻辑与 逻辑或 逻辑非 优先级 从高到低 其中 是单目运算符 优先级高于算术运算符 和 低于关系运算符 逻辑运算通常用来连接关系运算 逻辑运算符两端的操作数如为 非 就当作 真 来处理 如果是 便当作 假 来处理 逻辑运算的结果也只有0 false 和1 true 两种 16 说明 当多个 连续出现时 如表达式 表达式 表达式 从左到右 只要一个操作数为0 结果就为0 不进行后续运算 当多个 连续出现时 如表达式 表达式 表达式 从左到右 只要一个操作数为1 结果就为1 不进行后续运算 17 include iostream h voidmain intm n 10 m 2 例2 2 1 分析运行结果2 改为m 0 n 结果又如何 4 条件运算形式 e1 e2 e3一般而言 e1为条件表达式 当其成立时 将e2的值作为整个表达式的值 不再计算e3的值 否则取e3的值作为整个表达式的结果 而不计算e2的值 18 如 max x y x y 将 和 中较大的一个数赋值给变量max条件运算符的结合性是由右向左思考题 对n 0 个人进行分班 每班k 0 个人 最后不足k人也编一班 问要编几个班 试用条件运算符表达 n k 0 n k 1 n k 5 赋值运算格式 作用 将一个数据赋给一个变量 并以变量的值作为整个式子的值 变量赋值运算符表达式 19 其中赋值运算符可以是 也可以是复合赋值运算符 如 和 等等 复合赋值运算符的等价形式 以 为例 例如 b a 2等价于 b b a 2 结合性自右向左若两端类型不同 则系统自动将右端类型转换为左端类型 例如 有定义inta 3 78 则a中存放的值为3左端只能是变量 或数组元素 不能为表达式或常量 如 a 2 b a b 2 c 5 变量 表达式 变量 变量 表达式 是一个整体 20 6 逗号运算形式 e1 e2 e3 其中e1 e2 e3均为表达式 从左向右依次计算各个表达式的值 而将最后一个表达式的值作为整个表达式的值 逗号运算符常用于循环语句的表达式中 将多个表达式连接成一个表达式 如 for i 0 j n i j i j 逗号运算符的优先级别最低 21 7 数据类型的转换数据类型的转换分为显式 强制 转换和隐式 自动 转换 强制转换格式 或 将一种数据类型的值强制转换为另外一种数据类型 常用于对函数的参数及返回值的操作 假设 为float型数据 则 int x y 强行将 的值转换成整型 x和y仍为float型 自动转换 在不同类型数据进行混合运算时 系统自动进行的类型转换 类型名 表达式 类型名 表达式 22 charshortint unsigned long unsignedlong float double longdouble 必定的转换 混合运算时由低向高转换 自动转换还包括赋值运算时赋值号右端类型向左端类型的转换 8 内部函数C C 中提供了多种内部函数供用户编程序时直接调用 只需把包含内部函数的头文件 通过 include预处理命令装入到程序中 例如 程序中要使用平方根函数sqrt 应该在程序加入 include math h 23 2 4指针 1 基本概念每个变量在内存中存放都对应一段地址 第一个字节的地址就是变量的地址 将存放地址的变量称为指针变量 x就是变量的地址 24 取内容 地址 表示根据地址取内容如图中所示 p就是一个指针 存放x的地址 p指向x p的值为4 p就是x 出现x的地方可以用 p代替 出现 p的地方可以用x代替 1001 4 p x 25 2 定义及初始化 定义例如 int p float q 指针所指对象的类型 初始化在定义的同时赋初值 称为指针变量的初始化 例如 floatd 1 5 p 注意不能写做 p d 数据类型 标识符 不是指针名的一部分 d 1 5 p d 26 假定有定义 int p a p NULL 指针的值为NULL 0 表示不指向任何对象 p 3 运算赋值运算 27 算术运算p n 或p n p n 指向后面的第 个元素 p n 指向前面的第 个元素 p n的值为 p的值 n sizeof p指向的类型 如 有定义 inta p 假设a的地址为1000 则 p的值为1000p 3的值为 1000 3 sizeof int 1000 3 4 1012 28 自增 和自减 p p p p自增或自减后p指向前一个或后一个元素指针相减两个类型相同的指针可以相减 结果为这两个地址差之间能够存放的数据个数 数据类型为指针所指的类型 如 有定义 int p1 p2 假设p1指向1000 p2指向1008 则p2 p1的值为 1008 1000 sizeof int 2 p p pp p p p 29 4 new和deletenew运算符形式 指针 new数据类型 指针 new数据类型 初值 或 30 delete运算符用于释放用new申请的动态存储空间 形式为 delete指针 delete 指针 或 无需指明数组长度 只能释放由new申请的动态变量 例 inta 3 p 31 2 5typedef语句 形式 typedef数据类型新的数据类型名 该语句作用是为已有的数据类型定义新的名称 使其更符合Windows系统中的相关对象的含义 可以像标准C 中的数据类型一样使用这些新定义的类型 如 typedefcharCHAR CHARc1 等价于charc1 32 2 6应用举例例2 3用 代码表达下列命题 1 能且只能被 和 中的一个数整除 解 或2 ch是大写字母 解 思考 上述命题可否描述为 A ch Z 为什么 m 3 0 m 2 0 m 2 0 m 3 0 m 3 0 m 2 0 ch A ch Z 33 include iostream h include iomanip h include math h voidmain floata b c doublel s cout c a b sqrt c c a a sqrt为内部函数 对其的说明包含在头文件math h中l a b c s a b 2 cout 计算结果 endl cout setw 8 另一直角边 b endl setw 11 周长 l endl setw 11 面积 s endl 例2 4编写程序 要求输入直角三角形的斜边和一条直角边 求三角形另外一条直角边 周长和面积 程序 输入 已知 处理 根据已知求未知 输出 结果 编程过程 34 include iostream h include math h include iomanip h voidmain intc1 c2 c3 charc4 intx cin x c4 x 0 x的符号存入c4x abs x 求整型数x的绝对值c3 x 10 x 10为个位数字x x 10 c2 x 10 c1 x 10 cout 数符百位数十位数个位数 endl cout setw 2 c4 setw 8 c1 setw 8 c2 setw 8 c3 endl 例2 5编程输入一个三位整数 依次输出该数的正 负 号和百位 十位 个位数字 程序 分离出符号位后分解各数位
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!