UDN-企业互联网技术人气社区

板块导航

浏览  : 588
回复  : 2

[面试经历] 腾讯笔试题

[复制链接]
剑南的头像 楼主
发表于 2015-9-15 18:25:58 | 显示全部楼层 |阅读模式
给定3个int类型的正整数x,y,z,对如下4组表达式判断正确的选项()
int a1=x+y-z; int
  b1=x*y/z;
int a2=x-z+y; int b2=x/z*y;
int
  c1=x>z; int d1=x&y|z;
int
  c2=x>>z

发表于 2015-10-14 10:32:36 | 显示全部楼层
A
选项x+y有溢出的可能,但是通过-z又可以得到正确的结果,因为,当溢出的时候,是在int的表示范围内循环轮转。
如用char来模拟int,127 + 1 = -128,-128 + 1 = -127,-128 - 1 = 127,说明了是在char的表示范围内循环轮转。
所以选A。
B,C,D都可以举出反例:
B:
x=2,y=3,z=6;
C:
x=y=z=2;
D:
x=1,y=2,z=4;
使用道具 举报

回复

发表于 2015-10-14 10:32:50 | 显示全部楼层
A
【解析】
由于整数除法的截断,b1和b2不一定相等
由于移位会丢弃超出位,c1和c2不一定相等
d1是(x&y)|z而d2是x|(y&z),不一定相等
使用道具 举报

回复

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

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部