项目中的数据类型与数据运算.ppt_第1页
项目中的数据类型与数据运算.ppt_第2页
项目中的数据类型与数据运算.ppt_第3页
项目中的数据类型与数据运算.ppt_第4页
项目中的数据类型与数据运算.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计 第2章项目中的数据类型与数据运算 C语言的基本数据类型常量和变量运算符和表达式数据类型转换本章小结 2 2理论知识 C语言的基本数据类型基本类型指针类型构造类型空类型 整型int字符型char实型枚举型 单精度浮点型float双精度浮点型double 数组类型结构体类型共用体类型 2 2理论知识 2 2理论知识 C语言的基本数据类型整数类型 不同的整数类型表示的数值范围不同 在编程时 应根据程序对整数范围的实际需要 灵活选择上述的整数类型 inta b sum a 32768 2 2理论知识 C语言的基本数据类型实数类型 0 56544780 565447854656516516 2 2理论知识 C语言的基本数据类型字符类型 返回 2 2理论知识 常量和变量常量在程序执行过程中 其值不能改变的量直接常量和符号常量直接常量指在程序中不需要任何说明就可直接使用的常量符号常量指需要先说明或定义后才能使用的常量 2 2理论知识 常量和变量直接常量整型常量实型常量字符常量字符串常量 2 2理论知识 常量和变量直接常量整型常量十进制整数如10八进制整数如010十六进制整数如0 x10 2 2理论知识 常量和变量直接常量实型常量十进制小数形式 数字和小数点组成如3 141 2 2理论知识 常量和变量直接常量实型常量指数形式 小数和指数两部分组成如123 45可以表示为0 12345e 31 2345E 212345 0e 2规范化的指数形式 在字符e 或E 之前的小数部分中 小数点左边应有一位 且只能有一位 非零的数字在使用指数形式时 一定要注意在字母e或E之前必须要有数字 且字母e或E之后的指数必须为整数 如e6 e5 2 4E0 5 5 2e 3 6 规范化的指数形式 2 2理论知识 常量和变量直接常量字符常量字符常量是用一对单引号括起来的单个字符如 A 5 单引号只是分界符 表示字符常量的起止范围 inta b c a 97 b a 数据类型的自动转换c 1 2547 1 2547 1 c 1intm n M 2 2理论知识 常量和变量直接常量字符常量转义字符 以反斜杠 开头的字符 2 2理论知识 常量和变量直接常量字符常量将一个字符常量存放到内存中 并不是把该字符本身存放到内存单元中 而是将该字符相应的ASCII码存放到该存储单元中 如字符 a 在内存中的实际存储形式为01100001 2 2理论知识 常量和变量直接常量字符常量字符型数据和整型数据之间可以相互转换 一个字符数据既可以字符形式输出 也可以整数形式输出 举例 includevoidmain charc1 c2 Scanf d d 2 2理论知识 字符型输出格式符 整型输出格式符 Scanf 运行结果 2 2理论知识 举例 includevoidmain charc1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 charc1 a c2 b 2 2理论知识 c1和c2还可以怎样进行初始化化 2 2理论知识 常量和变量直接常量字符常量可以将整型量赋值给字符变量可以将字符量赋值给整型变量可以对字符数据进行算术运算 举例 includevoidmain charc1 a c2 b unsignedcharc c1 c2 printf c d n c 2 2理论知识 unsignedcharc c1 c2 运行结果 2 2理论知识 2 2理论知识 常量和变量直接常量字符串常量字符串常量是用一对双引号括起来的零个或多个字符如 Hello world 123 等 双引号仅起定界作用 本身并不是字符串中的内容 2 2理论知识 常量和变量直接常量字符串常量字符串的长度指一个字符串中所包含的字符个数C语言规定在存储字符串常量时 由系统在字符串的末尾自动加一个 0 作为结束标志 0 在内存中占一个字节 它不引起任何控制动作 也不可显示 只用于系统判断字符串是否结束 长度为n的字符串常量 在内存中占用n l个字节 2 2理论知识 常量和变量直接常量字符串常量字符串中若有转义字符 则应把它视为一个整体 当作一个字符来计算 字符串 Hello world n 的在内存中占据的字节数为 14 2 2理论知识 字符常量与字符串常量的主要区别1 定界符不同字符常量使用 而字符串常量使用 2 占用内存大小不同字符常量占一个字节 而字符串常量除了要存储有效的字符外 还要存储一个结束标志 0 3 长度不同字符常量只能是单个字符 字符串常量则可以包含零个或多个字符 2 2理论知识 字符常量与字符串常量的主要区别 charc1 a a 不符合语法规则 为什么呢 字符型变量 char 只占一个字节 97 0 a 0 字符串常量 a 在计算机内占两个字节 C语言没有专门的字符串变量 如果想将一个字符串存放在变量中 可以使用字符数组 2 2理论知识 常量和变量符号常量用符号表示的常量在使用之前必须先定义 define标识符常量不是C语句 不必在行末加分号放在程序开头 函数体之外 标识符 是以字母或下划线开头 标识符 是由字母 数字和下划线组成的字符序列 例2 1 符号常量的使用 2 2理论知识 definePI3 1415 定义符号常量PI 表示圆周率main floatr area r 5 0 area PI r r printf area f n area area 78 539815 运行结果 PI 2 2理论知识 符号常量的两个好处1 修改程序方便2 见名知意 便于理解程序 符号常量的使用1 其值在它的作用域内不能改变 也不能再被赋值2 符号常量名用大写 变量名用小写 以示区别 2 2理论知识 举例 definePI3 1415voidmain voidmain intPI PI 3 1415 PI 3 1415 PI 3 14159 2 2理论知识 常量和变量变量在程序执行过程中 其值可以被改变的量保存程序执行过程中的输入数据 中间结果以及最终结果在使用变量之前 必须先对其进行定义三个基本要素 即变量类型 变量名和变量的值 如 intchoose 1 charyes no y 2 2理论知识 常量和变量变量的定义 类型说明符 用来指定变量的数据类型当有多个变量时 彼此间要用逗号分隔 类型说明符变量1 变量2 变量n 2 2理论知识 注意 1 变量定义不是可执行语句 必须出现在可执行语句之前2 同一变量只能定义一次 不能重复3 变量名不能是C语言的关键字 要见名知意 并尽可能简短4 变量的类型应根据变量的取值范围来选择 以占用内存少 操作简便为优5 C语言没有提供字符串类型 字符串是用字符数组或指针来处理的 举例 分期付款的计算贷款D元 每月还款P元 月利率R 问 多少个月M能还清 计算M的公式为 若D 324500元 P 3245元 R 0 8 编程求M 2 2理论知识 logP log P D R log 1 R M 思路 1 D和P都是整数 R是小数 M根据公式计算出来也不一定是整数 因此将R M定义为实型变量2 M的计算公式中 2 2理论知识 log 1 R include C的库函数 include includevoidmain intd 324500 p 3245 floatr 0 008 m m log p log p d r log 1 r printf month f n m printf total f n m p 2 2理论知识 2 2理论知识 常量和变量变量的赋值在定义变量时赋值 先定义后赋值 floatdata1 1 5 data2 2 6 floatdata1 data2 变量定义部分data1 1 5 data2 2 6 变量赋初值 返回 运算符和表达式描述各种不同运算的符号称为运算符运算符分类一元 单目 运算符 二元 双目 运算符 三元 三目 运算符赋值运算符条件运算符逻辑运算符算术运算符关系运算符 2 2理论知识 a 2 b a 2 b 2 a 1 b 3 c 9 X a b a b X 参数1 参数2 参数3 2 4 0 a 2 b a c a a 6 a b a c a a a a 1 b b b 1 运算符和表达式运算符优先级当一个表达式中出现多个不同的运算符时运算的先后顺序单目运算符 双目运算符 算术运算符 关系运算符 逻辑运算符 条件运算符 赋值运算符 逗号运算符 2 2理论知识 includemain Inta 7 b b a 7 printf b d n b 结果 a 3 b 4 c c a b c a b c a b 运算符和表达式运算符结合性当一个表达式中出现两个以上优先级相同的运算符时 运算的方向是从左到右还是从右到左赋值运算符和条件运算符是从右往左结合除此之外的双目运算符都是从左往右结合的 2 2理论知识 a 5 b 2 c 9 d 10 f 6 e f 7 g 0 X a b c d e f g f 6e f 7 f f f 1 5e f 7 运算符和表达式由运算符把操作数连接起来的式子称为表达式表达式分类算术表达式关系表达式逻辑表达式条件表达式赋值表达式 2 2理论知识 c a b If c 0 If c a c b a 1 c a b a b 运算符和表达式算术运算符及其表达式双目运算符两个整数相除 结果为整数 舍入方式为 向零取整 2 2理论知识 加 减 乘 除 取余 如 inta 5 b 3 c c a b 运行结果c 1 如 inta 5 b 3 c c a b 运行结果c 1 运算符和表达式算术运算符及其表达式双目运算符求余运算 两侧均应为整型数据 余数的符号与被求余数符号相同 2 2理论知识 如 inta 5 b 3 c c a b 运行结果c 2 如 inta 5 b 3 c c a b 运行结果c 2 注意 C语言中的算术表达式b2 4ac需写成b b 4 a c的形式 8 5 2 5 8 2 0 举例 鸡兔同笼设鸡与兔同笼 已知鸡与兔的总头数为h 16 总脚数f 40 试编写C语言程序分别求出鸡的头数x与兔的头数y 2 2理论知识 2 2理论知识 思路 1 x y h f都是整数2 由数学知识可知 x y h2x 4y f3 由代数知识可得y f 2h 2x h f includevoidmain inth f x y h 16 f 40 y f 2 h 2 x h y printf d d n x y 2 2理论知识 程序清单 y f 2 h 2 运算符和表达式算术运算符及其表达式单目运算符自增运算使单个变量的值增1自减运算使单个变量的值减1 2 2理论知识 自增 自减 inti 3 a a i 运行结果 i 4 inti 3 a a i 运行结果 i 2 运算符和表达式算术运算符及其表达式单目运算符前置运算 运算符放在变量之前先增减 后运算 2 2理论知识 j i i i 1 j i 运算符和表达式算术运算符及其表达式单目运算符前置运算 运算符放在变量之前先增减 后运算 2 2理论知识 inti 3 j j i 运行结果 i j inti 3 j j i 运行结果 i j 4 2 运算符和表达式算术运算符及其表达式单目运算符后置运算 运算符放在变量之后先运算 后增减 2 2理论知识 j i j i i i 1 运算符和表达式算术运算符及其表达式单目运算符后置运算 运算符放在变量之后先运算 后增减 2 2理论知识 inti 3 j j i 运行结果 i 4 j 3 inti 3 j j i 运行结果 i 2 j 3 运算符和表达式算术运算符及其表达式单目运算符自增 自减运算常用于循环语句以及指针变量中 它使循环控制变量加 或减 1 或使指针指向下 或上 一个地址 自增 自减运算符不能用于常量和表达式 2 2理论知识 如 5 a b a a a 15 5 5 1 运算符和表达式赋值运算符及其表达式简单运算符复合运算符 2 2理论知识 运算符和表达式赋值运算符及其表达式赋值运算符的优先级比算术运算符 关系运算符和逻辑运算符低结合性为自右向左先求表达式的值 然后将表达式的值赋给变量 2 2理论知识 如 inta 5 a 5 运行结果a 10 如 inta 5 a 5 运行结果a 25 a a 5 运算符和表达式关系运算符及其表达式用于比较两个操作数之间的关系 若关系成立 则返回一个逻辑真值 1 否则返回一个逻辑假值 0 2 2理论知识 如 inta 5 b 3 c c a b 运行结果c 1 如 inta 2 b 3 c c a b 运行结果c 0 运算符和表达式关系运算符及其表达式前四种运算符的优先级相同 后两种运算符的优先级相同前四种运算符的优先级高于后两种关系运算符的优先级比算术运算符低 2 2理论知识 c a b等价于c a b a 6 b 9 c 2 x a b c 运算符和表达式关系运算符及其表达式关系运算符的优先级比赋值运算符高 2 2理论知识 c a b等价于c a b 运算符和表达式关系运算符及其表达式 2 2理论知识 includevoidmain intx 2 y 3 i j k i x y j x y k 1 printf i d j d k d n i j k 运行结果 i 0 j 1 k 1 注意 1 等于运算符 由两个等号组成 中间不能有空格2 在实际编程时 常用表达式i 2 0判断整数i的奇偶性 2 2理论知识 includevoidmain intx 2 if x 2 0 printf d是偶数 n x elseprintf d是奇数 n x 运算符和表达式逻辑运算符及其表达式返回逻辑真值 1 或逻辑假值 0 当操作数的值为真时 运算结果为假 当操作数的值为假时 运算结果为真 2 2理论知识 非 与 或 如 inta 5 c c a 运行结果c 0 如 inta 0 c c a 运行结果c 1 运算符和表达式逻辑运算符及其表达式用逻辑运算符将一个或多个表达式连接起来的式子 当且仅当两个操作数的值都为真时 运算结果为真 否则为假 2 2理论知识 非 与 或 如 inta 5 b 5 c c a运行结果c 1 如 inta 0 b 5 c c a运行结果c 0 运算符和表达式逻辑运算符及其表达式用逻辑运算符将一个或多个表达式连接起来的式子 当且仅当两个操作数的值都为假时 运算结果为假 否则为真 2 2理论知识 非 与 或 如 inta 0 b 0 c c a b 运行结果c 0 如 inta 0 b 5 c c a b 运行结果c 1 注意 1 逻辑运算符两侧的操作数 除可以是0和非0的整数外 也可以是其他任何类型的数据 如实型 字符型等 但这些值都要根据规则看成是逻辑值 2 2理论知识 c d 1 逻辑真 逻辑真 逻辑真 3 4567 0 0 逻辑真 逻辑假 逻辑假 注意 2 对于逻辑 与 运算 如果第一操作数被判定为假 系统不再判定或求解第二操作数 2 2理论知识 includevoidmain inta 1 b 2 c 3 d 4 m 5 n 6 x 7 x m a b 运行结果 m 0 n 6 x 0 注意 3 对于逻辑 或 运算 如果第一操作数被判定为真 系统不再判定或求解第二操作数 2 2理论知识 includevoidmain inta 1 b 2 c 3 d 4 m 5 n 6 x 7 x m ad printf m d n d x d n m n x 运行结果 m 1 n 6 x 1 注意 4 a大于b且b大于c表达式 2 2理论知识 a b c a b b c 如 4 3 3 2 14 3 2 4 3 2 1 2 0 运算表达式优先级由低到高赋值运算符 关系运算符算术运算符 2 2理论知识 如 a 3 b 2 c 6 x a a b b c 等价于x a a b b c 运算符和表达式条件运算符及其表达式三目运算符表达式格式如果表达式1的值为非0 即逻辑真 则运算结果等于表达式2的值 否则 运算结果等于表达式3的值 2 2理论知识 表达式1 表达式2 表达式3 运算符和表达式条件运算符及其表达式 2 2理论知识 includevoidmain inta 88 b 456 c 147 min min a b a b printf min d n min 运行结果 min 88 运算符和表达式逗号运算符及其表达式表达式格式自左至右依次计算各表达式的值 表达式n 的值即为整个逗号表达式的值 2 2理论知识 表达式1 表达式2 表达式n V a 3 b 4 c 5 a b c 60 并不是任何地方出现的逗号 都是逗号运算符 很多情况下 逗号仅作分隔符 inta 3 b 5 c 7 运算符和表达式sizeof运算符及其表达式表达式格式返回变量 常量的类型在内存中占用的字节数 2 2理论知识 sizeof 类型名或表达式 运算符和表达式sizeof运算符及其表达式 2 2理论知识 includevoidmain inta b c a sizeof int b sizeof float c sizeof Hello t printf a d b d c d n a b c 运行结果 a 4 b 4 c 7 返回 数据类型转换自动类型转换 2 2理论知识 数据类型转换自动类型转换字节少的数据转换成

温馨提示

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

评论

0/150

提交评论