- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
练习3
3.1把下面的代数式改写成c语言表达式:
(1) ax3+bx2+d (2) (3)
(4) cos60°+ 8ey (5) (ax+sinπ)
答案:
(1) a * x * x * x + b * x * x + d
(2)(a * b – c * d) / (2 * a)
(3)a /(b + c / a)
(4)cos(3.1415926/180 * 60) + 8 * pow(e, y),其中cos和pow为库函数,注意:cos函数的参数为弧度。
(5)1/2.0*(a * x + sin(3.1415926)),其中sin为库函数,注意不能写成1/2*(a * x + sin(3.1415926)),可参考3.3。
3.2把下面的C语言表达式还原成代数式:
(1) a/b/c*e*3 (2) exp(x*x/2)/sqrt(2*sin(30*3.1415926/180))
(3) sqrt(fabs(pow(x,y)+log(y))) (4) a*e/c/b*3
答案:
(1)或
(2)
(3)
(4)或
3.3求表达式1/2*(a*x+(b+x)/(4*a))的值。
答:
1/2的值为0,故整个表达式的值为0。
3.4参考表3-1,根据操作符的优先级和结合性用加括号方式确定表达式的求值顺序,如a += a+2的求值顺序可用加括号的方式表示为(a += (a+2))。
(1) flag n != 0 (2) c = getchar( ) != \n
(3) hi 4 + low (4) *p[3] (5) *p++
(6) 0 n q (7) !x || y++ (8) x + y 0 i++ 0
答:
(1) (flag (n != 0))
(2) (c = (getchar( ) != \n))
(3) (hi (4 + low))
(4) (*(p[3]))
(5) (*(p++))
(6) ((0 n) q)
(7) ((!x) || (y++))
(8) (((x + y) 0) ((i++) 0))
3.5试总结C语言操作符优先级的规律。
答:
1.单目操作符的优先级非常高(第二级)
2.算术运算操作符的优先级较高
3.赋值操作符的优先级倒数第二
4.逗号操作符的优先级最低
3.6写出下面程序的输出结果:
#include stdio.h
void main( )
{
char x = 0xFFFF;
printf(%d\n, x--);
}
答:
分析:给字符型变量赋值时,如果字面量较大,则仅取一个字节,因此变量x的存储状态为8个1,当用%d解码时输出为-1.
3.7 int a = 10时,求a -= a *= a += a /= 2的值,a的值为25时呢?
答:
a -= a *= a += a /= 2的求值顺序为(a -= (a *= (a += (a /= 2))))。
a /= 2为a = a /2,a = 10时a /2为5, a /= 2执行后a的值变为5,且子表达式的值为5。原表达式变为(a -= (a *= (a +=5)))。再化简为(a -= (a *=10))、(a -=100),最终变量a的值为0,整个表达式的值也为0。
a的值为25时,(a -= (a *= (a += (a /= 2))))变为(a -= (a *= (a += 12)))、(a -= (a *= 24))、(a -=576)), 最终变量a的值为0,整个表达式的值也为0。
3.8求下面表达式的值并编程验证结果。
(1) -7 / 5 (2)-7 % 5 (3)7 % -5
(4) 7 / -5 (5)-7 / -5 (6)-7 % -5
答:
3.9 对于整型变量i,求表达式(2 * i + 1)/ 2和表达式(2 * i - 1)/ 2的值。
答:
当变量i大于0时,表达式(2 * i + 1)/ 2的值为i,表达式(2 * i - 1)/ 2的值为i-1。
当变量i小于0时,表达式(2 * i + 1)/ 2的值为i+1,表达式(2 * i - 1)/ 2的值为i。
3.10计算下面表达式的值:
(1)3 / 2 + 2.0 (2)3 / 2.0 + 2 (3) (float)3 / 2 + 2
(4)float(3 / 2 + 2.0) (5)(4 + 1) / 2 + sqrt(9.0) * 1.2 / 2 + 5.5
(5)x %= 7 + 7 % 5(其中x的值为12) (6)( z - a) % 3 + 3.2
(7)20000 + 20000
文档评论(0)