搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一道华为笔试题
标题:
一道华为笔试题
只看楼主
婷婷99
等 级:
新手上路
帖 子:48
专家分:7
注 册:2012-2-28
结帖率:
25%
楼主
已结贴
√
问题点数: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
来 自:甘肃天水
等 级:
侠之大者
威 望:
1
帖 子:227
专家分:457
注 册:2011-3-27
第
2
楼
得分:1
我觉得都错ANSI这样描述“在上一个和下一个序列点之间,一个对象所保存的值至多只能被表达式的求值修改一次。而且只有在确定将要保存的值的适合才能访问前一个值”。其中,所谓序列点指的是一个时间点,此刻尘埃落定,所有的副作用都已确保结束。最简单的例子,就是i=i++这样表达式在不同编译器上得到的结果并不完全一样
2012-05-11 13:05
zhangqi_gsts
来 自:甘肃天水
等 级:
侠之大者
威 望:
1
帖 子:227
专家分:457
注 册:2011-3-27
第
3
楼
得分:0
或者就是C,a=9
2012-05-11 13:10
magicdrawing
等 级:
新手上路
帖 子:9
专家分:2
注 册:2011-7-21
第
4
楼
得分:1
mark
2012-05-11 17:53
我菜119
等 级:
青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
第
5
楼
得分:1
这不就是i++与++i之间的区别嘛:
i++返回只是i值的一份拷贝,然后再执行+1操作;
++i先执行+1操作,然后返回i的值(返回的是一个变量)
值当然不能作为左值来使用,而变量可以作为左值也可以作为右值,所以答案出来了:c是错误的!燃油自己再把其他选项的值计算一下就可以了!
愿用余生致力编程
2012-05-11 18:00
我菜119
等 级:
青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
第
6
楼
得分:0
如果连这样的笔试题都做不出来的话,还进什么华为,
愿用余生致力编程
2012-05-11 18:04
wangliming
等 级:
新手上路
帖 子:1
专家分:1
注 册:2012-5-11
第
7
楼
得分:1
回复 楼主 婷婷99
A和B是对的:a分别为9和10
2012-05-11 23:30
lyqzj123
等 级:
新手上路
帖 子:2
专家分:1
注 册:2012-3-15
第
8
楼
得分:1
c是对的。
2012-05-12 09:14
婷婷99
等 级:
新手上路
帖 子:48
专家分:7
注 册:2012-2-28
第
9
楼
得分:0
回复 8楼 lyqzj123
5楼的解释是对的。
2012-05-12 09:49
hzmdschhc
等 级:
新手上路
帖 子:11
专家分:1
注 册:2012-4-28
第
10
楼
得分:1
CD错,因为a++ ++a不能被赋值。AB对,A:a=9,B:a=10
2012-05-12 10:12
31
1/4页
1
2
3
4
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-367332-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.118972 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved