c语言题目问题!

[复制链接]
查看11 | 回复3 | 2010-12-23 12:22:23 | 显示全部楼层 |阅读模式
1.判断两个(float)变量x,z是否相等,一般语句:if(
)?
2.设a为float型变量,则能将a中的数值保留一位小数的表达式是多少?答案是(int)(a+10)/10.0,能帮帮忙,解释下这是什么意思吗?
3.设int a=012,b=11,c=3;表达式a<<(c%b)的值是多少?
本人c语言学的不好,还请你们帮帮忙!谢谢了!
第一题的答案是fabs(x-2)<1e-6,不知道是什么意思?

回复

使用道具 举报

千问 | 2010-12-23 12:22:23 | 显示全部楼层
1其实个人感觉x==z和fabs(x-z)<1e-6都行,fabs是括号内的数的绝对值,1e-6是1*10的-6次方,是一个很小的数,如果括号内的数的绝对值比这个很小的数小,则认为它等于0,即这式子等价于|x-z|=0,得x=z3,c%b是求模运算,是c除b所得余数得3。<<是位运算是左移,a=012是八进制转换成二进制后为00000000 000001010。a<<3是二进制位左移3得00000000001010000再化为十进制就可以了
回复

使用道具 举报

千问 | 2010-12-23 12:22:23 | 显示全部楼层
1.if(z==x)XXXX;语句在相等时执行.2.printf("%.1f",a)可四舍五入,且仅保留一位小数. (int)(a*10)/10.0 涉及强制类型转换,将a*10转换成整型.注意应该为乘!!!3.80a=012是八进制,是十进制的10,转换成二进制后为00000000 000001010。a<<3是二进制位左移3得0000
回复

使用道具 举报

千问 | 2010-12-23 12:22:23 | 显示全部楼层
1.if(x==z)2.符号“(int)”的意思就是:去掉数字的小数部分。比如(int)12.3等于12;(int)13.65等于13. (a+10)意味着把实数a扩大10倍,即小数点右移一位,(int)(a+10)去掉小数部分,再除以10,将小数点左移一位,即复原小数点位置。3.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行