C语言程序设计第二章.ppt

上传人:max****ui 文档编号:6333946 上传时间:2020-02-23 格式:PPT 页数:62 大小:1.02MB
返回 下载 相关 举报
C语言程序设计第二章.ppt_第1页
第1页 / 共62页
C语言程序设计第二章.ppt_第2页
第2页 / 共62页
C语言程序设计第二章.ppt_第3页
第3页 / 共62页
点击查看更多>>
资源描述
重庆电力高等专科学校 2 1C语言的数据类型 2 3变量赋初值 2 4各类数值型数据间的混合运算 2 2常量与变量 2 5C语言的运算符和表达式 重庆电力高等专科学校 2 1C语言的数据类型 图2 1C语言的数据类型分类 重庆电力高等专科学校 2 1C语言的数据类型 表2 1C语言的数据类型及取值范围 重庆电力高等专科学校 2 2常量与变量 程序运行过程中 其值不能被改变的量称为常量 其值可以改变的量称为变量 2 2 1常量 1 整型常量 1 十进制整数 由数字1 9开头 其余各位由0 9组成 如123 789 0等 2 八进制整数 由数字0开头 其余各位由0 7组成 在书写时要加前缀 0 零 如012 表示八进制数12 3 十六进制整数 由数字0 x或0X开头 其余各位由0 9与字母a f 0X开头为 组成 在书写时要加前缀 0 x 或 0X 开头 如0 x36 代表十六进制数36 重庆电力高等专科学校 2 2常量与变量 注意 1 在C语言中10 010 0 xl0是3个数值完全不同的整数 2 整型数可longint shortint和unsignedint等若干种 3 长整型数在书写时加一个后缀 L 4 整型数又可以是正数和负数 例如 123 123 0123 0123 0 x789 0 x789是合法的 16 020 0 xl0在计算机中的内部表示都相同 重庆电力高等专科学校 2 2常量与变量 2 实型常量实型常量又称实数 浮点数 有两种表现形式 1 十进制实数 由数字和小数点组成 如0 149 123 0 2 指数形式 用带指数记数法来表示 如123E2或123e2 注意书写 3 字符型常量字符型常量有 字符常量 字符串常量和转义字符三种 1 字符常量字符常量构成 用一对单引号括起来的单个字符 例如 A a X 等都是字符常量 字符常量的值 就是该字符的ASCII码值 可以和数值一样参加运算 例如 字符 A 的数值为十进制数65 重庆电力高等专科学校 2 2常量与变量 3 字符型常量 2 字符串常量字符串常量构成 用一对双引号括起来的字符序列 例如 abc CHINA yes 1234 Howdoyoudo 等 都是字符串常量 字符串长度 字符中的字符个数 例如 Howdoyoudo Goodmorning 和 的长度分别为14 13和0 C语言规定 字符串存储时 系统在末尾自动加一个 0 符号作为字符串的结束标志 例如 字符串为 CHINA 内存中实际存储为 重庆电力高等专科学校 2 2常量与变量 注意 字符常量与字符串常量的区别 例如 字符常量 A 与字符串常量 A 的区别是 定界符不同 字符常量使用单引号 而字符串常量使用双引号 长度不同 字符常量长度为1 字符串常量长度可为任意值 0或某个整数 存储要求不同 字符常量存储的是字符的ASCII码值 而字符串常量 除了要存储有效的字符外 还要存储一个结束标志 0 3 字符型常量 重庆电力高等专科学校 2 2常量与变量 3 字符型常量 3 转义字符 转义字符 C语言中用来表示键盘上的控制符和功能符的特殊符号 例如 回车换行符 换页符等 形式 反斜杠 后面跟一个字符或一个数值 例如 n 为换行 101 与 x41 都表示字符 A 重庆电力高等专科学校 2 2常量与变量 3 字符型常量 重庆电力高等专科学校 2 2常量与变量 例2 1 转义字符的使用 includevoidmain printf ab c t de rf tg n 表示一个空格 printf h ti b bj k 程序运行后在显示屏上的输出结果如下 f gdeh j k若在打印机上输出 则结果如下 fab c gdeh jik 重庆电力高等专科学校 2 2常量与变量 4 符号常量在C语言中用符号来代替常量称为符号常量 习惯上 符号常量名用大写 变量名用小写 以示区别 例2 2 符号常量的使用 程序功能 计算圆的面积 include definePI3 1415926voidmain floatr s r 5 0 s PI r r printf Areais f s 运行结果为 Areais78 539815 重庆电力高等专科学校 2 2常量与变量 注意 使用符号常量的好处是 1 含义清楚 定义符号常量名时应考虑 见名知意 2 在需要改变一个常量时能做到 一改全改 3 符号常量的值在其作用域内不能改变 也不能再被赋值 重庆电力高等专科学校 2 2常量与变量 2 2 2变量 变量 在程序运行过程中其值可以改变的量 变量属性 变量名 变量类型 内存中占用存储单元 和变量的值 1 变量名 变量的名字 变量名 变量命名 遵循标识符命名规则 最好取名时考虑 见名知意 例如 max表示求最大值 sum表示求和等 2 变量类型 整型变量 实型变量和字符变量三种 不同类型的变量 占用的内存单元 字节 数不同 3 变量值 变量在程序运行过程中的取值 在程序中 通过变量名来引用变量的值 重庆电力高等专科学校 2 2常量与变量 重庆电力高等专科学校 2 2常量与变量 1 整型变量 1 整型变量分类根据占用内存字节数的不同 整型变量分为4类 基本整型 int 短整型 short int 长整型 long int 和无符号整型 无符号整型 无符号基本整型 unsigned int 无符号短整型 unsignedshort表示 和无符号长整型 用unsignedlong表示 三种 重庆电力高等专科学校 2 2常量与变量 2 整型变量占用字节数与值域各种类型的整型变量占用的内存字节数 随系统而异 注 对于其它系统中设基本整型占用内存字节数为n 其值域为 2n 8 1 2n 8 1 1 无符号整型变量的值域为 0 2n 8 1 重庆电力高等专科学校 2 2常量与变量 例如 图2 2是在TurboC系统中 int与unsigned最大值 重庆电力高等专科学校 2 2常量与变量 3 整型变量的定义所有变量都必须 先定义 后使用 例如 inta b 定义变量a b为整型 unsignedshortc d 定义变量c d为无符号短整型 longe f 定义变量e f为长整型 注 变量定义一般是放在一个函数的开头的声明部分 重庆电力高等专科学校 2 2常量与变量 例2 3 整型变量的定义与使用 includevoidmain inta b c d 定义a b c d为整型变量 unsignedu 定义u为无符号整型变量 a 12 b 24 u 10 c a u d b u printf a u d b u d n c d 运行结果为 a u 22 b u 14 重庆电力高等专科学校 2 2常量与变量 2 实型变量C语言的实型变量 分为两种 1 单精度型 float 占4个字节 32位 7位有效数字 2 双精度型 double 占8个字节15位有效数字 例如 floatx y 定义x y为单精度实数 doubleb 定义b为双精度实数 longdoublec 定义c为长双精度实数 重庆电力高等专科学校 2 2常量与变量 3 字符变量字符变量的类型关键字为char 占用一个字节内存单元 1 变量值的存储字符变量在内存中占一个字节 以该字符的ASCII码值 无符号整数 存储到内存单元中 例如 charchl ch2 定义两个字符变量 chl ch2 chl a ch2 b 给字符变量赋值 存储如图所示 重庆电力高等专科学校 2 2常量与变量 2 特性C语言中字符型数据与整型数据之间可以通用 例如 字符型数据既可以以 字符形式 或者 整数形式 输出 例2 4 字符变量的字符形式输出和整数形式输出 includevoidmain charch1 ch2 ch a ch2 b printf ch1 c ch2 c n ch1 ch2 字符形式输出 printf ch1 d ch2 d n ch1 ch2 整数形式输出 程序运行结果 ch1 a ch2 bch1 97 ch2 98 注意 字符数据占一个字节 它只能存放0 255范围内的整数 重庆电力高等专科学校 2 2常量与变量 允许对字符数据进行算术运算 例2 5 字符数据的算术运算 includevoidmain charch1 ch2 chl a ch2 B printf ch1 c ch2 c n ch1 32 ch2 32 字母的大小写转换 程序的运行结果 ch1 A ch2 b 重庆电力高等专科学校 2 3变量赋初值 变量赋初值又称为变量初始化 有其两种方法 1 先定义一个变量 然后再给它赋一个值 例如 inta a 2 在定义变量的同时就对变量进行初始化 例如 charch a floatb 2 345 intx y 3 部分变量赋初值 对y赋初值3 重庆电力高等专科学校 2 3变量赋初值 例2 6 变量赋初值 include stdio h voidmain intx y 3 charch ch a printf d d c x y ch 运行结果如下 2513a 注 x没有进行初始化 输出为随机不定值251 下次可能是其他的结果 重庆电力高等专科学校 2 4各类数值型数据间的混合运算 在同一个表达式中出现多种数据类型的混合运算时 先将各种类型数据转换成同一类型数据 然后才能运算求值 转换规则如图2 4所示 重庆电力高等专科学校 2 4各类数值型数据间的混合运算 1 规范化图2 4中水平方向的向左箭头的转换为规范化转换 2 保值转换图2 4中向上方向的向上箭头的转换为保值转换 即将类型等级较低转换成等级较高的 例如 有如下定义 intm floatn doubled longinte 对表达式 c d 20 m n d e 问 上述表达式最后的结果是什么类型 重庆电力高等专科学校 求 c d 20 m n d e的转换过程是 计算 c d 时 先将 c 和 d 转换成整型数99 100 运算结果为199 计算m n时 先将m和n都转换成为双精度型 将e转换成双精度型 d e结果为双精度型 假设所用计算机是先计算运算符左边操作数 那么 c d 20计算后结果为3980 再将3980转换成双精度型 然后与m n的结果相加 再减去d e的结果 表达式计算完毕 结果为双精度 2 4各类数值型数据间的混合运算 重庆电力高等专科学校 2 5C语言的运算符和表达式 C语言表达式是由运算符 常量及变量组成 运算符 即操作符 是对运算对象 又称操作数 进行某种操作的符号 有二元 双目 一元 单目 运算符 对于运算符应从以下不几个方面掌握 1 运算符号2 运算规则 即所进行的操作3 运算的优先级别4 运算顺序5 运算对象6 运算结果 重庆电力高等专科学校 2 5C语言的运算符和表达式 1 五种基本算术运算符 加法 减法 取负 乘法 除法 求余数 运算规则与代数运算基本相同 但有以下不同之处需要说明 1 除法运算 两个整数相除商为整数 小数部分被舍弃 例如 5 2 2而 5 0 2 2 5 2 求余数运算 参加运算的两操作数均为整型数据 否则出错 结果是整除后的余数 在TurboC中运算运算结果的符号与被除数相同 例如 7 3 1 7 3 1 商分别为2 2 7 3 1 7 3 1 商分别为 2 2 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 表达式和算术表达式 1 表达式的概念 表达式 用运算符和括号将常量 变量和函数等连接起来符合C语言语法规则的式子 单个常量 变量或函数构成的表达式称为简单表达式 2 算术表达式的概念 算术表达式 用算术运算符和括号将常量 变量和函数等连接起来的符合C语言语法规则的式子 例如 3 6 9 x y 2 1 5 a等 都是算术表达式 重庆电力高等专科学校 2 5C语言的运算符和表达式 3 表达式求值 运算顺序例如 先乘除后加减 结合性同级运算的结合方向称为结合性 例如 算术运算符的结合方向是 从左至右 即先左后右 称左结合 重庆电力高等专科学校 2 5C语言的运算符和表达式 3 强制类型转换一般格式为 功能 将一个表达式强制转换成所需类型 例如 double a将变量a的值转换成double型 int x y 将x y的结果转换成int型 float 5 2等价于 float 5 2 将5转换成实型 再除以2 2 5 float 5 2 将5整除2的结果 2 转换成实型 2 0 注意 强制转换类型得到的是一个所需类型的中间量 原表达式类型并不发生变化 例如 x原定为float型 则 double x只是将变量x的值转换成一个double型的中间量 其x的数据类型并未转换成double型 仍为float型 重庆电力高等专科学校 2 5C语言的运算符和表达式 4 自增 自减 运算符自增 运算是使单个变量的值增1 自减 运算使单个变量的值减1 自增 自减运算符都有两种用法 1 前置运算 运算符放在变量之前 变量 变量先使变量的值增 或减 1然后再以变化后的值参与其他运算 即先增 减 后运算 2 后置运算 运算符放在变量之后 变量 变量 变量先参与其他运算 然后再使变量的值增 或减 1 即先运算 后增 减 重庆电力高等专科学校 2 5C语言的运算符和表达式 例如 如果i的原值等于3 则执行下面的赋值语句 j i i的值先增1变成4 再赋给j j的值为4 j i 先将i的值3赋给j j的值为3 然后i增1变成4 例2 7 自增 自减运算符的用法与运算规则示例 includevoidmain intx 6 y printf x d n x 先输出x的初值 y x 前置运算 x先增1 7 然后再赋值给y 7 printf y x x d y d n x y y x 后置运算 先将x的值 7 赋值给y 7 然后x再减1 6 printf y x x d y d n x y 程序运行结果 x 6y x x 7 y 7y x x 6 y 7 重庆电力高等专科学校 2 5C语言的运算符和表达式 说明 1 自增 自减运算常用于循环语句中使循环控制变量加 或减 1 2 自增 自减运算符不能用于常量和表达式 例如 5 a b 等都是非法的 3 连续使用同一变量进行自增或自减时很易出错 例如 x x x 假设x的初值 3 解 表达式的值等于9 变量x的值变为6 为什么 请思考 4 书写时最好采用能理解的写法 避免误解 如 不要写成i j形式 可产生 i j或i j 二义性 最好写成 i j或i j 的形式 但C语言规定 从左到右取尽可能多的符号组成运算符 i j应理解为 i j 5 在printf 函数中从右向左计算 例如 设i的初值为5 Printf d d i i 输出结果为 6 5 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 2关系运算符和关系表达式 关系运算就是将两个数据进行 比较运算 判定两个数据是否符合给定的关系 如果条件成立结果为 真 否则条件不成立结果为 假 1 关系运算符及其优先次序 1 关系运算符 大于 大于或等于 等于 不等于 注意 等于 关系运算符是双等号 而不是单等号 赋值运算符 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 关系运算符优先级前4个优先级相同 后2个相同 且前4个高于后2个 即 3 与其他运算的优先级关系运算符的优先级低于算术运算符 但高于赋值运算符 即 算术运算符 赋值运算符 2 关系表达式关系表达式 用一个关系运算符将两个表达式 可以是算术表达式 关系表达式 逻辑表达式 赋值表达式或字符表达式等 连接起来 进行关系运算的式子 重庆电力高等专科学校 2 5C语言的运算符和表达式 例如 a b a b c d a 3 b a b b c 都是合法的关系表达式 关系表达式的值是一个逻辑值 非 真 即 假 C语言中用整数 1 表示 逻辑真 用整数 0 表示 逻辑假 例如 假设intx 3 y 4 z 5 则 1 x y的值为0 2 x y z的值为1 3 x y z的值为1 4 x y z的值为6 再次强调 关系表达式的值 还可以参与其他种类的运算 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 3逻辑运算符和逻辑表达式 关系表达式只能描述单一条件 例如 x 0 如果需要描述 x 0 且 x l0 就不能能写为 0 x 10 必须借助于逻辑表达式了 1 逻辑运算符及其优先次序 1 逻辑运算符及其运算规则逻辑运算符 逻辑与 相当于 并且 逻辑或 相当于 或者 逻辑非 相当于 否定 其中 和 是双目运算符 而 是单目运算符 重庆电力高等专科学校 2 5C语言的运算符和表达式 例如 下面的表达式都是逻辑表达式 x 0 x 0 并且x5 x5 x 0 否定x 0 即 x不等于0时 条件成立 year 4 0 year 100 0 year 400 0 year能被4整除 同时不能被100整除 或者 year能被400整除 逻辑运算符的运算规则 当且仅当两个运算量为 真 结果为 真 否则为 假 当且仅当两个运算量为 假 结果为 假 否则为 真 当运算量为 真 时结果为 假 当运算量为 假 时结果为 真 重庆电力高等专科学校 2 5C语言的运算符和表达式 例如 假定x 5 则 x 0 x5 的值为 假 2 逻辑运算符的运算优先级 逻辑运算符优先级逻辑非的优先级最高 逻辑与次之 逻辑或最低 即 非 与 或 与其他种类运算符的优先关系 非 算术运算 关系运算 与 或 赋值运算 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 逻辑表达式逻辑表达式 用逻辑运算符将1个或多个表达式连接起来 进行逻辑运算的式子 例如 year 4 0 year 100 0 year 400 0 就是一个判断年份是否是闰年的逻辑表达式 逻辑表达式的值 是一个逻辑值 非 真 即 假 整数 1 表示 逻辑真 用 0 表示 逻辑假 例如 假设num 12 则 1 num的值 0 2 num 1 num31的值 1 重庆电力高等专科学校 2 5C语言的运算符和表达式 3 说明 1 逻辑运算符两侧的操作数可以是任何类型的数据 如实型 字符型等 2 在计算逻辑表达式时 不一定所有的表达式都要求解 对于与运算 只要一个操作数为 假 结果为 假 不需求解第二个操作数 对于或运算 只要一个操作数为 真 结果为 真 不需求解第二个操作数 例如 假设intm n a b c d m n a b c d 1 表达式 m a b n c d 结果为0 计算时 因 m a b 的值为0 不需计算表达式 n c d 因 n c d 是 真 还是 假 其值都为 假 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 4赋值运算符和赋值表达式 1 赋值运算符号 就是赋值运算符 它的作用是将一个表达式的值赋给一个变量 赋值运算符的一般形式为 注意 被赋值的变量必须是单个变量 且必须在赋值运算符的左边 例如 x 5 将5赋值给变量x y float 5 2 将表达式的值 2 5 赋值给变量y 当表达式值的类型与变量类型不一致 系统自动将表达式的值转换成被赋值变量的数据类型后再赋值给变量 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 复合赋值运算在赋值符 之前加上其他双目运算符可构成复合赋值符 复合赋值运算的一般格式为 它等价于 双目运算符 表达式 例如 x 3 等价于x x 3 y x 6 等价于y y x 6 而不是y y x 6 C语言中有10种复合赋值运算符 复合算术运算符 5个 复合位运算符 5个 重庆电力高等专科学校 2 5C语言的运算符和表达式 3 赋值表达式赋值表达式 由赋值运算符或复合赋值运算符将一个变量和一个表达式连接起来的表达式 一般格式 赋值表达式也有一个值 被赋值变量的值 就是赋值表达式的值 例如 a 5 为赋值表达式 a的值 5 就是表达式的值 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 5条件运算符和条件表达式 1 一般格式 C语言中唯一的一个三目运算符 三个表达式类型可以各不相同 但通常 表达式1 为逻辑表达式或关系表达式 2 运算规则计算 表达式1 的值为非0 真 则结果等于 表达式2 的值 否则 结果等于 表达式3 的值 重庆电力高等专科学校 2 5C语言的运算符和表达式 3 运算符的优先级别与结合性条件运算符的优先级 高于赋值运算符 但低于关系运算符和算术运算符 其结合性为 从右到左 即右结合性 例如 设a 2 c a f 3 0则下列表达式a 0 a a结果为 f 3 0 a c结果为 f 0 a 0 2 1 a 0 1 0 结果为 a 0 a 1 a 0 结果为 2121 重庆电力高等专科学校 2 5C语言的运算符和表达式 例2 8 从键盘上输入一个字符 如果它是大写字母 则把它转换成小写字母输出 否则 直接输出 voidmain charch printf Inputacharacter scanf c 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 6逗号运算符和逗号表达式 用逗号运算符 连接起来的式子称为逗号表达式 逗号运算符又称顺序求值运算符 1 一般形式 2 求解过程 从左至右 依次计算各表达式的值 最后 表达式n 的值即为整个逗号表达式的值 例如 a 3 5 a 4的值 60先求解a 3 5得a 15 再求a 4 60 所以逗号表达式的值 60 又例如 a 3 5 a 4 a 5的值 20 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 7求字节数运算 求字节数运算运算符 sizeof 类型 变量 功能 sizeof运算符求变量或类型的字节长度 例如 sizeof double 为8sizeof int 为2floatf inti i sizeof f 的值为4 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 8位逻辑运算 重庆电力高等专科学校 2 5C语言的运算符和表达式 说明 1 所有操作数都必须首先转换成二进制数再按位运算 2 位运符优先级别 3 位双目运算符优先级别低于关系运算符 高于逻辑运算符 运算自左向右运算 关系运算符 逻辑运算符 4 运算符自右向左运算 是自左向右运算 重庆电力高等专科学校 2 5C语言的运算符和表达式 例如 设有定义 inta 3 b 9 则有 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 9位移运算和位运算赋值运算符 1 位移运算 重庆电力高等专科学校 2 5C语言的运算符和表达式 优先级别 仅次于算术双目运算符 运算方向从左向右运算 1 左移运算符左移运算符把一个数的二进位全部左移若干位 例如 b 2将b的各二进位右移2位 移到右端的低位被舍弃 对无符号数 高位补0 如b 14时 b为00001110 b 2为00000011 10 此二位舍弃 重庆电力高等专科学校 2 5C语言的运算符和表达式 右移一位相当于除以2 右移n位相当于除以2n 右移时 应注意符号位问题 补入0的称为 逻辑右移 补入1的称 算术右移 例如 m为八进制数113755 m 1001011111101101m 1 0100101111110110 逻辑右移时 m 1 1100101111110110 算术右移时 重庆电力高等专科学校 2 5C语言的运算符和表达式 位运算赋值运算符 位运算赋值运算符优先级 6个运算符同级 与赋值符级别相同 运算方向自右向左运算 例如 设a 6 b 3 a b均为无符号整型 则 b a 结果a不变 b为2a b 结果b不变 a为48 重庆电力高等专科学校 2 5C语言的运算符和表达式 2 5 10 运算符的优先级与结合性 结合性就是指操作数两侧的运算符相同优先级时 该操作数是先与左边 还是先与右边的运算符结合 若先与左面的运算符结合 称为左结合性 即从左至右运算 反之 称为右结合性 从右至左运算 总结得出 结合性 除单目运算符 条件运算符和赋值运算符是右结合性外 其他运算符都是左结合 优先级顺序 表中第1级最高 第15级 号运算符最低 运算符的优先级与结合性见表2 6所示 重庆电力高等专科学校 表2 6运算符的优先级与结合性
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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