论坛首页 招聘求职论坛

收集各种诡异的笔试面试题(不断更新)

浏览 14839 次
精华帖 (2) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-08   最后修改:2010-10-08
看回复就发现很多人不应该做程序员,应该去做粪青。屁都不懂就知道武断。

ps:这类题玩得太多也没有意思,你还可以找些更诡异的拿来问面试官。
0 请登录后投票
   发表时间:2010-10-08   最后修改:2010-10-08
#include <iostream>

int main(void){
	int j = 0;
	j = j++;
	std::cout<<j<<std::endl;
	return 0;
}


------------------------------------
0

Terminated with return code 0
Press any key to continue ...

0 请登录后投票
   发表时间:2010-10-08  
polaris1119 写道
icefishc 写道

c++的事还真不能靠试。。。 在c++这个应该是undefined behavior

undefined behavior?从何体现?编译不通过?

undefined behavior的意思就是
它的结果不确定,也许取决于你用的编译器也许取决于你的优化参数或其他外部条件。
你所看到的结果只是一种可能。
0 请登录后投票
   发表时间:2010-10-08  
yangguo 写道
看回复就发现很多人不应该做程序员,应该去做粪青。屁都不懂就知道武断。

ps:这类题玩得太多也没有意思,你还可以找些更诡异的拿来问面试官。

的确,这种题也就是一些无聊的面试官会出,他们碰巧知道这个,然后就想刁难你。其实没啥意思。不过为了应付面试又得了解点。
0 请登录后投票
   发表时间:2010-10-08  
Crusader 写道
#include <iostream>

int main(void){
	int j = 0;
	j = j++;
	std::cout<<j<<std::endl;
	return 0;
}


------------------------------------
0

Terminated with return code 0
Press any key to continue ...


请问用的啥编译器?我用Visual Studio 2008测试结果不是这样的。是1
0 请登录后投票
   发表时间:2010-10-08  
icefishc 写道
polaris1119 写道
icefishc 写道

c++的事还真不能靠试。。。 在c++这个应该是undefined behavior

undefined behavior?从何体现?编译不通过?

undefined behavior的意思就是
它的结果不确定,也许取决于你用的编译器也许取决于你的优化参数或其他外部条件。
你所看到的结果只是一种可能。

你说的有道理,这个结果的确跟编译器有关,而C++编译器又有不同的实现,因而可能结果真的不一样。我用VS测试结果是1。
0 请登录后投票
   发表时间:2010-10-08   最后修改:2010-10-08
1
GCC 4.4.1
这种题确实没啥意义,
真面这样的题,你就问他要是我写出类似于i=(++i)+(i++)的代码,
领导还不把我给开了
0 请登录后投票
   发表时间:2010-10-08   最后修改:2010-10-08
cch123 写道
1
GCC 4.4.1
这种题确实没啥意义,
真面这样的题,你就问他要是我写出类似于i=(++i)+(i++)的代码,
领导还不把我给开了

虽然这么写是错的, 但题还是有意义的。这些都属于基础知识。 如果答不出来那怎么知道为什么不这么写。
0 请登录后投票
   发表时间:2010-10-08  
polaris1119 写道
Crusader 写道
#include <iostream>

int main(void){
	int j = 0;
	j = j++;
	std::cout<<j<<std::endl;
	return 0;
}


------------------------------------
0

Terminated with return code 0
Press any key to continue ...


请问用的啥编译器?我用Visual Studio 2008测试结果不是这样的。是1


MinGW,个人认为前后缀++实现如下:
++x  →  (x+=1)
x++  →  (temp=x, x+=1, temp) 注意逗号表达式

0 请登录后投票
   发表时间:2010-10-09  
即JAVA先将i的值保存到临时内存空间中,然后处理++,即原来的j加1
----------------------------------
应该是先将j的值保存到临时内存空间中吧。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics