C参考答案与复题c_3.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 运算符和表达式 丰富的运算符可使表达式方便、简捷。初学者一下掌握这么多操作符会有压力。可通过写或计算表达式的练习,以及各章程序实例中出现的表达式,进一步熟悉运算符。 3.1 表达式的基本概念 对数据进行各种运算的符号为运算符,参与运算的数据为操作数。表达式构成:常量、变量、有返回值的函数调用是表达式,表达式加圆括号、或用运算符作正确连接后也是表达式。 圆括号左、右括号个数要相同,多层括号时内层括号中的运算优先;整个表达式必须写在同一行上。 a·x3+b·x2+c·x+d 写作 a*x*x*x+b*x*x+c*x+d 或 ((a*x+b)*x+c)*x+d; 写作 1/(1+1/(1+x));等等。 C运算符:算术、关系、逻辑、条件、赋值、逗号运算符,等等。 根据参与运算的操作数个数,运算符可分为单目、双目以及三目运算符。两个操作数的运算符是双目运算符,“单目运算符”只有一个操作数。三目运算符是C语言所特有的,它有三个操作数。 不同运算符参与运算时有优先级问题。如先乘除、后加减。 同级运算一般是从左向右进行。特例如赋值“x=y=3”,先计算y=3、再计算x=y。特例将特别指出,一般按缺省。 主要介绍算术(包括自增自减)、关系、逻辑、赋值、逗号运算符,以及由这些运算符构成的各类表达式。 3.2 算术运算符与算术表达式 内容:算术运算符及其功能,算术表达式,优先级、运算时的类型转换规则。 3.2.1 算术运算符 1. 算术运算符 C的算术运算符有:+ - * / %(取余) 其中“-”可作单目运算符,如-5,表达式3*-5值为-15。 各运算符优先级:先乘除、后加减;取余的优先级和乘除相同。 优先级的讨论,应限于同一层括号内,同级运算一般从左到右执行。具体规则如下: ?字符类型数据以该字符的ASCII值参加运算,参与运算的字符可以看作一个特殊的整型数。如12.5+A的值为77.5,其中A以该字符ASCII值65参加运算。 ?各种类型数据作算术运算的有关规则,详见下页“2. 算术运算中的类型转换”。特别要注意的是,两个整型数据作“/”运算时,结果是整数。 比如:5/4的结果是1,而5.0/4的结果为1.25。 灵活地应用/的整除性质,有助于我们对整型量作一些特殊处理。 例如,求整型变量k的十位上的数,可以写作k%100/10(验证:给定k如1765代入,k%100得65,65/10得6)。 ?% 只能用于整数和字符的运算,不能用于实型数据。 比如:2%3结果为2,34%5的结果为4,A%6结果为5。 用算术运算符和括号将运算对象连接起来、符合C语法规则的式子称C算术表达式。运算对象包括常量、变量、函数等。如下面是合法的表达式: 例1. C的算术表达式示例 [1+x(a+b)1/3]*x 写作:(1+x*(pow(a+b,1.0/3)))*x 写作:cos(y/sqrt(x*x+y*y)) 求整型变量m个、十、百位之和,写作: m%10+m/10%10+m/100%10 2. 算术运算中的类型转换 ⑴ 自动类型转换 同一表达式中参与运算的变量和常量可能有不同类型:C需要自动转换其中一个操作数值的类型,与另一操作数相同后参加运算。 一般转换规则:char→short→int→float→ double 即:参加运算的表达式类型转换至其中字长最长的数据类型;同样字长的情况下的转换应保证计算结果的精度。 如:计算表达式12-3,则先将字符常量转换为int类型,表达式的值为-39(因为字符3的ASCII值为51)。 又如:声明为float pi=3.14159; int d=180;时计算 pi/d;相除的两操作数字长相同,转换d为float类型后,再作除法运算。 注意:每次转换只涉及参与运算的两个操作数。如计算5/3+3.9的结果是4.9。计算5/3时,执行的还是整除运算,结果为1;在计算1+3.9的时候,才把整数1转换为double类型,和3.9相加。 ⑵ 强制类型转换 除了自动实现类型转换外,还可强制类型转换,其格式为: (类型标识符)表达式 int类型变量i、j相除,写作(float)i/j、(double)i/j,运算结果分别为float、double类型。 对表达式中变量而言,无论是自动或强制类型转换,仅是为本次运算需要,而不改变变量类型。如计算(float)i/j并未改变声明为int类型的变量i为float类型。 例2. 按照下列要求,写出相应C的算术表达式。 设x是正实数,写出不大于x的最大整数。 写作:(int)x 计算float类型变量x的整数部分与y的小数部分之和。 写作:(int)x+y-(int)y 求正整数m的位数。

文档评论(0)

lanhe8975915 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档