都说java跟c是相通的,大家帮看看这个怎么做啊?

rjzou2006 2010-10-16 03:58:12
4.设int x=2,y=4;,值为非0的表达式是( )
A. 1/x*y B. 1/(x*y)
C. 1.0/x/y D. 1/x/ (double)y




帮忙解释一下?

...全文
124 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq84136264 2010-10-19
  • 打赏
  • 举报
回复
额 是0.0
qq84136264 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lxplp 的回复:]
第四个不是强制转换y吗,结果怎么会是0
[/Quote]
因为 1/x=0 了 所以 0/4.0 = 0
lxplp 2010-10-19
  • 打赏
  • 举报
回复
第四个不是强制转换y吗,结果怎么会是0
whut_lcy 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jaisou 的回复:]
答案是C吧
[/Quote]

“吧”去掉
香蕉裤衩 2010-10-19
  • 打赏
  • 举报
回复
A

我是来混分的!
softice_ 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ftorreszhangwang 的回复:]
java没追儿以后会被c取代吧
[/Quote]
不可能,他们俩的应用领域不同,不会发生冲突
FTorreszhangwang 2010-10-16
  • 打赏
  • 举报
回复
java没追儿以后会被c取代吧
ligoou 2010-10-16
  • 打赏
  • 举报
回复
c吧,
KaneTing 2010-10-16
  • 打赏
  • 举报
回复
A、B都是0,这个简单:1、x、y都是相同类型的,‘/’在java中表示除取整数部分,结果也是int型的,所以是0.
C是0.125,在java中当有多个类型的数同时运算时,是自动向上转换为最高的类型,即 double类型。所以结果是0.125,此时'/'的作用就没了。
D是0.0,这和C不一样,D中是强制转换,将1/x/y后的结果0转换为double型0.0

package kane;

public class Test {
public static void main(String[] args) {
int x=2,y=4;
System.out.println(1/x*y);
System.out.println(1/(x*y));
System.out.println(1.0/x/y);
System.out.println(1/x/(double)y);
}
}

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧