常量、变量、运算符和表达式.ppt

上传人:max****ui 文档编号:8444963 上传时间:2020-03-29 格式:PPT 页数:58 大小:359.50KB
返回 下载 相关 举报
常量、变量、运算符和表达式.ppt_第1页
第1页 / 共58页
常量、变量、运算符和表达式.ppt_第2页
第2页 / 共58页
常量、变量、运算符和表达式.ppt_第3页
第3页 / 共58页
点击查看更多>>
资源描述
1 第二章常量 变量 运算符和表达式 知识回顾 C语言有什么特点如何书写编译并运行C程序printf 函数 3 内容摘要 C语言的数据类型常量介绍如何使用变量来存储信息如何声明和初始化变量运算符与表达式类型转换 4 C语言的数据类型 数据类型是我们对数据的描述例如数字整数 5 123 9实数 23 56 6 78 0 12字符 a f 等等 5 C语言的数据类型 6 数据类型描述 7 数据类型说明 windows为32位计算机环境上表给出的是以此为例的各数据类型占用的内存空间字节数和表示的数值范围可以利用sizeof 函数获得内存空间字节数 include stdio h voidmain inta chara shorta printf d sizeof a 8 常量介绍 不同类型的数据需要采用不同的方式来存储C语言中有两种存储数值的方式变量常量值不能被改变的量被称为常量字面常量符号常量 9 常量介绍 字面常量字面常量是指在源代码中直接输入的值例如 intage 25 整型常量floatscore 85 5 浮点数常量charsex f 字符常量charname 10 lucy 字符串常量其中25 85 5 f lucy 是字面常量 10 常量介绍 整型常量的表示方式首位不为0的常量被视为10进制整数十进制常量可以包含数字0 9 并可以在最前面加上正号或负号 正号可省略 以0打头的常量被视为八进制整数八进制常量可以包含数字0 7 并可以在前面加上正号或负号以0 x或OX打头的常量被视为十六进制整数十六进制常量可以包含数字0 9和字母A F 并可以在前面加上正号或负号 11 常量介绍 符号常量在程序中用一个符号来表示一个常量这个符号就被称为符号常量例如 圆周率 的值 3 14 C语言中使用预编译处理命令 define来定义符号常量 definePI3 14 注意 define语句不以分号结尾则可以这样计算圆的面积 area PI r r常量不能修改 程序中写PI 3 1415这样会引发错误 12 变量介绍 变量的概念程序运行中 其值可以被改变的量是变量变量是计算机内存中一个被命名的数据存储位置使用变量名时实际上用的是存储在这里的数据的值 13 变量介绍 变量的类型与数据类型是对应的不同数值需要内存空间不同 需要不同变量类型例如 小型整数 如6 250和 18 需要的内存较少计算机整数运算速度非常快大型整数和浮点数 如5000000000 或0 000000871256 需要较多存储空间 执行数学运算所需时间更长使用合适的变量类型 可确保程序运行效率提高 14 变量示例 includevoidmain inta b c sum 声明四个整型变量 分别存放三个数及它们的和printf Enterthreenumbers n 提示用户的信息scanf d d d 打印输出结果 15 变量的定义及初始化 变量定义任何变量都必须遵守先定义后使用的原则变量定义的一般形式 存储类别 数据类型变量名1 变量名2 存储类别不是必须要求声明的部分 后面章节中将讲到这个概念intnum1 num2 定义num1 num2为整型变量floatavg 定义avg为实型变量charch1 ch2 定义ch1 ch2为字符型变量 16 变量的定义及初始化 变量定义的位置定义在哪里是至关重要的在哪里定义决定着这个变量在哪些范围内有效现学习阶段 可将所有变量声明放在一起 并放置于main 函数的主体语句中的前面 17 变量的定义及初始化 变量的初始化定义变量时指示计算机为变量留出存储空间变量值并没有指定 可能为随机值使用变量前 一定要将其初始化为一个确定的值 18 变量的定义及初始化 变量初始化方法定义变量的同时进行赋初值的操作定义变量后 使用赋值语句来初始化变量intnum1 34 num2 num2 67 定义了num1和num2两个整型变量定义的同时初始化num1为34使用了等号 赋值运算符将67赋给变量num2 19 变量的定义及初始化 初始化注意事项不要将变量初始化为该变量数据类型所表达的值域允许范围之外的值shortintweight 100000 错误C编译器也许不会发现这种错误 因此程序将被编译和链接 但当程序运行时 结果将可能与预期的不同 20 变量的定义及初始化 初始化原则了解不同类型变量占用的字节数 不要试图将超出变量取值范围的值赋给变量声明变量时 应尽可能对它进行初始化存储整型数据时 尽量不要使用float或double变量 会降低效率不要将负值赋给unsigned变量 21 变量的定义及初始化 特殊的char数据类型C语言使用char数据类型来存储字符 例如 5 都是字符计算机内存中 所有数据都以数值方式存储人们为每个字符进行了相对应的数值编码称为ASCII字符集 ASCII表示美国信息交换标准码 例如 字母a的ASCII码为97 那么 当在char变量中存储字符a时 实际存储的是97 22 变量的定义及初始化 char变量处理使用char变量之前必须声明 也可以在声明的同时对它进行初始化charch ch1 b f charcode 3 函数printf 可用于打印字符和数字格式字符串 c指示printf 打印一个字符 而 d指示它打印一个十进制整数 23 变量的定义及初始化 include stdio h voidmain charch1 a charch2 90 printf 作为一个字符ch1 c ch1 printf n作为一个数字ch1 d ch1 printf n作为一个字符ch2 c ch2 printf n作为一个数字ch2 d n ch2 24 问题 上半讲结束 提出问题 如何编写程序定义并输出我们的班号与拼音姓名 25 运算符与表达式 什么是运算符 运算符是一个命令编译器对一个或多个操作数执行某种运算的符号类似于 等操作数是运算符对其执行操作的东西类似于 1 a 等例如 a 1中 为运算符 a 1 为操作数 26 运算符与表达式 什么是表达式 表达式可以是任何计算结果为数值的东西有各种复杂程度不同的表达式最简单的表达式只包含一项 一个简单变量 字面常量或符号常量例如 PI 程序中定义的符号常量复杂表达式由多个简单的表达式组成表达式之间用运算符连接例如 3 9 a 4 9等赋值语句 27 运算符与表达式 赋值运算符赋值运算符是一个等号 编程中的用途与数学中的 相等 是不同的例如下面的语句 inta 3 b b a 指的是将a的值 3 赋给b 而不是说a等于b 28 运算符与表达式 赋值运算符的格式变量 表达式赋值语句的右边可以是任何表达式 expression 但左边必须是一个变量名例如 inta 2 b 3 c c a 2 b 该句被执行时 将计算表达式a 2 b的值 并将结果7赋给变量c 29 运算符与表达式 算术运算符算术运算符是执行诸如加 减等数学运算的2种单目算术运算符5种双目算术运算符注 目 就是代表参与运算的操作成员数量 30 运算符与表达式 单目算术运算符单目数学运算符是指完成此类运算只需要一个操作数 31 运算符与表达式 递增与递减运算符只能用于变量 而不能用于常量分别将操作数加1和减1 a 等价于a a 1 b 等价于b b 1 这两个运算符放在操作数的前面 前缀模式 和放在操作数的后面 后缀模式 时 效果却不等价采用前缀模式时 先执行递增或递减运算 再计算表达式的值采用后缀模式时 先计算表达式的值 然后再执行递增或递减操作 32 运算符与表达式 include stdio h voidmain inta 8 b b a 先取a的值做赋值给b 再执行a a 1printf a d b d n a b 33 运算符与表达式 include stdio h voidmain inta 8 b b a 先执行a a 1 再取a的值做赋值给bprintf a d b d n a b 34 运算符与表达式 双目算术运算符双目运算符需要两个操作数 35 运算符与表达式 大家都很熟悉求模 取余 运算返回第一个操作数除以第二个操作数后得到的余数该运算符要求两边的操作数都是整型例如 10 3 1 商为3 余数为1 25 5 0 商为5 余数为0 2 7 2 商为0 余数为2 36 运算符与表达式 求模运算符应用广泛要求用户输入一个三位数的整数 倒序输出 478变874 include stdio h voidmain inta b c d printf 请输入三位数的整数 scanf d 37 运算符与表达式 运算符优先级和圆括号在包含多个运算符的表达式中 运算的执行顺序是什么样的呢 例如 x 10 5 3 2 38 运算符与表达式 运算符优先级有关运算执行顺序的规则每个运算符都有一个优先级计算表达式时 先执行优先级高的运算符下表中的 1 表示优先级最高 39 运算符与表达式 表达式计算顺序表达式中包含多个优先级相同的运算符 则按从左到右的顺序依次计算例如 15 3 4 3表达式的结果为2 15 3 5 5 4 20 20 3 2 如果我们希望先计算乘法再执行其它运算呢 改写为 15 3 4 3结果变成1 3 4 12 15 12 1 1 3 1 使用圆括号可以改变计算顺序在表达式中 可以使用多个圆括号 并且可以嵌套当圆括号被嵌套时 从内向外计算表达式 40 运算符与表达式 表达式 num 10 22 6 4 7 表达式的计算顺序如下 1 计算最里面括号内的表达式6 4 结果为2 表达式变为 10 22 2 7 2 接着计算表达式22 2 结果为11 表达式变为 10 11 7 3 计算括号内的表达式11 7 结果为4 表达式变为 10 44 最后结果为num 40 通常会在书写表达式时 为清晰思路 即使不改变运算符优先级 也会使用圆括号注意 圆括号必须成对出现 否则编译器将产生错误消息 41 运算符与表达式 关系运算符关系运算符用于比较表达式例如比较两个数字大小时等问题关系运算符所组成的表达式的结果为真true 1 或假false 0 42 运算符与表达式 关系运算符项目表 43 运算符与表达式 include stdio h voidmain inta 3 b 4 c 3 printf d n a b printf d n a b printf d n a c printf d n a c printf d n a b printf d n a b printf d n a b printf d n a b 44 运算符与表达式 关系运算符注意事项 C语言将真 true 解释为1 假 false 解释为0 不要将描述相等关系的关系运算符 和赋值运算符 混淆用户输入的数据被用于表达式或结果为逻辑值的语句中时 数据将被解释为true或false 解释的规则如下 0表示false 所有的非0值表示true关系运算符的正确理解对于我们后面学习条件语句的使用非常重要 45 运算符与表达式 关系运算符的优先级使用关系运算符的表达式中 也可用圆括号来改变优先级 46 运算符与表达式 关系运算符的优先级低于算术运算符例子 inta 3 b 4 c 4 d 2 num a b c d将先计算c d 8再计算a b 7然后比较两个值的大小7 8 结果为0赋给num 47 运算符与表达式 逻辑运算符现实中 评价一个问题时通常要多方参考例如 评选优秀学员的条件出勤率达到95 以上各门课程的平均分在90分以上要用到逻辑运算符把两个条件表达式进行组合 48 运算符与表达式 三种逻辑运算符 49 运算符与表达式 逻辑运算符的运算规则exp1 exp2 当且仅当exp1和exp2表达式的值都为真时 整个表达式的结果为真 exp1 exp2 当且仅当exp1和exp2表达式的值都为假时 整个表达式的结果为假 exp1 当exp1本来为真时 结果为假 本来为假时 结果为真 50 运算符与表达式 include stdio h voidmain floata 代表学生的出勤率floatc ja c代表c语言的成绩 ja代表java课程的成绩floats 代表学生的平均分数printf 请输入该学生的出勤率 scanf f 两个条件有任何一个不满足时 将执行该语句 51 运算符与表达式 逻辑运算符的优先级 是单目运算符优先级高于 和 和所有的关系运算符及所有的双目数学运算符运算符 的优先级高于 它们的优先级低于所有的数学运算符和关系运算符同样也可以使用圆括号来改变计算顺序 52 其他运算符 复合赋值运算符复合赋值运算符是指将双目算术运算符和赋值运算符组合在一起 提供了一种简单的方式a 3 等价于a a 3 a 3 等价于a a 3 a 3 等价于a a 3 a 3 等价于a a 3 a 3 等价于a a 3 53 其他运算符 条件运算符C语言中唯一一个三目运算符 即需要三个操作数 语法如下 a exp1 exp2 exp3 如果exp1的结果为真 即非0 则a exp2的值 否则a exp3的值例如 我们比较变量a b的大小 并将较大值存放于变量big中 big a b a b a b为真 则big a 否则big b 54 其他运算符 逗号运算符 在C语言中经常被用作一个简单的分隔符号在一些情况下逗号是运算符 而不是分隔符例如 inta 10 b 20 x a b 谁能告诉我x是多少 由于使用 运算符时 采用的是后缀模式 因此先将b的值赋给x 然后将a和b的值分别加1 x 20其中的圆括号是必不可少的 因为逗号运算符的优先级低于赋值运算符逗号运算符最常用于for语句中 55 表达式中的类型转换 当表达式中有多种类型的数据参加运算时 这时涉及到表达式中的类型转换如下程序 include stdio h voidmain charch A 大写字母A的ASCII值为65inta 1 floatb 2 1 doublec 10 004 printf 整体求和后结果为 lf n ch a b c lf为double的输出格式控制符 56 表达式中的类型转换 double float long unsigned int char short说明 横向向左箭头表示必定的转换 如字符数据必定先转换为整数 short型转为int型 float型数据在运算时一律转换成双精度型 以提高运算精度 纵向箭头表示当运算对象为不同类型时转换的方向 例如int型与doub1e型数据进行运算 先将int型的数据转换成图double型 然后在两个同类型 double型 数据进行运算 结果为double型 箭头方向只表示数据类型级别的高低 由低向高转换 类型转换是由系统自动进行的 57 课堂总结 C语言有哪些数据类型 如何使用常量与变量 什么是表达式的值 C语言中有哪些运算符 如何在计算数据时进行自动转换 58 提问时间
展开阅读全文
相关资源
相关搜索

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


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

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


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