数据类型及其输入输出.ppt_第1页
数据类型及其输入输出.ppt_第2页
数据类型及其输入输出.ppt_第3页
数据类型及其输入输出.ppt_第4页
数据类型及其输入输出.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第二章数据类型及输入输出 内蒙古科技大学实训中心 本节重点 数据类型常量与变量不同类型的数据的输入输出 引入 数据类型 1 数据是程序处理的基本对象 2 程序中数据分为变量或常量 3 每个变量或常量都有确定的数据类型 4 每种数据类型都有确定的存储长度 取值范围及允许的操作 5 程序中所有数据必须指定其数据类型 常量 在程序中 常量是指常数或其值不能被改变的量 1 直接常量 如 12 123 5 1 23E7 a A 8 hello a 2 符号常量 即用一个标识符代表一个常量 一般用大写字母表示 符号常量在其作用域内不能改变 也不能再被赋值 定义符号常量的方法如 definePI3 14159 definePI3 1415926voidmain floatr c s r 2 c 2 PI r s PI r r printf c f s f c s 常量的类型 整型常量有三种表示方法 十进制整数123 784八进制整数0123 十六进制整数八进制和十六进制只能表示无符号整数长整数表示为 123l123L无符号整数表示为 123u 常量分为 整型常量 实型常量 字符常量 字符串常量 实型常量 也称浮点数 两种表示方法 十进制小数形式由数字和小数点组成 必须有小数点 1 123 3 1415 指数形式123e5 123E5都表示但是1 23E7为规范化的指数形式 输出指数形式的数据时 按规范化的指数形式输出 即小数点左边应有一位非零数字 3 字符常量 Characterconstants 由一对单引号括起的单个字符 称为字符常量 如 a 9 b退格 单引号 n换行 ddd1 3位八进制数 t制表符 xhh1 2位十六进制数 反斜杠字符 a响铃 双引号 r回本行开头 转义字符 EscapeSequences 表示控制字符或具有特定用途的字符 在内存中 字符数据并不是把字符本身放到内存单元中 而是将该字符的相应ASCII码 二进制的形式 放到存储单元中 如 有两个字符型数据 A 和 a 4 字符串常量 StringLiterals 由一对双引号括起的字符序列称为字符串常量 例如 Howdoyoudo china C规定以字符 0 作为字符串结束的标志 在内存中所占字节数为实际字符个数 1如字符串常量 china 在内存中存储形式如下 变量 1 定义 其值可以改变的量称为变量 程序中的变量必须先定义后使用 2 变量的定义 赋值 初始化 intsum chara b floatr s l doublex y 定义了变量后 变量并没有值 需要给其赋值 也可以在定义变量的同时给出初值 对变量进行初始化 例如 inti i 9 先定义整型变量i 然后赋初值9 floatr 1 5 定义实型变量r的同时 赋其初值1 5 charanswer y 同上 也可以使被定义的变量的一部分赋初值 如inta b c 5 表示定义a b c为整型变量 并且对c进行初始化 使c值为5 注意 如对几个变量同时赋初值为5 应写成inta 5 b 5 c 5 或者inta b c a b c 5 而不能写成inta b c 5 3 对变量名的要求 变量名要做到 见名知意 不要使用简单的字符作变量名 以增加程序的可读性 变量名一般用小写字母表示 长度与所用系统有关 c 合法标识符 非法标识符 变量的类型 变量分为 整型变量 实型变量 字符型变量1 整型变量 存放形式整形变量在内存中以二进制的形式存放的 一个整形变量在内存中占 个字节 10 变量i inti 10 变量在内存中的实际存放情况 机器内部 数值是以补码表示的 正数 其补码和原码相同 负数 其补码为 该数的绝对值的二进制数按位取反加1 35 取反 加1 最高位 最高位是符号位 其为0时是正数 为1时是负数 分类根据数值的范围可以把变量定义成基本类型 短整型和长整型 基本类型 用int标识 短整型 用shortint标识 short 长整型 用标识 long 进一步修饰 修饰符 无符号数 signed 有符号数 如果既不指定unsigned也不指定signed则隐含为有符号数 signed signed可以不写 例 unsignedlonginta b ANSI标准定义的整数类型 2 实型变量类型 内存中字节数 有效数字float 4字节 6 7位double 8字节 15 16位longdouble 16字节 18 19位定义方法 单精度 float变量名 双精度 double变量名 3 字符型变量 定义方法 char变量名列表charc1 c2 c3 取值范围 ASCII码字符集中的字符 charc1 c2 c1 e c2 3 注意 字符串常量不能被赋值到字符变量中 因为字符变量只能容纳一个字符 区别 a a 数据的输入和输出 语言中 在stdio h头文件中定义了标准输入输出函数 printf 函数格式 printf 格式控制字符串 输出项列表 功能 将输出项按给定的控制格式输出 例如 printf f sum 2 scanf 函数格式 scanf 格式控制字符串 输入项列表 功能 将输入项按给定的控制格式输入 例如 scanf d d include voidmain charch a inta 65 floatx 123 456 printf c d 3c n ch ch ch printf c d 3d n a a a printf f 7 2f 10 4f n x x x 输出结果是 a 97 aA65 65123 456001 123 46 123 4560 例1 include voidmain inta b charch1 ch2 floatf r scanf d d 输入时 125785ab23 456 612 97 例2 本节重点 掌握运算符的使用确定表达式的类型 值不同类型的数据的转换 运算符 一 运算符 能够完成某种操作 运算 的符号 二 根据运算符的运算对象 操作数 的多少 运算符可分为 单目 一元 运算符i n 双目 二元 运算符a bd e 三目 三元 运算符x y x 3 y 9 条件运算符 表达式 一 C表达式 由 运算符和运算对象构成的式子 运算对象可以是常量 变量 函数或表达式 二 表达式的书写原则 1 C语言的表达式只能采用线性的形式书写 例如 应写成1 3 i j j j 应写成 a b c d e f 2 C语言的表达式只能使用C语言中合法的运算符和操作数 对有些操作必须调用库函数完成 而且运算符不能省略 例如 r2应写成3 14159 r r 应写成0 5 a b sin alph x y 应写成fabs x y y 2X应写成y pow 2 x include 三 表达式在求值时 遵循以下规则 1 优先级 不同优先级的运算符出现在同一表达式时 按运算符的优先级的高低次序执行 例如 d a b c 先乘后加 2 结合性 是指表达式中出现同优先级的操作符时 该先做哪个操作符的规定 结合方向 自左向右 自右向左 例如 a b c从左至右d a b 3从右至左 四 表达式的分类 C语言表达式种类很多 有多种分类方法 我们一般依据运算的特征将表达式分为 算术表达式 如a b 2 0 3 0 5 0 关系表达式 如x y 关系表达式可以认为是逻辑表达式的特殊情况 逻辑表达式 如 x 2 xb a b 逗号表达式 如a 2 b a a c sqrt b 五 表达式值的数据类型 1 每个表达式都有一个确定的值 因而有确定的数据类型 2 表达式的分类和数据类型取决与最后执行的运算符 如 34 5 7 6 为算术表达式 类型是double型 值35 534 5 7 6为关系表达式 类型是int型 值1 算术运算符和算术表达式 1 分类单目运算符 负号运算 自增 自减双目运算符 加 减 乘 除 求余 如果是两个整型数相除 取整 如有一个为实数时 其意义就是实数除 结果为double型 5 2 25 0 2 0 2 5 取余数 只能对整数取余数 不能对浮点数取余数 运算结果的符号与左操作数相同 5 2 1 35 8 335 8 3 2 自增操作符和自减操作符格式 i i i i 作用 是使自变量i的值加1或减1 相当于i i 1或i i 1 前置自增或前置自减操作 表示先修改操作数使之增1或减1 然后取修改后的操作数的值作为表达式的值 后置自增或后置自减操作 表示在表达式中先取操作数的值 然后再将操作数值增1或减1 例如 j i j的值为3 首先将i的原值赋给j 然后i自身再加1 j i j的值为4 i自身先加1 然后再将加1后的值赋给j includevoidmain inti j k i 3 j i k i printf i d j d k d n i j k 范例 输出结果 i 5 j 3 k 5 2 在表达式中如果有2个以上的 或 连写在一起 则编译器首先识别前面两个 或 为自增或自减操作符 例如 在使用自增或自减运算符时注意如下几个问题 1 自加或自减运算只能用于变量 不能用于常量或表达式 错误 25 i j 例如 i 只能理解为 i 因为 i 为表达式 表达式是不能自加自减的 i 3 j i printf d j 输出结果应为 3 而不是是 4 inta 1 b 5 c c a b c a b c a b 正确 c 6 错误 不是双目运算符 正确 a b 3 表达式中包含有自增 自减运算时 容易出错 务请小心 如有 i 1 则 类似上面分析 应为3 当然表达式计算完成后i的值同样改变为4 i i i 的值为多少呢 是9 2 3 4 吗 不对 计算时先对整个表达式扫描 i先自增3次 由1 2 3 4 如此计算结果为4 4 4 等于12 i i i 的值又是多少呢 赋值运算符和赋值表达式 1 赋值运算符 使用方法 变量 表达式赋值运算时先计算右边表达式的值 然后将右边表达式的值赋给左边变量 并以此值作为整个赋值表达式的值 1 赋值运算的优先级为第14级 次低 如 inti a b c p i 3 5 2 先计算3 5 2 得到4 然后将4赋给i p a b c p a b c 2 理解以下两赋值表达式的含义 y 5 n 5 x y n n 1 3 赋值运算符具有 自右向左 的结合性 赋值运算符右边的表达式也可以是赋值表达式 例如 a b 5 等同于a b 5 2 复合赋值运算算术复合赋值运算符 位复合赋值运算符 一般形式 变量 表达式 等价于 变量 变量 表达式 代表任一双目算术运算符或位运算符 复合赋值运算先进行所带运算 再进行赋值运算 复合赋值运算的优先级同赋值运算 例如 1 inta 3 a 2 等价于a a 2 2 floatx 1 2 y 2 1 y x 3 4 等价于y y x 3 4 3 inta 1 b 2 b a 1 等价于b b a a 1 逻辑运算符与逻辑表达式 一 逻辑运算符 逻辑非 逻辑与 逻辑或二 优先级 和 运算符的优先级低于算术运算符和关系运算符 而高于赋值运算符 三 操作数是逻辑量 真 或 假 非0为真 a 5 8同为真时结果为真 56 0只要有一个为真时结果就为真四 逻辑表达式的运算结果仍然是逻辑量 关系运算符和关系表达式 一 关系运算符有 的优先级相同 的优先级相同 前者的优先级高于后者 二 关系运算符的优先级低于算术运算 高于逻辑运算 也高于赋值运算 24 5 3 c 7 8三 关系表达式的运算结果时逻辑量四 自左向右结合 a b c假设a 5 b 3 c 2该表达式的值为0五 操作数也可以是字符型数据如 a f 条件运算符和条件表达式 一 条件运算符的语法形式 解释为 例如 x ab a c d c d相当于 a b a c d c d include voidmain intx scanf d 例 判断整数的正负 逗号运算符和逗号表达式 一 逗号运算是双目运算 一般形式如下 表达式1 表达式2 先计算表达式1 再计算表达式2 并以此作为整个表达式的值 如 a 2 a 6 先计算a 2 再计算a 6 并以此作为整个表达式的值 表达式的值为12 二 逗号运算的优先级最低 结合自左向右 逗号表达式的更一般使用形式为 表达式1 表达式2 表达式3 表达式n 先计算表达式1 再计算表达式2 再计算表达式3 再计算表达式n的值 并以此作为整个表达式的值 如 表达式x a 3 6 x 6 a a x的值为 逗号运算又称顺序求值运算 6 include voidmain inti j k i 1 j 2 k 3 printf d d d n i j k include voidmain inti j k i 1 j 2 k 3 printf d d d n i j k 并不是任何地方出现的逗号都是逗号运算符 例如 printf d d d n i j k 是参数分隔符 如果写成 printf d d d n i j k j k 相当于 printf d d d n k j k 求字节数运算 运算符 sizeof 数据类型标识符 或sizeof 表达式 求字节数运算是单目运算 操作数可以是类型名 也可以是变量 表达式 用以求得相应类型或数据所占的字节数 此运算的优先级与取地址运算优先级相同 例如 sizeof float 值为4 单精度类型占4个字节sizeof 2 3 值为2 算术表达式2 3是int型 数据的类型转换 一 系统自动进行的类型转化由系统自动完成类型转换 转换的规则如下 intunsignedlongdouble short charfloat纵向箭头方向表示必定要进行的转换 short型 char型数据必定先转换成int型 float型数据必定先转换成double型 再进行运算 横向箭头方向表示类型自动转换的方向 由低向高转换 int型最低 double型最高 二 赋值时的类型转换 1 将实型数据赋给整型变量时 舍弃实数的小数部

温馨提示

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

评论

0/150

提交评论