大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第5讲 表达式求值与库函数

知识回顾表达式1.初级表达式2.二元表达式3.赋值表达式4.后缀表达式5.一元表达式6.逗号表达式
知 识 回 顾 表达式 1.初级表达式 2.二元表达式 3.赋值表达式 4.后缀表达式 5.一元表达式 6.逗号表达式

问题引出1.不同类型的表达式含有不同的运算2.任何式子最终都产生一个值3.当不同类型的表达式出现在一起时如何处理?2.2-2.3副作用和表达式求值2.4 混合类型表达式Vx,怎么办?4.有些运算在运算符中没有,如求2.6 部分库函数
问 题 引 出 1.不同类型的表达式含有不同的运算 3.当不同类型的表达式出现在一起时如何处理? 2.任何式子最终都产生一个值 2.2-2.3 副作用和表达式求值 2.4 混合类型表达式 2.6 部分库函数 4.有些运算在运算符中没有,如求 x , 怎么办?

主要内容B888888888副作用与表达式求值混合表达式语句部分库函数小结目的要求复习思考题上机与编程实践独立作业
主 要 内 容 1 副作用与表达式求值 2 混合表达式 3 语句 4 部分库函数 目的要求 复习思考题 上机与编程实践 独立作业 小 结

2.2副作用副作用是由表达式运算引起变量的值发生变化的情形表2-86种副作用举例副作用类型表达式类型前置自增前侧副作用++a前侧副作用前置自减a前侧副作用函数调用scanfO前侧副作用赋值a=.....a+=y后置自增后侧副作用a ++后置自减后侧副作用要特别注意:前侧副作用发生在表达式的值确定之前后侧副作用发生在表达式的值确定之后
2.2 副作用 副作用是由表达式运算引起变量的值发生变化的情形 要特别注意: 前侧副作用发生在表达式的值确定之前 后侧副作用发生在表达式的值确定之后

2.3表达式求值1.无副作用的表达式求值求值顺序和原则:(1)用值替换变量(2)按优先级依次计算各部分的值并用求得的值替换原来的部分(3重复步骤2,直到得到一个单独的值
2.3 表达式求值 (3)重复步骤2,直到得到一个单独的值 1.无副作用的表达式求值 求值顺序和原则: (1)用值替换变量 (2)按优先级依次计算各部分的值并用求得的值替换原来的部分

原表达式a*4+b12-c*b3a3*4+4/2-5*44①把变量用值替换b3*4+412-6*45②根据优先级进行求值.替换C重复②-612+2-20表达式最终产生了个值图2-9无副作用表达式求值
图2-9 无副作用表达式求值

2.有副作用的表达式求值求值顺序和原则:(1)依据下列规则改写表达式①把前置自增/减表达式复制放到原式之前,用变量替换原式中已复制部分②把后置自增/减表达式复制放到原式之后,用变量替换原表达式中已复制部分(2)处理前置自增/自减部分(3)用值替换变量(4)按优先级顺序计算各部分并用求得的值替换,1重复此过程直到得到一个单独的值(5)处理自增/自减部分
(1)依据下列规则改写表达式 ①把前置自增/减表达式复制放到原式之前,用变量替换原 式中已复制部分 ②把后置自增/减表达式复制放到原式之后,用变量替换原 表达式中已复制部分 (2)处理前置自增/自减部分 (3)用值替换变量 (4)按优先级顺序计算各部分并用求得的值替换,重复此过程 直到得到一个单独的值 (5)处理自增/自减部分 2.有副作用的表达式求值 求值顺序和原则:

3原表达式--a*(3+b)/2-c++*ba42*712-5*4abc++a*(3+b)12-c*b5c++14/2-5*4c①把前置部分--a拿到前面c++扣后置部分c++到后面求前置表达式一a的值,之7-5W42后把它去掉c++a2*(3+4)/2-5*47-204c++c++b②用①运算后各变量的值替-136换式子中的变量根据优先c++级反复求值替换直到得到一C个单独的值c++③处理后置表达式图2-10有副作用的表达式求值
图2-10 有副作用的表达式求值

冬思考教材第079页第7题A~E中哪些有副作用?哪些没有副作用?C和E中表达式的值怎么确定?
思 考 教材第079页第7题A~E中哪些有副作用?哪些没 有副作用? C和E中表达式的值怎么确定?

2.4混合类型表达式1.概述(1)各操作数类型不同的表达式叫混合类型表达式(2)不同类型数据运算时,应当先转换成相同的数据类型(3)有两种转换方式:隐式类型转换和强制类型转换2.隐式类型转换(1)系统按照规则自动把参与运算的数据转换为相同的类型(2)转换的规则是,除了赋值运算外总是由低级向高级转换
2.4 混合类型表达式 (3)有两种转换方式: 隐式类型转换和强制类型转换 1.概述 (1)各操作数类型不同的表达式叫混合类型表达式 (2)不同类型数据运算时,应当先转换成相同的数据类型 2.隐式类型转换 (1)系统按照规则自动把参与运算的数据转换为相同的类型 (2)转换的规则是,除了赋值运算外总是由低级向高级转换
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第4讲 表达式.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第3讲 输入与输出.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第2讲 C语言初步(标识符、数据类型、常量).pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第1讲 预备知识与课程概述.pptx
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第十一讲 位字段、联合和枚举.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第十讲 结构备注.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第九讲 函数(二).pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第八讲 函 数(一).pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第七讲 指针.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第六讲 数组及其应用.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第五讲 循环程序设计.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第四讲 分支程序设计.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第三讲 算法和顺序结构程序设计.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第二讲 运算符和表达式.pdf
- 大连理工大学:《C语言程序设计》课程授课教案(讲稿)第一讲 语言概述、数据类型及转换.pdf
- 《嵌入式系统》课程教学课件(讲稿)ARM体系结构(Advanced RISC Machines).pdf
- 《嵌入式系统》课程教学课件(讲稿)嵌入式处理器体系结构.pdf
- 塔里木大学:《数据结构》课程教学课件(PPT讲稿)第十章 排序.pptx
- 塔里木大学:《数据结构》课程教学课件(PPT讲稿)第九章 查找.ppt
- 塔里木大学:《数据结构》课程教学课件(PPT讲稿)第七章 图.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第6讲 程序设计基础知识.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第7讲 双路分支程序设计.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第8讲 多路分支程序设计.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第9讲 循环语句.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第10讲 循环嵌套.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第11讲 一维数组.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第12讲 二维数组.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第13讲 指针初步.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第14讲 指针深入.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第15讲 字符串.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第16讲 函数初步.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第17讲 函数深入.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第18讲 函数再深入.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第19讲 结构类型.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第20讲 结构深入.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第21讲 联合与枚举.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第22讲 文件初步.pptx
- 大连理工大学:《C语言程序设计》课程教学课件(PPT讲稿)第23讲 文件深入.pptx
- 大连理工大学:《单片机系统及应用》课程教学资源(实验讲义,共十二个).pdf
- 大连理工大学:《单片机系统及应用》课程教学资源(教案讲稿,共二十四讲).pdf
