设有以下程序片段,int i=010,j=10,k=0xl0;printf;请问执行后

设有以下程序片段,int i=010,j=10,k=0xl0;printf;请问执行后,第1张

程序代码不全。

输出结果依赖于输出时的格式。

目前初始值:

i为8进制表示, 十进制值为8

j本身即是十进制,值为10

k为16进制,其十进制值为16.

答案是B

A:s==t 判断的是两个对象的引用地址是否相等,因为不是同一个对象肯定不相等

B:s.equals(t)//这个判断,首先判断t是不是float类型,然后调用floatToIntBits方法,将float转成int进行比较,两个肯定相等了。

C:u.equals(s) //因为s不是Double类型,不符合判断条件,所以返回false

D:t.equals(u);//因为u不是Float类型,不能比较,所以返回false

答案是B

因为C语言中"="是赋值号if(x=y+z)是计算出y+z的值然后赋值给x,这个式子是永远成立的,所以会输出***

如果说要改错的话,应该改为if(x==y+z),构成逻辑表达式后,才符合程序设计的初衷。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11138792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存