




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 了解C语言的数据类型 2 掌握各种类型常量的表示方法 3 掌握各种类型变量的定义 存储形式 存储长度和取值范围 4 掌握各种运算符的运算规则 优先级别和结合方向 5 掌握各种表达式的运算方法和值 6 能用C语言表达式表达实际问题 教学目标 2 1C语言的数据类型一个程序主要包括以下内容 对数据的描述 用来指定数据的类型 取值范围和存储形式 即数据结构 对操作的描述 用来指定 做什么 和 怎么做 即操作步骤 也称为算法 数据是操作的对象 操作的目的是对数据进行加工处理 C语言的数据类型包括 2 2数据描述一 变量在程序运行中 其值可以改变的量称为变量 C语言规定 程序中所使用的每一个变量在使用之前都要进行类型说明 即 先定义 后使用 1 变量的定义格式 类型标识符变量名1 变量名2 说明 类型标识符用来说明所定义的变量的数据类型 包括整型 实型 字符型等 变量名是C语言合法标识符 C语言的标识符区分大小写字母 例如 day和 a 10都是合法的标识符 而3b和c 2 都是不合法的标识符 2 整型变量 整型变量的类型标识符整型变量的类型有三种 基本整型 简称整型 int 短整型short int 和长整型long int 对每一种类型还分为有符号 signed 和无符号 unsigned 两种 共6种 例如 整型变量的定义与使用 整型数据的存储长度 存储形式和取值范围存储长度 数据在内存中所占的字节数叫做数据的存储长度 存储形式 整型数据以其二进制数的补码形式存放 对于有符号数 最高位代表符号 取值范围 不同类型的整型数据 由于类型和存储长度不同 所以取值范围也不同 不同类型的整型数据的存储长度 取值范围见下表 例如 整型变量的定义与使用 include stdio h voidmain inta b c unsignedshortu a 13 b 25 u 10 c a b u a b printf c d u u n c u 3 实型变量 实型变量的类型标识符实型变量的类型有两种 单精度实型float和双精度实型double 对于实型变量都是有符号的 例如 实型变量的定义与使用voidmain floatr s scanf f 实型数据的存储长度 有效数字个数和取值范围实型数据的精度是小数点后取6位 其它见下表 4 字符型变量 字符型变量的类型标识符字符型变量的类型有两种 有符号字符型char和无符号字符型unsignedchar 字符型数据的存储长度和取值范围字符型数据在内存中占1个字节 char型数据的取值范围是 128 127 unsignedchar型数据的取值范围是0 255 每一个数值对应一个字符 字符型数据与整型数据的通用性 字符型数据可按整数数据处理 可作为整数参加运算 按整数数据形式输出 在ASCII码值范围内的整数可按字符数据处理 按字符形式输出 例如 字符型数据与整型数据的通用性 voidmain charch scanf c 例如 字符型数据与整型数据的通用性 include stdio h voidmain charch1 ch2 inti j ch1 65 i B ch2 ch1 32 j i 32 printf c c c c n ch1 ch2 i j printf d d d d n ch1 ch2 i j 5 变量的赋值一般形式 变量 表达式 说明 其中 为赋值号 而不是等号 通常赋值号左端必须是变量 右端可以是任何表达式 作用 把赋值号右端表达式的值放到左端变量的存储空间 即给变量赋值 注意 变量名 变量的值 变量的存储空间三者之间的关系 6 变量初始化在定义变量时 给变量赋值称为变量的初始化 通常变量初始化工作不是在编译阶段完成的 而是在程序运行时完成的 只有静态和外部变量的初始化是在编译阶段完成的 inta 3 a 变量名 存储空间 变量值 3 如 inta b 3 c 对变量b进行初始化 相当于 inta b c b 3 二 常量1 常量 常量 在程序运行过程中 其值保持不变的量 常量的类型 在C语言中 常量也有类型 常量的类型不需要事先说明 而是由书写方法自动默认 2 符号常量 用标识符代表的常量 称为符号常量 定义格式 define符号常量常量说明 在编写程序时 使用 符号常量 来代替程序中多次出现的 常量 在编译程序时 将把程序中所有出现 符号常量 的位置 一律用 常量 的值来代替 符号常量名通常用大写字母来表示 以区别程序中的变量 例如 符号常量的使用示例 如 12 0 3为整型常量 4 6 1 23为实型常量 a d 字符常量 例如 符号常量的使用示例 definePI3 14159 include stdio h voidmain floatr s p scanf f 3 整型常量及表示方法整型常量有三种 十进制 八进制和十六进制整型常量 十进制整型常量 用数码0 9表示的十进制整数 八进制整型常量 以数字0开头用数码0 7表示的整数 开头的数字0代表所表示的数为八进制数 十六进制整型常量 以数字0和字母x即0 x开头 用数码0 9或字母a f 包括大写 表示的十六进制整数来表示 0 x代表所表示的数为十六进制数 例如 整型常量的使用 如 32 7等都是十进制整型常量 如 027 036 015等都是八进制整型常量 而049是不合法的八进制整型常量 如 0 xa8 0X59 0X39等都是十六进制整型常量 而0 xag 2f是不合法的十六进制整型常量 例2 5整型常量的使用 include stdio h voidmain inta b a 027 b 0 x1c printf a d b d n a b 4 实型常量及表示方法实型常量有两种 十进制小数形式和指数形式 十进制小数 定点 形式 由数字和小数点组成 如 3 14 0 271 0 0等都是十进制小数形式的实型常量 指数 浮点 形式 由尾数 字母e或E 阶码三部分组成 尾数为十进制小数 阶码为1或2位的十进制整数 如 3 14159e2 31415 9E 2 1e03都是合法的指数形式的实型常量 分别表示实数3 14159 102 31415 9 10 2 1 102 1e03中的尾数1不能省 而 2e314不合法的实型常量 5 字符型常量及表示方法 字符常量 用单引号括起来的单一字符 包括转义字符 称为字符型常量 转义字符 以反斜杠 开头按一定形式书写的字符 关于转义字符及其含义见下表 说明 注意 n和 r的区别 n是回车换行 而 r只是回车但不换行 t的作用是横向跳格 所经过的位置被空格取代 屏幕的每一行被分为10个制表区 每个占8列 0代表ASCII码值为0的控制字符NUL 即空操作 例如 转义字符的使用 例如 转义字符的使用 include stdio h include conio h voidmain charch1 ch2 ch1 141 ch2 x41 printf ch1 c b ch1 getch printf ch2 c r ch2 getch printf nch1 c ch2 c n ch1 31 ch2 33 6 字符串常量及表示法 字符串常量 用双引号引起来的字符序列称为字符串常量 字符串中含字符的个数称为该字符串的长度 说明 字符串按每个字符的存储形式存储 每个字符占一个字节 最后一个字节存放字符串结束标志 0 它是 空操作字符 系统依此判断字符串是否结束 因此 字符串的存储长度为字符串长度加1 不能把一个字符串常量赋给字符变量 a 与 a 的区别 a 是字符常量 可以赋给字符变量 在内存中占一个字节 a 是字符串常量 不能赋给字符变量 在内存中占两个字节 包括一个字符串结束标志 0 例如 Howdoyoudo A He 154lo n 都是字符串常量 它们的长度分别是13 1 7 存储长度分别是14 2 8 例如 charch ch a 是错误的 ch CHINA 是错误的 ch a 是正确的 做一做 课堂实践3读下列程序 找出程序中存在的错误 并改正 include stdio h voidmain Inta b a 01b b 37 c a b print c d n c 2 3数据操作一 运算符的有关知识1 运算符和表达式 运算量 参加运算的对象称为运算量 运算对象包括 常量 变量 函数等 运算符 表示运算的符号称为运算符或操作符 运算符的目 要求有一个运算量的运算符称为单目运算符 要求有两个运算量的运算符称为双目运算符 要求有三个运算量的运算符称为三目运算符 表达式 用运算符把运算量连接起来的符合C语言语法规则的式子称为表达式 C语言的表达式主要有 算术表达式 关系表达式 逻辑表达式 赋值表达式 条件表达式 逗号表达式 2 应注意的几个问题 运算的优先级别 如果在一个运算量两侧的运算符的 优先级别 不同 则应先执行 优先级别 高的运算符 结合方向 如果在一个运算量两侧的运算符的 优先级别 相同 则按运算符的结合方向的顺序进行处理 结合方向包括 左结合 即按自左向右的顺序进行处理 右结合 即按自右向左的顺序进行处理 注 优先级别和结合方向 在学习表达式时要弄清表达式的值的概念 能把实际问题用正确的表达式来表示 例如 3 2 5 应先计算2 5 10 再计算3 10 13 例如 6 3 2 在运算量3的两侧有两个运算符 和 它们的优先级别相同 如果按左结合进行处理 所得的结果为4 如果按右结合进行处理 所得的结果为1 二 算术运算1 双目算术运算 运算符 除 模或求余 优先级别 是同级别的 是同级别的 且高于 的级别 结合方向 均为左结合 运算的运算规则 运算量的类型与结果类型 运算规则与数学中的运算规则相同 要求参加运算的两个运算量可以是整型数据 也可以是实型数据 如果两个运算量都是整型数据 则结果也是整型数据 如果两个运算量至少有一个是实型数据 则结果是double型数据 运算的运算规则 运算量的类型与结果类型 要求参加运算的两个运算量可以是整型数据 也可以是实型数据 如果两个运算量都是整型数据 则结果也是整型数据 此时的除法运算称为整除 如果两个运算量至少有一个是实型数据 则结果是double型数据 a b运算的运算规则 运算量的类型与结果类型 对于模运算 要求两个运算量a b都是整型数据 运算规则是求a被b除所得的余数 结果的符号与被除数a的符号相同 运算结果还是整型数据 2 算术表达式 根据运算符的优先级别和结合方向 通过加括号最终化为用算术运算符连接起来的表达式 例如 inta 5 b 2 则a b 2 2 5 a b 10 例如 floata 5 0 b 2 0 则a b 2 5 a b 10 0 例如 inta 5 b 5 c 3 d 3 则a c 2 a d 2 b c 2 b d 2 例2 1已知变量a是一个两位正整数 用C语言的表达式分别表示a的个位和十位 解答 a的个位的C语言的表达式 a 10 a的十位的C语言的表达式 a 10 做一做 课堂实践4已知变量a是一个三位正整数 用C语言的表达式分别表示a的个位 十位和百位 解答 a的个位的C语言的表达式 a 10 a的十位的C语言的表达式 a 10 10 a的百位的C语言的表达式 a 10 10 三 赋值类运算1 赋值运算 运算符 一般形式 变量 表达式 作用 把赋值号右边表达式值赋给赋值号左边的变量 即把表达式的值传送到变量的内存单元中 优先级别 仅高于逗号运算符 结合方向 右结合 赋值表达式 根据运算符的优先级别和结合方向 通过加括号最终化为用赋值号把变量和表达式连接起来的式子称为赋值表达式 赋值表达式 赋值表达式的值为赋值后赋值号左边变量的值 例如 表达式b a a 5是赋值表达式 因为 的优先级别低于 是右结合的 所以b a a 5相当于b a a 5 因此是赋值表达式 2 复合的赋值运算 复合的赋值运算符 自反加赋值 自反减赋值 自反乘赋值 自反除赋值 自反模赋值 运算规则 a b等价于a a b a b等价于a a b a b等价于a a b a b等价于a a b a b等价于a a b 优先级别 与赋值运算符同级 结合方向 右结合 例2 2设有如下定义和语句inta 5 b 3 c c b a 2 表达式c b a 2相当于c b b a 2 分析表达式c b a 2执行前后各变量在内存中的变化情况 5 a 3 b c 表达式c b a 2执行前 21 21 表达式c b a 2执行后 3 自加和自减运算 运算符 一般形式 后缀形式 变量 变量 前缀形式 变量 变量在运算符的一侧通常必须是变量 不能是常量或表达式 运算规则 后缀形式变量的值加 减 1 但表达式的值为变量增值前的值 前缀形式变量的值加 减 1 但表达式的值为变量增值后的值 可以用一句话概括为 后缀形式先引用后 增值 前缀形式先 增值 后引用 优先级别 高于算术运算 结合方向 右结合 例2 3指出以下程序段执行后各变量的值 例2 4设有定义inta 3 b c 5 请将以下两条语句a b a c 写成一条语句 4 赋值转换当把表达式的值赋给变量时 如果表达式的值的类型与变量的类型不一致 C编译系统自动将赋值号右端表达式的值的类型转换为左端变量的类型 然后再将表达式的值赋给变量 例如 inta a 3 8 系统自动将3 8采用截断的方式得到3赋给变量a 例2 3指出以下程序段执行后各变量的值 inta 3 b c b a c a 该程序段执行后各变量的值为 a 5 b 3 c 5 例2 4设有定义inta 3 b c 5 请将以下两条语句a b a c 写成一条语句 解答 写成一条语句为 b a c 做一做 课堂实践5设有定义inta 3 b c 5 请将以下三条语句 a b a c c 写成一条语句 解答 写成一条语句为 b a c 四 逗号运算逗号运算也是C语言所特有的运算 利用逗号运算可一次计算多个表达式的值 运算符 逗号 优先级别 优先级别最低 结合方向 左结合 逗号表达式 用逗号运算符把两个表达式连接起来的式子 称为逗号表达式 逗号表达式的一般形式 表达式1 表达式2 运算过程及表达式的值 先求解表达式1 再计算表达式2 表达式2的值为整个逗号表达式的值 例如 a 3 5 a 4 a 5该表达式执行完毕变量a的值为 逗号表达式的值为 15 20 五 长度运算长度运算用来求变量或某种类型在内存中的存储长度 运算符 sizeof 一般形式 sizeof 类型标识符或变量 作用 以求指定变量或数据类型的存储长度 优先级别和结合方向 单目 第2级 右结合 例如 shortinti 5 a b a sizeof i b sizeof float printf a d b d n a b 则输出结果为 a 2 b 4 六 强制类型转换C语言中 可以把一种类型的数据通过强制类型转换 转换为另一种类型的数据 运算符 类型说明符 一般形式 类型说明符 表达式 作用 把表达式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024桂林学院辅导员招聘笔试真题
- 法律尽职调查(技术方向)考试试卷及答案
- 高端旅游体验师笔试试题及答案
- 2025年乙丙醇胺项目建议书
- 2025年湖南省生态环境厅下属事业单位招聘考试笔试试题【答案】
- 项目合作管理制度
- 活动总结范文大学活动结束后的总结怎么写
- 项目大管理图表
- 2025年无功功率自动补偿装置项目建议书
- 2025城市规划工作计划
- 2025年广东高考政治试卷真题答案详解讲评(课件)
- 卡口及道路交通智能监控系统方案设计
- 2025年家庭照护师职业资格考试试题及答案
- 呼吸机相关性肺炎的预防和护理
- 2025年绥化市中考化学试题卷(含答案解析)
- 门诊口腔院感基础知识培训
- 论咏叹调《妈妈不在》的形象刻画与唱段处理
- 危重病人观察和护理要点
- 砌体工程培训课件
- GB/T 45719-2025半导体器件金属氧化物半导体(MOS)晶体管的热载流子试验
- 2025-2030中国医药商业行业盈利态势与投资潜力分析报告
评论
0/150
提交评论