- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例 计算半径为 6.5 厘米的圆球体积。用 printf 输出计算结果,程序: #include stdio.h int main() { printf(V = %lf cm^3\n, (3.1416 * 6.5 * 6.5 * 6.5) * 4.0 / 3.0); return 0; } 运行时输出: V = 1150.349200 cm^3 3. 表达式的求值 表达式计算又称“表达式求值”。一个表达式的意义就是它求出的值。 C语言明确规定了表达式计算过程。包括几方面 优先级 结合方式 (多个)运算对象的求值顺序 括号 4. 优先级 优先级 运算符在表达式中相邻出现时,优先级高的运算符先算。(附录A 运算符表) 算术运算符分三个优先级 一元运算符: +, - 高 二元运算符: *, /, % 中 二元运算符: +, - 低 例 5 / -3 + 4 * 6 5. 结合方式与括号 结合方式 同优先级运算符相邻时的计算顺序 一元算术运算符自右向左结合,二元算术运算符自左向右结合。 例: 166 / 8 * 5 / 3 括号 改变计算顺序,括号括起的部分先算。 -(((2 + 6) * 4) / (3 + 5)) 括号是控制计算顺序的手段。 关于求值顺序 例 (5 + 8) * (6 + 4) (5 + 8)和(6 + 4)中哪个先做? C 对此问题无规定。 程序中不应写依赖特殊计算顺序的表达式,那样将无法保证得到的结果 C 里可以写出对求值顺序敏感的表达式,但不要去写这种表达式 在表达式比较复杂的时候,应尽量加上括号 6. 计算和类型 表达式计算中有许多与类型有关的问题。 例,下面表达式对的结果不同 14 / 8 * 12 和 14 * 12 / 8 1 * 3 / 3 和 1 / 3 * 3 int数据计算得到int结果 int采用整除,商是整数,余数丢掉 long类型与int一样。所有整数类型都如此 各种实数类型的情况类似 7. 算术计算的溢出 每个类型有明确取值范围; 计算有确定的结果类型; 计算中结果超出类型表示范围称为溢出。 C程序对溢出不报错,溢出后的计算不再有意义。 例,若 int 由16位表示,下面表达式有问题: 32766 + 18 如果可能,应选择合适类型。如改为 32766L + 18L 实数计算也可能发生溢出(上溢和下溢)。 8. 混合类型计算和类型转换 运算对象类型不同时形成混合类型计算 例如:3.27 + 201 各算术类型的加法都用 + 表示,编译程序根据运算对象类型确定怎样做,如 3 + 2 用 int 类型的加法运算 3.0 + 2.0 用 double 类型的加法运算 出现混合类型计算,程序自动将运算对象转换到相同类型的值,而后计算。 这些转换属自动类型转换。这种转换不需要在程序里明确写出。 自动类型转换 自动类型转换原则 把表示范围小的类型的值转换为表示范围大的类型的值。 各种类型的表示范围从小到大是 int long float double long double 例:32767 + 2L 混合类型计算中自动插入数值转换动作,由原类型的值产生出新值后参与计算。 写程序或读程序都应注意 表达式中计算对象的类型 子表达式计算结果的类型 哪些地方会发生类型转换,怎么转换 示例 2L 3 4.5 3.0 * 13.5 2.0 + 15.5 值的类型转换 表达式2L + 3 * 4.5的计算过程 显式类型转换 如果自动转换不符合需要,可要求做特定类型转换,称为强制转换或类型强制。 写法 表达式前写括起的类型名。 例 (int)(3.6 * 15.8) + 4 实数类型转为整型时丢掉小数部分。 与类型转换有关的问题 类型转换可能丢失信息; 写强制转换时必须注意,若被转换值在结果类型里无法表示,结果无法预计。 显式类型转换看作一元运算符,与其他一元运算符有同样优先级和结合方式; 类型转换是值转换,从一个数据值出发,产生另一类型的新值,原值不变; 数值类型间都可以转换。 现成计算功能与函数库初步 站在巨人的肩膀上,使你比巨人还高 使有现成功能写程序,而不是什么功能都重头写起 1. 程序开发的重要思想与原则 思想 充分利用现成的、别人开发好的计算或处理功能,以提高开发效率。 相类似的或相关的一组现成功能常被打包在一起,构成一个功能集合体,称为 功能包,功能库,函数包,函数库 各种开发工具或应用平台环境都会提供大量的现成功能库或函数库,提供给开发人员使用,以提高开发效率。 各种C开发平台也会提供大量不同的函数库供开发者使用。 2. 函数库及其使用 标准函数库 标准库提供了许多函数,实现许多功能 其中有一组数学函数,实现常用数学函数计算
文档评论(0)