免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 绿茶主演
打印 上一主题 下一主题

华为面试题真火,来个冒牌的!  关闭 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-11-08 06:20:00
41 [报告]
发表于 2006-11-24 13:49 |只看该作者
原帖由 whyglinux 于 2006-11-24 13:04 发表


为了便于理解,对于 (++i)+(++i)+(++i) 这个表达式(i 的初始值为 0),一些可能的计算顺序和结果列举如下:

1. 先对三个 ++i 进行计算,得到 i 的值为 3;三个结果值再相加,结果为 9。

2. 先计算前两 ...



我在实际的运行时(实际运行程序), 就是一个 9 (GCC), 一个7 (MS std 2005)
当把式中增加为4项时                一个16   (GCC),  一个 11 (STD2005)

论坛徽章:
0
42 [报告]
发表于 2006-11-24 14:27 |只看该作者
这标题取的。
楼主很有现代娱记的风范。

论坛徽章:
0
43 [报告]
发表于 2006-11-24 15:52 |只看该作者
看来有些时候真不知道是我们玩PC,还是PC完我我们。但最后,玩啊玩的大家就玩成小强了。。

所以,还在被机器玩得我们要加油了。那些已经在玩机器的人不要鄙视我们,多帮助一下,多一些关爱世界就变得很美好

……………………我吐啊吐啊吐。。

论坛徽章:
0
44 [报告]
发表于 2006-11-24 15:59 |只看该作者

seems to be interesting

算式相当于 j = 3 + 2 + 2;
熟悉堆栈应该不难。

i = 5;
j = (++i)*(++i) - (++i)*(++i);
j = ?

[ 本帖最后由 edward430219 于 2006-11-24 16:22 编辑 ]

论坛徽章:
0
45 [报告]
发表于 2006-11-24 16:17 |只看该作者
面试遇到这种题直接拒绝回答,垃圾!

论坛徽章:
0
46 [报告]
发表于 2006-11-24 16:53 |只看该作者
俺对这个不感冒,所以不懂

论坛徽章:
0
47 [报告]
发表于 2006-11-24 19:10 |只看该作者
好像是1+2+3=6

论坛徽章:
0
48 [报告]
发表于 2006-11-24 21:04 |只看该作者
原帖由 木刀客 于 2006-11-24 13:49 发表
我在实际的运行时(实际运行程序), 就是一个 9 (GCC), 一个7 (MS std 2005)
当把式中增加为4项时                一个16   (GCC),  一个 11 (STD2005)


由于标准没有规定表达式中操作数的求值顺序,所以每个编译器可以自由采取它认为比较合适的求值顺序对表达式进行求值。求值顺序对于一个特定的编译器来说通常是比较固定的,这就是你在找到它的规律之后发现类似的表达式的结果总是遵循某一规律的原因。

然而,这个所谓的“预期”的结果是得不到保证的:
  • 可能一个编译器在不同的平台上、使用不同的编译选项会得到不同的结果。
  • 即使一个编译器在当前的实现都使用统一的求值顺序,但是谁都不能保证将来这种状况不会发生改变。比如 GCC 将来也可能采取和目前 VC 同样的求值顺序,而 VC 也可能 GCC 的,或者其它,等等。

论坛徽章:
0
49 [报告]
发表于 2006-11-24 21:10 |只看该作者
加个“华为”,还真是够火。。。
为什么非要是华为呢?

论坛徽章:
0
50 [报告]
发表于 2006-11-24 23:48 |只看该作者

笔试考这种题是出题人的悲哀,我敢肯定说他自己都没完全搞懂,或自己亲自试试!

首先,强烈BS写这种代码的人!
      这算是C语言标准的缺陷吧,标准上根本就没给个确切的定义,厂商们都是自己定义的规则!
      M$系编译器
      Visual C++ 6.0下 结果是:
      25
      9

      Borland系编译器
      TC 2.0 下结果是:
      27
      9
      Borland C++ 5.5 下结果:
      27
      9

      LCC系
      Lcc-Win32下结果:
      24
      9

    上面是在我的机子上编译的结果!
    各位大牛们,拿出你们手上的各种编译器试试吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP