数据类型及运算规则.ppt

上传人:max****ui 文档编号:6781550 上传时间:2020-03-04 格式:PPT 页数:82 大小:434.50KB
返回 下载 相关 举报
数据类型及运算规则.ppt_第1页
第1页 / 共82页
数据类型及运算规则.ppt_第2页
第2页 / 共82页
数据类型及运算规则.ppt_第3页
第3页 / 共82页
点击查看更多>>
资源描述
1 通知 在计算中心机房 安排C语言集中上机 专人辅导 1 从第4周开始到第11周 每周1 周2的下午和晚上是C语言集中上机时间 不能做其他事 现场有老师辅导 其他时间没有辅导老师2 要求学生根据自己情况选一时间段到计算中心上机 学生凭机票入机房 课程内免费机票在学院领取 2 第三章数据类型与运算规则 3 本章要点 数据的描述规则数据的操作规则 第三章数据类型与运算规则 4 第 节第 节第 节第 节第 节第 节第 节 数据与数据类型基本数据类型及其表示算术运算与赋值运算关系运算与逻辑运算位运算其它运算混合运算及数据类型转换 第三章数据类型与运算规则 5 3 1数据与数据类型 程序设计语言的基本规则包括 常数变量运算符表达式函数 把自然语言描述问题的方式转换为C语言的形式表达给计算机 规则 6 问题 常数3 5和3 6的存放空间是否相同 变量a如何表示 如何存放 计算机如何知道3 6和a之间的关系 3 5和sinx如何输入 如何存放 计算机如何识别 运算结果放在哪里 计算机完成上述计算 首先要解决数据的输入和存放问题 7 程序的任务是对数据进行处理 数据是程序处理的对象 而运算符是施加给这些数据的操作 数据和运算符是表达式的基本元素 数据的存储数据的操作 8 C语言的数据类型 数据类型 构造类型 指针类型 空类型 无值类型 void 9 3 2基本数据类型及其表示 1 常量 在程序运行中 其值保持不变的量称为常量 整型100 125 100 0实型3 14 0 125 3 789字符型 a b 2 常量的表示方法 一 计算机语言表示数据的基本形式 10 2 变量 在程序运行过程中 其值改变的数据称为变量 变量通过变量名标识 变量名和内存中的存储单元相对应 编写程序时通过变量名来存 取存储单元 变量必须先定义 后使用 变量 8 1000H1001H1002H 256 12 11 1 变量名由字母A B Z a b z 数字0 1 9和下划线 组成 2 变量名的第一个字符必须是英文字母或下横线 3 不能用系统中的关键字作为变量名4 变量名中的字母是区分大小写的 sum stu name age Lts 1 2 a232c x y start 9 c2 0NAMEname表示两个不同的标识符 变量名的规定 12 C语言是一种强制定义型语言 因此 在C语言中 要求对所有用到的变量作强制定义 也就是说 所有变量应当先定义 后使用 以便编译系统在编译时对变量按其类型分配响应的存储单元 变量的定义 13 变量的定义格式 类型说明符变量名列表 例 inta b c charch floatx y 14 二 整型数据 整型数据包括整型常量和整型变量 整型数据以二进制补码形式存储 整型常量的不同数值表示方法10进制 0 98进制 0 7 以0开头16进制 0 9 A F a f 以0 x或0X开头 1 整型常量 例 100 8 0 010 024 0 x38 0X1F 整型常量的类型根据值大小默认类型在常量后面加l或L 表示longint型例如 123L 0L 432l都是longint型常量 15 整型变量的形式 基本整型短整型长整型无符号整型无符号短整型无符号长整型 intshortintlongintunsignedintunsignedshortunsignedlong 占存储空间 占内存字节数 224224 字节 整型变量 16 整型变量的定义 例如 inti j longk m unsignedintx y C中的所有变量必须先定义后使用 格式 类型说明符变量列表 17 整型数据的取值范围 18 整型变量的存放形式 数据在计算机内存中是以二进制数形式存放的 实际上 在计算机当中数据是以补码的形式存储的 正数的补码是它本身 负数的补码是其绝对值取反加1 例如 10原码1000000000001010绝对值0000000000001010取反1111111111110101加11111111111110110 10 19 整型数据应用中的几个问题 变量要先定义后使用注意防止数据溢出常量与变量的数据类型要匹配 20 例 main inta b c a 32767 b 3 c a b printf c d n c 21 修改后 main longa b c a 32767 b 3 c a b printf c d n c 22 三 实型数据 实型数据包括实型常量和实型变量 1 实型常量 两种表示形式 小数指数 0 1233e 3 实型常量只能用十进制形式表示 不能用八进制和十六进制 常量占用内存空间吗 23 实型常量的表示方法 1 十进制小数形式 由符号 整数部分 小数点及小数部分组成 例 12 67121 91 24 由十进制小数形式加上指数部分组成 十进制小数e指数或十进制小数E指数其中e或E前面的数字表示尾数 e或E表示底数10 e后面的指数必须是整数 表示10的幂次 例如123e3或123E3都代表123 103 注意 字母e之前必须有数字 而且e后面指数必须为整数 一个实数可以有多种指数表示形式 规范化指数形式 是指在字母e之前的小数部分中 小数点左边应有一位非零数字 一个实数在用指数形式输出时 是按规范化指数形式输出的 2 指数形式 25 例 1e3 1 8e 3 123e 6 1e 3e5 1e 3 2 e e 03 26 2 实型变量 实型变量的有关规则如下 取值范围是指数据的绝对值 它表示了数值的精度 有效数字是指数据在计算机中存储和输出时能够精确表示的数字位数 27 实型数据在计算机中的存放形式 数符 小数 指数符号 指数 0 123456 10 2 1位 23位 1位 7位 28 实型数的分辨率 最小正数 10 38小于该数时处理为0下溢最大正数 1038大于该数时提示出错上溢 实型数在计算机内部都按指数形式存放实型数常数不区分单精度和双精度数的存储结构和精度与计算机硬件特性有关 超出表示范围的数机器如何处理 29 实型数据应用中的误差问题 例 输出实型数据a bmain floata doubleb a 12345 6789 b 123456789123456 7899 printf a f nb f n a b 30 Output a 12345 676711b 123456789123456 797000 31 四 字符型数据 字符型数据包括字符型常量和字符型变量 1 字符型常量 用单引号包含的一个字符是字符型常量只能包含一个字符 例 a A 1 abc a 32 C语言提供的另一种字符型常量是转义字符常量 转义字符常量是以反斜杠开头的字符常量 它通知编译器需要用特殊的方式处理反斜杠后的字符 将反斜杠后的字符转换成另外的意义 转义字符 特殊形式的字符常量 33 n换行 t横向跳格 r回车 反斜杠 dddddd表示1到3位八进制数字 xhhhh表示1到2位十六进制数字 例 60 是十进制数48 代表ASCII码字符0 105 是十进制数69 代表ASCII码字符E x61 是十进制数97 代表ASCII码字符a 34 定义形式char占存储空间 一个字节 2 字符型变量 一个字符变量只能包含一个字符 例 main charc c c printf c c 运行结果 c 35 a 的ASCII值为97内存中存储形式 01100001 在ASCII范围以内 整型数据与字符型数据可以通用 字符型数据的存储格式 ASCII码字符 a A 1 存储为 97 65 49 例 36 3 字符串常量 字符串常量是用双引号括起来的一个或多个字符 n个字符组成的字符串常量 占空间为n 1个字节 字符串结束标记 空 字符 a 串长1 ThisisCstring 串长16 空格 串长1 不含空格 串长0 例 C语言中没有专用的字符串变量 37 main chara b c intd a 5 b 60 c A d 1089 printf a cb cc dd c n a b c d printf a db d n a b getch 65 38 字符串 w 11 0good 占几个字节 思考 字符串 w 11 占几个字节 转义字符 字符串结束标记 w 11 3字节 3字节 39 访问内存的两种方式 直接访问 按地址直接存取 a间接访问 通过指针i间接存取 1 指针的概念 对于inta 10 c 5 floatb 3 5 内存分配 例 a的地址 a的内容 指针 a的地址 a是整型变量 存放内容i是指针变量 存放地址 a的地址 a的指针 指向a 五 指针型数据及其表示 存储变量2字节 40 例 inta 10 i x floatb 3 5 p1 charc p2 i a 2 指针变量的定义与赋值 定义 存储类型 指针变量名 i是i指向的变量a 指针运算 定义指针变量 指针初始化 指针赋值 41 指针运算符 取地址运算符同级 右结合 指针变量的赋值 inta 3 p p1 p2 p3 p4 p 不允许直接将一个整数直接赋值给一个指针变量 42 指针变量的类型是它所指向的值的类型 问题 指针变量能指向常数吗 常数不占用内存单元 指针的应用在第十章介绍 43 在定义变量时为其指定值 初始化 方法 inta 5 inta b c 5 inta 5 b 5 c 5 inta b c 5 1 定义变量的同时为其初始化2 初始化不是在编译时进行 而是在程序运行时完成的 六 变量的初始化 44 一 认识C中的运算符和表达式 运算分量 对数据进行运算的符号 被加工的数据 表达式 3 3算术运算与赋值运算 X 5 b c 45 表达式的运算结果称为表达式的值 C中运算符 算术运算符赋值运算符关系运算符逻辑运算符位运算逗号运算符条件运算符 共34种 运算符和运算分量构成表达式 46 学习运算符应掌握的要点 运算符的种类与功能运算符与运算分量的关系 个数 类型 A B a b a b 目 关系 不同类型的变量 所占存储空间 数的表示范围 有效位和允许的操作不同 单目运算双目运算三目运算 47 优先级 运算符的执行顺序 结合性 相同优先级的多个运算符的运算顺序 X a b c a b c5 7 2a b 5 左结合 右结合 Y a b c 为从左向右结合 48 优先级和结合性的记忆方法 优先级 单目运算符的优先级高于双目运算符双目运算符的优先级高于三目运算符 特例 优先级小于三目运算符 逗号运算符优先级最低 次之结合性 单目运算符结合性为从右向左结合双目运算符结合性为从左向右结合 特例 结合性为从右向左结合 三目运算符结合性为从右向左结合 49 加法运算 正值运算 4 减法运算 负值运算 4 乘法运算 3 除法运算 3 求余运算 3 结合性 二 算术运算符和算术表达式 1 参加运算的对象都是int型 其结果截取为int型 10 311 31 210 0 31 210 5 310 5 3 2 求余运算对象必须是整型 10 39 3 10 310 3 50 已知 inti 3 longe 4 floatf 1 5 doubled 2 0 计算过程 f 10 a i f d ef 107 4 5 0 5f 111 5 0 5f 111 算术表达式 51 三 自增 自减运算符 功能 变量自身加 减 1 52 已知 i 3 1 执行printf d i Output 3i的值为42 执行printf d i Output 4i的值为4 示例 53 54 main inta 5 b 5 s s a b 5 5 10 printf d d d n a b s s a b 6 5 10 printf d d d n a b s s a b 7 5 12 printf d d d n a b s s a b 6 5 11 printf d d d n a b s s a b 5 5 11 printf d d d n a b s s a b 5 5 10 printf d d d n a b s 55 i 2 k i i i i k i 2 k i i i 56 i k 515 自增之后再相加 执行完分号再自增 56 四 赋值运算符 将一个常量或一个表达式的值赋给一个变量 格式 变量名 表达式 x 5y x 10 57 可以将一个实型赋给一个整型也可将一个整型赋给一个实型 intx x 5 3 x的值为5floaty y 5 y的值为5 000000 赋值类型转换 例 接受赋值的变量类型决定了运算结果的类型 58 59 算术运算与赋值运算相结合 例 60 main inta b c d a 2 b 5 c 6 d 10 a b b c c d d a a c printf d d d d d n a b c d a Output 7 1 60 1 7 例 61 注意 如果复合赋值运算符的右侧是包含若干项的表达式 则右侧的表达式相当于一个整体 如 x y 8 x x y 8 62 关系运算和逻辑运算经常作为条件语句和循环语句中的条件 其结果为一逻辑值 A和B中至少有一个大于CA和B全部大于CA为不大于100的偶数 如何用C语言描述 关系运算 逻辑运算 3 4关系运算和逻辑运算符 一 基本概念 条件 63 关系运算是一种比较运算 将两个值 表达式 进行比较 判断比较的结果是否符合给定的条件 二 关系运算符 大于 大于等于 小于 不等 小于等于 恒等 1 的优先级低于其余四个 2 优先级 关系运算的优先级高于赋值 低于算术 区别赋值 3 结合性 从左向右 a b c 64 三 关系表达式 关系符与运算分量构成关系表达式关系表达式的结果是一个逻辑值 根据关系是否满足 分别取真或假 例 inti 1 j 7 a a i j 4 0 Output a 2 e1关系运算符e2 C语言中没有专用的逻辑值 用数值1和0标识逻辑真和假 1 真0 假 100 13 5c5 18 90 int 2 5 2 5 65 逻辑运算符是表述表达式之间的逻辑关系的一种运算符 四 逻辑运算符 66 五 逻辑表达式 用逻辑运算符将关系运算表达式或逻辑量连接起来构成逻辑表达式 a b e1逻辑运算符e2 67 任何非零实数均作为逻辑上的1 例 a 5 b 7 c 4 d 3x a b c d d a 先做算术运算 再做关系判断 将最后结果赋给x 逻辑表达式的值是1或0 表示真或假 X 0 68 在逻辑表达式中 并不是所有的逻辑运算都必须执行 如果 的一边已经为0 结果一定为0如果 的一边已经为1 结果一定为1 a b ca非0时再判断b a b均非0再判断ca b ca为非0 不必判断b和c 结果一定为1 69 已知 a 1 b 2 c 3 d 4 m 1 n 1执行 m a b n c d 之后m n 题目分析 由于a b的值为0 的结果一定为0 即m 0 n c d 不再运算 n维持原有的值 即n 1 例 70 六 条件运算符与条件表达式 表达式1 表达式2 表达式3功能 先计算表达式1的值 若其值为非0值 即逻辑真值 则计算表达式2的值 并将表达式2的值作为整个条件表达式的结果 若表达式1的值为0 即逻辑假值 则计算表达式3的值 并将表达式3的值作为整个条件表达式的结果 71 3 5位运算 一 位运算的基本概念 数据在计算机中是以二进制代码的形式表示的 每一个二进制数称为一位 C语言的主要设计目的是为描述系统而设计的 因此C语言特别提供了对二进制位的操作功能 称为位运算 把整型数看作为一个二进制序列 按位进行六种运算 72 二 位运算符 运算符含义对象个数结合方向优先级 按位求反单目右1 按位右移双目左2 按位与双目左3 按位或双目左4 按位异或双目左5 73 三 按位与运算 四 按位或运算 74 六 移位运算 a 1101 0011b a 2 0100 1100 c a 2 0011 0100 五 按位异或运算 75 3 6逗号运算符与逗号表达式 一 逗号运算符 表达式1 表达式2 表达式3 表达式n 功能 用于连接几个表达式 求解过程 顺序求解几个表达式 优先级 15 逗号运算符的优先级最低 结合性 左结合 76 二 逗号表达式 逗号表达式的值为最后一个表达式的值 X a 4 5 a 2 a 6 a 20X 26 77 3 7混合运算与数据类型转换 各类数值型数据间的混合运算 将不同数据类型先转换成同一类型 然后进行运算 方式 自动进行 隐式转换强制进行 显式转换 一 隐式转换 算术转换 优先级低的向优先级高的转换 规则 78 79 已知 inti longe floatf douibled f 10 a i f d e 例 运算过程中的类型转换不是变量本身数据类型的转换 80 二 强制类型转换 类型标识符 表达式 int 10 a i f d e 将该结果强制转换为整型 格式 81 注意 在强制类型转换运算符中 表达式应该用括号括起来 以表示将整个表达式的值进行强制类型转换 例如 int x y 则只表示将x转换成整型 然后与y相加 82 需要说明的一点是在强制类型转换时 得到一个所需类型的中间变量 原来变量的类型并未发生变化 例如inti floatx 3 6 i int x printf x f i d x i 输出 x 3 6 i 3
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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