




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言 第二章数据类型及表达式 本章主要介绍了C的数据类型 常量的类型及表示方法 变量的定义及赋值以及一些简单的运算符和表达式 2 1C语言的基本数据类型 数据在计算机中是以二进制形式存储的计算机中为什么要采用二进制呢 二进制在电器元件中容易实现 二进制只有0和1两个数 在电学中具有两种稳定状态 并可以用0和1表示的东西很多 例如 电压的高和低 电容器的充电和放电 脉冲的有与无 晶体管的导通与截止等等 2 1C语言的基本数据类型 2 1C语言的基本数据类型 位 字节和地址位 bit 每个二极管元件称为一个 二进制位 是存储信息的最小单位 字节 byte 一个存储器包含多个 二进制位 一般将8个 二进制位 组成一组 称为 字节 地址 存放数据的存储器中的存储单元 存储单元以字节为单位编号 2 1C语言的基本数据类型 2 1C语言的基本数据类型 不同类型数据的存储方式整数的存储方式整型数以二进制形式存放在存储单元中 例如 用一个字节存储整数15 15 10 00001111 2整型数具有两种表示方式 有符号数和无符号数 无符号数 只表示正整数 无符号位 有符号数 可表示正 负数 最高位为符号位 正数采用原码方式存储 负数采用补码方式存储 2 1C语言的基本数据类型 不同类型数据的存储方式实数的存储方式实数采用指数形式存储 标准化指数形式 数值部分是一个小数 小数点前的数字是零 小数点后的第一位数字不是零 规范化指数形式 在尾数中 小数点左边只有一个非零数字 如 123 456可以表示为 0 123456 103123456 10 312345 6 10 21234 56 10 1123 456 10 0 2 1C语言的基本数据类型 不同类型数据的存储方式字符的存储方式字符包括字母 如 A a X x等 专用字符 如 等 计算机并不是将字符本身放到存储单元中 而是将字符的代码存储到相应的存储单元中 ASCII码 AmericanNationalStandardCodeforInformationInterchange 例如 A 65 ASCII 2 2常量和变量 常量 常数 数据12 3 整型 4 6 1 23 实型 a 字符 符号常量 用标识符表示的常量数据 PI EPS 通常用大写字母表示符号常量 变量 C语言中的量常量 常数 数据符号常量 用标识符表示的常量数据在程序运行过程中 其值不能被改变变量 存放数据的内存单元在程序的运行过程中 其值可以改变 变量的定义 变量定义的一般形式 类型名变量表 变量名 大小写字母 见名知义类型名 整型 int实型 floatdouble字符 char 变量的定义 inti j k 定义i j k为整型变量 charc 定义c为字符型变量 floatx y doublearea length 变量名代表内存中的一个存储单元变量类型决定了存储单元的大小 变量的使用 变量 先定义 后使用先赋值 后引用 includevoidmain intx y x 3 y x x printf d y 变量的赋值 赋初值 在定义变量时对它赋值inta 5 b 3 赋值表达式 inta b a 5 b 3 输入函数 scanf d d 变量赋初值 在定义变量的同时设置初值 也称初始化 如 inta 3 floatf 3 56 charc a inti j k 5 intx 1 y 1 z 1 intx y z 1 标识符命名规则 标识符 用来标识变量名 符号常量名 函数名 数组名 文件名等的有效字符序列 1 组成字符 字母 数字 下划线 2 以字母或下划线开头 3 字符长度不超过8个字符 4 标示符区分大小写 5 保留字不能作为标识符使用 如y3 imaxELSE7yint 合法 不合法 保留字 保留字 关键字 其为C语言中具有特定含义 专门用作语言特定成分的一类标识符 如 mainintcharfloatdefine保留字分类 类型说明符 例如 int 语句定义符 例如 if 预处理命令字 例如 include 1 所有保留字都有固定含义 不能用作其它 2 所有保留字都必须小写 整型数据的运算与分析 鸡兔同笼问题在一个笼子里同时养着一些鸡和兔 你想了解有多少只鸡和多少只兔 若已知鸡和兔的总头数是16和总脚数是40 计算鸡和兔的数量 整型数据的运算与分析 鸡兔同笼问题 includevoidmain inth f x y 定义整型变量h f x y h 16 对整型变量h赋值 使h的值等于16 f 40 对整型变量f赋值 使f的值等于40 y f 2 h 2 对表达式 f 2 h 2进行运算 把结果赋给y x h y 对表达式h y进行运算 把结果赋给x printf x d y d n x y 输出鸡和兔的个数 整型常量与整型变量 一 整型常量 整数 三种表现形式十进制整数 正 负号 0 9 首位不是0例 123 456 0 八进制整数 正 负号 0 7 首位是0例 010 0123十六进制整数 正 负号 0 9 a f A F 前缀是0 x或0X例 0 x10 0X123 123 1111011 B 二进制 173 O 八进制 7B X 十六进制inti 0173 intj 0 x7b intk 123 例 160200 x10 整型变量 如有以下定义及赋值语句intai bi ci di 0 ai 1 说明1为一十进制整数bi 027 说明 027为一八进制整数ci 0 x12 说明0 x12为一十六进制整数 整型变量 二 整型变量1 整型数据在内存中的存放形式 以二进制补码表示 10 10 整型变量 2 整型变量的分类整型变量根据其数值范围 可将变量定义为三类 基本整型 int 2字节短整型 shortint 2字节长整型 longint 4字节无符号数 以unsignedint或unsigned说明 有符号数 以signedint或int说明 整型变量的值是整数 其取值范围有限int型取值范围 32768 32767 整型变量 3 整型变量的定义inta b longnum i j unsignedshortc d 整型数据的输入输出 printf 格式控制 输出参数1 输出参数n scanf 格式控制 输出参数1 输出参数n 格式控制说明 d 以有符号十进制形式输入 输出整数 u 以无符号十进制形式输入 输出整数 o 以八进制形式输入 输出整数 x 以十六进制形式输入 输出整数 例 各种进制整数的输出 includevoidmain printf d o x n 10 10 10 printf d d d n 10 010 0 x10 printf d x n 012 012 运行结果为 10 12 a10 8 1610 a 实型数据的运算与分析 实型数据的运算与分析 分期付款的计算 include 用输入输出函数时用stdio h头文件 include 用数学函数时必须用math h头文件 voidmain intd p 定义d和p为整型变量 floatr m 定义r和m为实型变量 d 324500 给d赋值 p 3245 给p赋值 r 0 008 给r赋值 m log10 p log10 p d r log10 1 r 求m的值 printf month f n m 输出m的值 printf total f n m p 计算并输出总的还款额 实型数据的运算与分析 实数又称浮点数 有两种表示形式 1 十进制小数形式 如123 0 1230 1230 0等等 2 指数形式如123e3 实型变量的表现形式 常用系统中 一个实型数据在内存中占4个字节 32位 浮点型数据是按照指数形式存储的 即在存储时 把指数部分和小数部分分别存放 小数和指数部分各占有的位数有由编译系统决定 实型变量的分类 实型变量分为三类 单精度实型变量 float型 双精度实型变量 double型 长双精度实型变量 longdouble型 sizeofsizeof 类型名 或sizeof 变量名 例如 printf d sizeof longdouble 浮点型数据的舍入误差 由于实型变量是由有限的存储单元组成的 因此能提供的有效数字总是有限的 在有效位之外的数字将被舍去 通常float型有7位有效数字 而double型有16位有效数字 实型数据的输入输出 printf 格式控制 输出参数n scanf 格式控制 输出参数n 格式控制说明 f 以小数形式输入输出实数 e 以指数输入输出实数 2 4字符型数据的运算 例 逐个输出英文字母C H I N A 然后按反序输出 A N I H C includevoidmain chara C b H c I d N e A printf c c c c n a b c d e printf c c c c n e d c b a 2 4字符型数据的运算 一 字符常量字符常量 用单引号括起来的一个字符 如 a b 转义字符 用 开头的字符序列 如 n表示换行 光标移到下一行开头 t表示跳到下一个tab的位置 r表示回车 光标移到本行开头 表示反斜杠字符 字符常量 表示单引号字符 表示双引号字符 ddd1 3位8进制数所代表的字符 ASCII xhh1 2位16进制数所代表的字符 ASCII eg1 charc1 c2 c1 A c2 101 c3 x41 eg2 printf A 101 x41 例转义字符的使用 includevoidmain printf ab c t de rf tg n printf h ti b bj k f gdeh j k ab c def gdeh ih j k 字符变量 二 字符变量定义形式如下 charc1 c2 c3 c1 a c2 b c3 101 字符变量在内存中以一个字节存放 字符数据的存储 1 将一个字符常量放到一个字符变量中 并不是将该字符本身放到内存单元中 而是将该字符的相应的ASCII码放到存储单元中 实际上也就是以二进制的形式存放的 例向字符变量赋以整数 includevoidmain charc1 c2 c1 a c2 b printf c c n c1 c2 c1 97 c2 98 printf c c n c1 c2 a ba b 字符数据的存储 2 字符数据与整型数据可以相互赋值 3 字符数据可以以字符形式输出 也可以以整型数形式输出 例题 includevoidmain inti charc c a i 97 printf c d n c c printf c d n i i a 97a 97 45 可编辑 例大小写字母的转换 includevoidmain charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 A B 字符数据的存储 字符数据在内存中占一个字节 即只能存放0 255范围内的整数 注意 turboC把字符处理成带符号的整数 即认为其取值范围为 128 127 如果使用ASCII码为0 127间的字符 用 d输出时 会输出一个正整数 如果使用ASCII码为128 255间的字符 用 d输出时 会输出一个负整数 例题2EG includevoidmain charc c 376 printf c d c c 字符型数据的输入输出 printf 格式控制 输出参数1 输出参数n scanf 格式控制 输出参数1 输出参数n 格式控制说明 c 输入输出一个字符 字符串常量 三 字符串常量字符串常量是由一对双引号括起来的字符序列 如 Howdoyoudo CHINA a C规定 在存储字符串常量时 由系统在字符串的末尾自动加一个 0 作为字符串的结束标志 如 CHINA 在内存中存储为 字符常量与字符串常量的区别 1 定界符不同 字符常量使用单引号 而字符串常量使用双引号 2 长度不同 字符常量的长度固定为1 而字符串常量的长度是某个整数 3 存储要求不同 字符常量存储的是字符的ASCII码值 而字符串常量 除了要存储有效的字符外 还要存储一个结束标志 0 字符串数据的输入输出 printf 格式控制 输出参数1 输出参数n scanf 格式控制 输出参数1 输出参数n 格式控制说明 s 输入输出一个字符串 例题3EG includevoidmain charc 20 scanf s c printf s n c 各类数值型数据间的混合运算 整型 实型 包括单 双精度 和字符型数据可以混合运算 如 10 a 1 5 8765 1234 b 是合法的 在运算时 不同类型的数据要先转换成同一类型 然后进行运算 2 5符号常量 2 5符号常量 符号常量的作用改进 pow r n 函数 如何替代3 1415926 方法一 doublePI 3 1415926 问题 如果误操作 PI 9 8 会造成错误 方法二 采用符号常量 definePI3 1415926然后用PI代替所有出现的3 1415926 2 6算术运算符和算术表达式 在 语言中 除控制语句和输入输出函数外 其它所有基本操作都作为运算符处理 1 算术运算符7 逗号运算符2 关系运算符8 指针运算符3 逻辑运算符9 求字节数运算符4 位运算符10 强制类型转换运算符5 赋值运算符11 分量运算符6 条件运算符12 下标运算符13 其他 算术运算符和算术表达式 1 五种基本算术运算符 加法或正值运算符 如2 3 6 减法或负值运算符 如2 3 6 乘法运算符 如3 42 x 除法运算符 如5 3 x y a b 模运算符或求余运算符 如7 4的值为3 注意 两个整数相除时 其值为整数 如5 3值为1 除数 被除数中有一个为负值时 结果 向零取整 如 5 3值 1 除数 被除数中有一个为实数时 结果为double型 两侧均要为整型数据 7 47 4 7 4的值为多少 33 3 算术运算符和算术表达式 2 算术表达式和运算符的优先级与结合性 1 用算术运算符和括号将运算对象 也叫操作数 连接起来的 符合C语言语法规则的式子 称为算术表达式 运算对象包括常量 变量 函数等 2 运算符的优先级与结合性优先级 先 后 结合性 左结合性 强制类型转换运算符 3 强制类型转换运算符可以用一个强制类型转换运算符将一个表达式转换成所需类型 一般形式 类型名 表达式 如 double a int x y float 5 3 例强制类型转换 includevoidmain floatx inti x 3 6 i int x printf x f i d x i X 3 600000 i 3 自增 自减运算符 4 自增 自减运算符 i i表示在使用i之前 先使i的值加1或减1 i i 表示在使用i之后 使i的值加1或减1 例题4EG includevoidmain inti 0 j j i printf d d n i j i 0 j i printf d d n i j 1 01 1 注意区分 j i 1和j i与j i 自增 自减运算符 注意 1 自增 自减运算符只能用于变量 而不能用于常量或表达式 如 5 a b 是不合法的 2 和 的优先级高于算术运算符 且结合性是右结合性 如 i 相当于 i 赋值运算符与赋值表达式 一 赋值运算符 用法 变量 表达式 作用 将表达式的值赋给变量 常量 变量是表达式的特例 如 a 5 ave a b 10 注意 与数学中的等式不同 二 赋值结果与类型转换1 实型数据赋给整型变量时 舍弃实数的小数部分 赋值运算符与赋值表达式 2 整型数据赋给单 双精度变量时 数值不变 但以浮点数形式存储到变量中 3 将一个double型数据赋给float变量时 截取其前面7位有效数字 4 长度相同的有符号与无符号整型数间 原样赋值 但数值有时会有变化 例题5EG includevoidmain inta 3 b floatc 2 3 d e doublef 123 45678987656 b c d a e f printf b d d f e f b d e b 2 d 3 000000 e 123 456787 例6有符号数传送给无符号变量 includevoidmain unsigneda intb 1 a b printf u a 1 65535 赋值运算与赋值表达式 5 char int long等类型的转换1 短 数据赋给 长 变量符号扩展 若最高位为1 负数 则变量高字节位补1 反之 补0 2 长 数据赋给 短 变量只将数据的低字节位原封不动地送到变量中 数据有可能有差错 例题6EG includevoidmain charc inti c 43 i c printf i d n i c 376 i c printf i d n i i 43i 2 赋值运算符与赋值表达式 三 复合的赋值运算符在赋值符 之前加上其它运算符 构成复合赋值运算符 如 a 3等价于a a 3x y 8等价于x x y 8 x 3等价于x x 3 赋值运算符与赋值表达式 四 赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为 赋值表达式 形式 变量 表达式如 a 5a b 5 计算过程 计算赋值运算符右侧 表达式 的值 将计算结果赋给左侧的变量 右结合性 赋值表达式的值就是被赋值的变量的值 如 a b c 5 a 5 c 6 a b 4 c 6 a a a a 逗号运算符和逗号表达式 形式 表达式1 表达式2 表达式i作用 用于连接表达式如 3 5 6 8计算过程 求解表达式1 再求解表达式2 表达式i 整个逗号表达式的值是表达式i的值 一个逗号表达式又可与另一个表达式组成一个新的逗号表达式 逗号运算优先级低于赋值运算 如 a 3 5 a 4 a 5 条件判断如果你在家 我去拜访你 如果考试不及格 要补考 如果遇到红灯 要停车等待 周末我们去郊游 70岁以上的老人 入公园免票 如果a b 输出a 条件判断的结果是一个逻辑值 是 或者 否 在计算机语言中用 真 或者 假 表示 关系运算符和关系表达式 关系运算符和关系表达式 1 关系运算 对两个量进行 比较运算 2 关系运算符 3 优先级 同级 同级 算术运算符 关系运算符 赋值运算符如 c a b等同于c a b a b c等同于a b c a b c等同于a b c 4 结合性 左结合 高低 高低 关系运算符和关系表达式 5 关系表达式 用关系运算符将两个表达式 算术或赋值表达式 连接起来的有意义的式子 如 x 0 a Aa a b ba ba b ca b c 条件运算符和条件表达式 形式 作用 用于判断选择操作如 a b a b计算过程 求运算 表达式1 若值为真 则整个条件表达式的值为 表达式2 的值 反之 则为 表达式3 的值 如 a 2 b 3 c a b a b a b a b条件运算优先级高于赋值运算 低于关系和算术运算 条件运算的结合方向是右结合 如 x 10 xb 4 0 2 条件运算符和条件表达式 例 从键盘中输入字符 如果字符是英文小写字母 则将其转换成大写后输出 否则输出原字符 提示 大写字母的ASCII码比对应小写字母的小32 Charc scanf c c a c z c 32 c 逻辑运算符和逻辑表达式 判断条件不是一个简单的条件 而是一个复合的条件 如 是中国公民 且在18岁以上才有选举权 5门课都及格 才能升级 70岁以上的老人或10岁以下儿童 入公园免票 逻辑运算符和逻辑表达式 1 逻辑运算符 与 或 非 2 优先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品质量保证和赔偿协议书
- 投资公司贷款合同书4篇
- 医护人员聘用标准合同3篇
- 专业超市联营合同4篇
- 系统设备安装施工合同3篇
- 山东行政事业单位国有房屋租赁合同2篇
- 开荒保洁收款合同范本
- 企业代办外贸合同范本
- 铺设地坪劳务合同范本
- 农垦复垦合同范本
- GB/T 42381.8-2023数据质量第8部分:信息和数据质量:概念和测量
- 中国传统故事英文九色鹿二篇
- 设施蔬菜生产机械化技术
- LY/T 1821-2009林业地图图式
- JJF 1272-2011阻容法露点湿度计校准规范
- 液压与气压传动 第2版 马振福 高职课件0、1新
- 危化品安全管理学习课件
- SY∕T 7298-2016 陆上石油天然气开采钻井废物处置污染控制技术要求
- 突发事件处理记录表(标准范本)
- 磁敏传感器(品) 课件
- 美国航空无线电设备公司标准ARINC
评论
0/150
提交评论