| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2817 人关注过本帖, 1 人收藏
标题:一道华为笔试题
只看楼主 加入收藏
婷婷99
Rank: 1
等 级:新手上路
帖 子:48
专家分:7
注 册:2012-2-28
结帖率:25%
收藏(1)
已结贴  问题点数:20 回复次数:30 
一道华为笔试题
写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);

大家各抒己见。
搜索更多相关主题的帖子: 华为 表达式 
2012-05-11 12:44
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:1 
我觉得都错ANSI这样描述“在上一个和下一个序列点之间,一个对象所保存的值至多只能被表达式的求值修改一次。而且只有在确定将要保存的值的适合才能访问前一个值”。其中,所谓序列点指的是一个时间点,此刻尘埃落定,所有的副作用都已确保结束。最简单的例子,就是i=i++这样表达式在不同编译器上得到的结果并不完全一样
2012-05-11 13:05
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:0 
或者就是C,a=9
2012-05-11 13:10
magicdrawing
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2011-7-21
收藏
得分:1 
mark
2012-05-11 17:53
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:1 
这不就是i++与++i之间的区别嘛:
i++返回只是i值的一份拷贝,然后再执行+1操作;
++i先执行+1操作,然后返回i的值(返回的是一个变量)
值当然不能作为左值来使用,而变量可以作为左值也可以作为右值,所以答案出来了:c是错误的!燃油自己再把其他选项的值计算一下就可以了!

愿用余生致力编程
2012-05-11 18:00
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
如果连这样的笔试题都做不出来的话,还进什么华为,

愿用余生致力编程
2012-05-11 18:04
wangliming
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2012-5-11
收藏
得分:1 
回复 楼主 婷婷99
A和B是对的:a分别为9和10
2012-05-11 23:30
lyqzj123
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2012-3-15
收藏
得分:1 
c是对的。
2012-05-12 09:14
婷婷99
Rank: 1
等 级:新手上路
帖 子:48
专家分:7
注 册:2012-2-28
收藏
得分:0 
回复 8楼 lyqzj123
5楼的解释是对的。
2012-05-12 09:49
hzmdschhc
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2012-4-28
收藏
得分:1 
CD错,因为a++ ++a不能被赋值。AB对,A:a=9,B:a=10
2012-05-12 10:12
快速回复:一道华为笔试题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012447 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved