欢迎来到天天文库
浏览记录
ID:2223995
大小:638.00 KB
页数:18页
时间:2017-11-15
《新编c语言程序设计教程练习三参考答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、练习三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/
2、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()!=''(3)hi<<4+low(4)*p[
3、3](5)*p++(6)04、5、y++(8)x+y>0&&i++<0答:(1)(flag&(n!=0))(2)(c=(getchar()!=''))(3)(hi<<(4+low))(4)(*(p[3]))(5)(*(p++))(6)((06、7、(y++))(8)(((x+y)>0)&&((i++)<0))3.5试总结C语言操作符优先级的规律。答:1.单目操作符的优先级最高2.算术运算操作符的优先级较高3.赋值操作符的优先级较底4.逗号操作符的优先级最底3.6写出下面程序的输出结果:#includevo8、idmain(){charx=0xFFFF;printf("%d",x--);}答:1.给字符型变量赋值时,如果字面量较大,则仅取一个字节,因此变量x的存储状态为8个1,当用"%d"解码时输出为-1.3.7inta=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的值9、为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+10、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-10000(int为2个字节时和4个字节时的值)答:(1)3/2+2.0=1+2.0=3.0(2)3/2.0+2=1.5+2=3.5(3)(float)3/2+2=1.5+2=3.5(4)(float)(3/2+2.0)=(floa11、t)(1+2.0)=3.0(5)(4+1)/2+sqrt(9.0)*1.2/2+5.5=2+1.8+5.5=9.3(5)x%=7+7%5(其中x的值为12)可改写为:x=x%(7+7%5)简化为x=12%9,求值后变量x的值为3,表达式的值也为3。(6)('z'-'a')%3+3.2=25%3+3.2=4.2(7)20000+20000-10000(int为2个字节时和4个字节时的值)int为2个字节时int为4个字节时3.11已知f为float型变量,分别求sizeof(f)、sizeof(f+2.3)、sizeof(f+2)、sizeof3.14和sizeof12、3.14f
4、
5、y++(8)x+y>0&&i++<0答:(1)(flag&(n!=0))(2)(c=(getchar()!=''))(3)(hi<<(4+low))(4)(*(p[3]))(5)(*(p++))(6)((06、7、(y++))(8)(((x+y)>0)&&((i++)<0))3.5试总结C语言操作符优先级的规律。答:1.单目操作符的优先级最高2.算术运算操作符的优先级较高3.赋值操作符的优先级较底4.逗号操作符的优先级最底3.6写出下面程序的输出结果:#includevo8、idmain(){charx=0xFFFF;printf("%d",x--);}答:1.给字符型变量赋值时,如果字面量较大,则仅取一个字节,因此变量x的存储状态为8个1,当用"%d"解码时输出为-1.3.7inta=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的值9、为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+10、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-10000(int为2个字节时和4个字节时的值)答:(1)3/2+2.0=1+2.0=3.0(2)3/2.0+2=1.5+2=3.5(3)(float)3/2+2=1.5+2=3.5(4)(float)(3/2+2.0)=(floa11、t)(1+2.0)=3.0(5)(4+1)/2+sqrt(9.0)*1.2/2+5.5=2+1.8+5.5=9.3(5)x%=7+7%5(其中x的值为12)可改写为:x=x%(7+7%5)简化为x=12%9,求值后变量x的值为3,表达式的值也为3。(6)('z'-'a')%3+3.2=25%3+3.2=4.2(7)20000+20000-10000(int为2个字节时和4个字节时的值)int为2个字节时int为4个字节时3.11已知f为float型变量,分别求sizeof(f)、sizeof(f+2.3)、sizeof(f+2)、sizeof3.14和sizeof12、3.14f
6、
7、(y++))(8)(((x+y)>0)&&((i++)<0))3.5试总结C语言操作符优先级的规律。答:1.单目操作符的优先级最高2.算术运算操作符的优先级较高3.赋值操作符的优先级较底4.逗号操作符的优先级最底3.6写出下面程序的输出结果:#includevo
8、idmain(){charx=0xFFFF;printf("%d",x--);}答:1.给字符型变量赋值时,如果字面量较大,则仅取一个字节,因此变量x的存储状态为8个1,当用"%d"解码时输出为-1.3.7inta=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的值
9、为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+
10、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-10000(int为2个字节时和4个字节时的值)答:(1)3/2+2.0=1+2.0=3.0(2)3/2.0+2=1.5+2=3.5(3)(float)3/2+2=1.5+2=3.5(4)(float)(3/2+2.0)=(floa
11、t)(1+2.0)=3.0(5)(4+1)/2+sqrt(9.0)*1.2/2+5.5=2+1.8+5.5=9.3(5)x%=7+7%5(其中x的值为12)可改写为:x=x%(7+7%5)简化为x=12%9,求值后变量x的值为3,表达式的值也为3。(6)('z'-'a')%3+3.2=25%3+3.2=4.2(7)20000+20000-10000(int为2个字节时和4个字节时的值)int为2个字节时int为4个字节时3.11已知f为float型变量,分别求sizeof(f)、sizeof(f+2.3)、sizeof(f+2)、sizeof3.14和sizeof
12、3.14f
此文档下载收益归作者所有