EMC怎么也出这种题目?

49 views
Skip to first unread message

pongba

unread,
Nov 13, 2007, 5:55:01 AM11/13/07
to pon...@googlegroups.com
一个朋友问我的。
公开一道笔试题目应该不违反什么...约定...吧?看到网上分享面试题的也不少。

写一个函数foo:

void foo(int i, int j)
{
... //
}

打印出i到j之间的所有整数。不用任何循环和递归语句。

题目是蛮有意思,作为考察基本知识的掌握和思考的深度倒是挺有价值。问题是,有几个公司需要将知识掌握到这个程度的人?另一个问题是:能做出这道题目就是好的程序员?
最近听到一些C++面试题,觉得很离谱,C++面试题的误区不小。我觉得一个好的C++面试应该是询问类似于《C++ Coding Standards》上面的问题才对。

--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba

莫华枫

unread,
Nov 13, 2007, 6:10:51 AM11/13/07
to pon...@googlegroups.com
呵呵,这就像我们小学教作文,文法和语言逻辑无关紧要,但一定要有思想。嗯思想很重要,对吧。:-)

在07-11-13,pongba <pon...@gmail.com> 写道:

li jiecong

unread,
Nov 13, 2007, 6:20:10 AM11/13/07
to pon...@googlegroups.com
我把这些题目看成脑筋急转弯的
能不能提示一下?我一点思路都没有

 

dom

unread,
Nov 13, 2007, 6:30:57 AM11/13/07
to TopLanguage
用模板来写!?被你的函数误导了
如果提示以运行时 时间复杂度为O(1)可能容易想到

hayate

unread,
Nov 13, 2007, 6:32:35 AM11/13/07
to pon...@googlegroups.com
想到一个 很e

struct dummy
{
dummy(int i) { i_ = i;}
dummy(){ printf("%d", i_); i_++; }
static int i_;
};
int dummy::i_;

void foo(int i, int j)
{

dummy start(i);
new dummy[j-i+1];

莫华枫

unread,
Nov 13, 2007, 6:35:51 AM11/13/07
to pon...@googlegroups.com
想起来了,csdn论坛上出现过这个题目。有人用构造函数来做。
说回来还是递归。
 
在07-11-13,pongba <pon...@gmail.com> 写道:

Julius F. Huang

unread,
Nov 13, 2007, 8:26:18 AM11/13/07
to pon...@googlegroups.com
冒个泡, :P

用"邪恶的goto"?

void foo(int i, int j)
{

flag:
if (i < j) {
printf("%d\n", i++);
goto flag;
}
printf("%d\n", j);
}

red...@gmail.com

unread,
Nov 13, 2007, 8:45:40 AM11/13/07
to pon...@googlegroups.com
这个程序允许用机器生成吗 ?

我生成这个程序, 没有循环, 没有递归, 没有编译时期递归

switch (i)
{
    case -2147483648:
          printf("%d", i);
          if (-2147483648>j) return;

    ...
    case 0:
          printf("%d", i);
          if (0>j) return

    case 2147483647:
          printf("%d", i);
          if (0>j) return
}


哈哈, 不过这个源代码我的机器可能存不下.

或者搞这么一个数组

char * p="-2147483648 "
         "-2147483647 "
         ...
         "          0 "
         ...
         "2147483647 ";

然后 malloc 一个同样大的数组, 复制过去(免得被拷到字符串常量不能修改), 根据 j 往 数组置0, 根据 i 算其实地址,
一个 printf 就完成工作.

不过, 我应该在什么机器上完成这个任务呢 ? 32bit 地址字长 的机器可放不下这个数组, 64bit 的机器的 int 又变成一个麻烦事.
不过不要紧, 我们将这个数字写到文件中, 用 fseek 来做.



pongba 写道:

redsea(肖海彤)

unread,
Nov 13, 2007, 8:51:05 AM11/13/07
to pon...@googlegroups.com
模板有递归深度限制, 支持不了多少层, 哈哈, 刷掉一个.

在07-11-13,dom <liji...@gmail.com> 写道:

Wang Xin

unread,
Nov 13, 2007, 9:27:37 AM11/13/07
to pon...@googlegroups.com
谁在瞎说啊,我今天还在改我们公司的编程题(明天还要继续),完全没有看见这题,莫非他做的是去年的题目?

在07-11-13,pongba <pon...@gmail.com> 写道:



--
Everything is possible and available if we trust ourselves!

Wang Xin

unread,
Nov 13, 2007, 9:31:11 AM11/13/07
to pon...@googlegroups.com
不过说实话,这道题我不会做:$ 一如我今天看到的其他的几道题,看来我是应该退出这个行业了:'(

在07-11-13,Wang Xin <cber.w...@gmail.com> 写道:

pongba

unread,
Nov 13, 2007, 9:40:48 AM11/13/07
to pon...@googlegroups.com
On Nov 13, 2007 10:27 PM, Wang Xin <cber.w...@gmail.com> wrote:
谁在瞎说啊,我今天还在改我们公司的编程题(明天还要继续),完全没有看见这题,莫非他做的是去年的题目?
呵呵,瞎说倒是不会的:-) 不过难道不是笔试是口试?
不过说实话,这道题我不会做:$ 一如我今天看到的其他的几道题,看来我是应该退出这个行业了:'(
我也不会做。我先知道答案的:-)

Wang Xin

unread,
Nov 13, 2007, 9:46:21 AM11/13/07
to pon...@googlegroups.com
f2f的面试情况我现在还不了解,因为今年的compus hire还没有进行到那个地步,但paper test里面的编程题没有这题我是可以保证的(除非我们这边选择了A、B卷的形式)
哎,感觉那些小朋友们出的题目就是用来谋杀脑细胞的,几道编程题我在第一眼看过去都没有任何的概念,非得细想后才可以得到一个凑合的答案。个人观点是,不适合用在笔试这么令人紧张的场合

在07-11-13, pongba <pon...@gmail.com> 写道:

zcpro

unread,
Nov 13, 2007, 9:26:11 PM11/13/07
to TopLanguage
我倒觉得只要是编程题都没什么。一般面试的人会把笔试理解成证明面试者的能力,其实出题人的本意是通过面试者对题目的解答了解他的知识面,获得他各方面
的能力。所以如果有人能做满分的笔试题是没有价值的,说明题目的面不够广(或者你发现天才了?)

li jiecong

unread,
Nov 13, 2007, 9:58:13 PM11/13/07
to pon...@googlegroups.com
笔试题不应该出的太奇怪,因为你能通过答案来判断这个人
而f2f可以随便出,这时候你可以知道面试者是怎么思考的
有时候即使答案离的十万八千里也没关系,反而可以看出这个人技术怎么样

 

li jiecong

unread,
Nov 13, 2007, 10:01:01 PM11/13/07
to pon...@googlegroups.com
具体深度看各个编译器吧
我觉得复杂的模板是艺术!
没被刷掉,被调去improve编译器去了 哈哈

 

李扬

unread,
Nov 13, 2007, 10:01:49 PM11/13/07
to pon...@googlegroups.com
貌似现在稀奇古怪的题太多。我好像也做过类似的题。

在07-11-14,li jiecong <liji...@gmail.com> 写道:
笔试题不应该出的太奇怪,因为你能通过答案来判断这个人
而f2f可以随便出,这时候你可以知道面试者是怎么思考的
有时候即使答案离的十万八千里也没关系,反而可以看出这个人技术怎么样

 
On 11/14/07, zcpro <zcu...@gmail.com> wrote:
我倒觉得只要是编程题都没什么。一般面试的人会把笔试理解成证明面试者的能力,其实出题人的本意是通过面试者对题目的解答了解他的知识面,获得他各方面
的能力。所以如果有人能做满分的笔试题是没有价值的,说明题目的面不够广(或者你发现天才了?)

On 11月13日, 下午6时55分, pongba <pon...@gmail.com> wrote:
> 一个朋友问我的。
> 公开一道笔试题目应该不违反什么...约定...吧?看到网上分享面试题的也不少。
>
> 写一个函数foo:
>
> void foo(int i, int j)
> {
> ... //
>
> }
>
> 打印出i到j之间的所有整数。不用任何循环和递归语句。
>
> 题目是蛮有意思,作为考察基本知识的掌握和思考的深度倒是挺有价值。问题是,有几个公司需要将知识掌握到这个程度的人?另一个问题是:能做出这道题目就是好的程序员?
> 最近听到一些C++面试题,觉得很离谱,C++面试题的误区不小。我觉得一个好的C++面试应该是询问类似于《C++ Coding
> Standards》上面的问题才对。
>
> --

pongba

unread,
Nov 14, 2007, 6:49:56 AM11/14/07
to pon...@googlegroups.com
答案:
void foo(int i, int n)

{
  printf("%d\n", i++);
  if(i<=n) *(unsigned long*)(&i-1) -= 5;
}
// IA-32

On Nov 13, 2007 6:55 PM, pongba < pon...@gmail.com> wrote:

oldrev

unread,
Nov 14, 2007, 7:22:28 AM11/14/07
to pon...@googlegroups.com
这不算递归?

On Wed, 2007-11-14 at 19:49 +0800, pongba wrote:
> 答案:
> void foo(int i, int n)
> {
> printf("%d\n", i++);
> if(i<=n) *(unsigned long*)(&i-1) -= 5;
> }
> // IA-32
>
> On Nov 13, 2007 6:55 PM, pongba <pon...@gmail.com> wrote:
> 一个朋友问我的。
> 公开一道笔试题目应该不违反什么...约定...吧?看到网上分享面试题
> 的也不少。
>
> 写一个函数foo:
>
> void foo(int i, int j)
> {
> ... //
> }
>
> 打印出i到j之间的所有整数。不用任何循环和递归语句。
>
> 题目是蛮有意思,作为考察基本知识的掌握和思考的深度倒是挺有价

> 值。问题是,有几个公司需要将知识掌握到这个程度的人?另一个问题
> 是:能做出这道题目就是好的程序员?
> 最近听到一些C++面试题,觉得很离谱,C++面试题的误区不小。我觉得
> 一个好的C++面试应该是询问类似于《C++ Coding Standards》上面的
> 问题才对。
>

> --
> 刘未鹏(pongba)|C++的罗浮宫
> http://blog.csdn.net/pongba
> TopLanguage
> http://groups.google.com/group/pongba
>
>
>
> --
> 刘未鹏(pongba)|C++的罗浮宫
> http://blog.csdn.net/pongba
> TopLanguage
> http://groups.google.com/group/pongba
> >

--
"Live Long and Prosper"
- oldrev

pongba

unread,
Nov 14, 2007, 7:31:56 AM11/14/07
to pon...@googlegroups.com


On Nov 14, 2007 8:22 PM, oldrev <old...@gmail.com> wrote:
这不算递归?
周星星这不早说了嘛,表面上是个皮鞋,实际上,还是个吹风机:P 

red...@gmail.com

unread,
Nov 14, 2007, 7:34:04 AM11/14/07
to pon...@googlegroups.com
没有太多兴趣去研究 stack frame 了, 这是去修改函数的返回地址? 这么 trick ?
哦, 原来题目是不用语句, 不是说不允许做循环. 那么 goto 算不算循环语句 ?

pongba 写道:

hayate

unread,
Nov 14, 2007, 8:01:20 AM11/14/07
to pon...@googlegroups.com
不知道我那个答案算不算?
PS:貌似pongba对国产007烂熟于心啊......

Fisher

unread,
Nov 14, 2007, 8:03:09 AM11/14/07
to pon...@googlegroups.com
这个还真是trick,怎么移植啊

Wang Xin

unread,
Nov 14, 2007, 8:05:52 AM11/14/07
to pon...@googlegroups.com
不能移植的程序,最多得两分(五分制):D
这个是我们这两天改题时定的标准,可以移植的程序,即便有问题,也还有希望得三分

在07-11-14,Fisher <yuf...@gmail.com> 写道:

hayate

unread,
Nov 14, 2007, 11:20:00 AM11/14/07
to pon...@googlegroups.com
我那个方法怎么样 移植性应该不错的

杨杨

unread,
Nov 14, 2007, 10:01:51 PM11/14/07
to TopLanguage
√ª”–ø¥∂Æ£¨«Î∏fl ÷∏¯Ω‚ Õœ¬£¨–ª–ª°£

hayate –¥µ¿£∫
> Ñ1§7Ñ1§7Ñ1§7Å0£0Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ã0Ñ1§7Ñ1§7 Ñ1§7Ñ1§7Å0ˆ2Ñ1§7Ñ1§7Å0·8Ñ1§7®∞Ñ1§7Ñ1§7Ñ1§7Ñ1§7
>
> On Nov 14, 2007 9:05 PM, Wang Xin <cber.w...@gmail.com> wrote:
> > Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ˆ2Ñ1§7Å0ê5Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7}Ñ1§7Å0Ù7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0õ3Ñ1§7:D
> > Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7}Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0µ2Ñ1§7Ñ1§7Ñ1§7Å0ê3Ñ1§7Å0˝6Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ˆ2Ñ1§7Å0ê5Ñ1§7Ñ1§7¿0ì8Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å7Ì0Å0‹6Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0Œ5Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7
> >
> > Ñ1§7Ñ1§707-11-14Ñ1§7Ñ1§7Fisher <yuf...@gmail.com> ß’Ñ1§7#Ñ1§7
> > > Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7trickÑ1§7Ñ1§7Ñ1§7Ñ1§7Å0ã0Ñ1§7Ñ1§7Å0ˆ2Ñ1§7Ñ1§7
> > >
> > >
> > >
> > > On Nov 14, 2007 7:49 PM, pongba <pon...@gmail.com> wrote:
> > >
> > > > Ñ1§7ö6Ú1Ñ1§7
> > > > void foo(int i, int n)
> > > > {
> > > > printf("%d\n", i++);
> > > > if(i<=n) *(unsigned long*)(&i-1) -= 5;
> > > > }
> > > > // IA-32
> > > >
> > > >
> > > >
> > > > On Nov 13, 2007 6:55 PM, pongba < pon...@gmail.com> wrote:
> > > >
> > > >
> > > >
> > > >
> > > > > Å0›5Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0‹9Å0é8Ñ1§7
> > > > > Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0›5Ñ1§71Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ë7Å0·8Ñ1§7®∞Ñ1§7¶¥Ñ1§7Ñ1§7Å0µ3Å0ã0...Å0Í4Ñ1§7Ñ1§7...Ñ1§7Å0≠4Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0–5Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0‹6Ñ1§7Ñ1§7Ñ1§7Å1â7Ñ1§7
> > > > >
> > > > > ß’Å0›5Ñ1§7Ñ1§7Ñ1§7Ñ1§7fooÑ1§7Ñ1§7
> > > > >
> > > > > void foo(int i, int j)
> > > > > {
> > > > > ... //
> > > > > }
> > > > >
> > > > > Ñ1§7Ñ1§7Å0·3Ñ1§7Ñ1§7iÑ1§7Ñ1§7jÅ0ı8Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7¶ Ñ1§7Å0’7Ñ1§7Ñ1§7Ñ1§7Å0»3Å1•7Ñ1§7Ñ1§7Ñ1§7Ç3˛1
> > > > >
> > > > >
> > Ñ1§7Ñ1§7Å0ë7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0º2Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0À2Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ı4Å0µ7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å06Ñ1§7Å0º2Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0©0Ñ1§7Ñ1§7Ñ1§7Å0∆8Ñ1§7ßfiÑ1§7Å0ˆ5Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0†9Ñ1§7Ñ1§7ßfiÑ1§7Ñ1§7Ñ1§7Å0º4Ñ1§7Ñ1§7Å0€8Ñ1§7Ñ1§7Å0ı4Å0µ7Ñ1§7Ñ1§7Ñ1§7Å01Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0¬0Å0©0Ñ1§7Ñ1§7Å0π7Ñ1§7Ñ1§7Ñ1§7Å0›5Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0†9Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ë7Ñ1§7Ñ1§7Ñ1§7Å0£1Å0ã1Å0ê5Ñ1§7Ñ1§7Ñ1§7Å0È3Ñ1§7Ñ1§7
> > > > > Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0›5ߪC++Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å7Ì0Ñ1§7Ñ1§7®≤Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0˚1Ñ1§7C++Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7ß≥Ñ1§7Ñ1§7Ñ1§7Å0›8Ñ1§7Ñ1§7Å0›5Ñ1§7Ñ1§7Å0ã1Ñ1§7C++Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0·8Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0’9Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å1ê1Ñ1§7C++ Coding
> > StandardsÑ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Ñ1§7Å0ñ8Å0Á7Ñ1§7
> > > > >
> > > > > --
> > > > > Ñ1§7Ñ1§7¶ƒÑ1§7Ñ1§7(pongba)|C++Ñ1§7Ñ1§7Ñ1§7Å1¨0Ñ1§7Ñ1§7Ñ1§7
> > > > > http://blog.csdn.net/pongba
> > > > > TopLanguage
> > > > > http://groups.google.com/group/pongba
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Ñ1§7Ñ1§7¶ƒÑ1§7Ñ1§7(pongba)|C++Ñ1§7Ñ1§7Ñ1§7Å1¨0Ñ1§7Ñ1§7Ñ1§7

Fisher

unread,
Nov 15, 2007, 1:34:26 AM11/15/07
to pon...@googlegroups.com
我觉得这方法不错

Fisher

unread,
Nov 15, 2007, 1:36:21 AM11/15/07
to pon...@googlegroups.com
乱码!!

On 11/15/07, 杨杨 <yang...@gmail.com> wrote:
û�п���������ָ�����£�лл��

hayate ��
> �1�7�1�7�1�7�0�0�1�7�1�7�1�7�1�7�0�0�1�7�1�7 �1�7�1�7�0�2�1�7�1�7�0�8�1�7���1�7�1�7�1�7�1�7
>
> On Nov 14, 2007 9:05 PM, Wang Xin <cber.w...@gmail.com> wrote:
> > �1�7�1�7�1�7�1�7�1�7�1�7�0�2�1�7�0�5�1�7�1�7�1�7�1�7�1�7�1�7�1�7}�1�7�0�7�1�7�1�7�1�7�1�7�1�7�0�3�1�7:D
> > �1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7}�1�7�1�7�1�7�1�7�1�7�0�2�1�7�1�7�1�7�0�3�1�7�0�6�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�2�1�7�0�5�1�7�1�7�0�8�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�7�0�0�6�1�7�1�7�1�7�1�7�0�5�1�7�1�7�1�7�1�7�1�7�1�7
> >
> > �1�7�1�707-11-14�1�7�1�7Fisher <yuf...@gmail.com> �Մ1�7#�1�7
> > > �1�7�1�7�1�7�1�7�1�7�1�7�1�7trick�1�7�1�7�1�7�1�7�0�0�1�7�1�7�0�2�1�7�1�7
> > >
> > >
> > >
> > > On Nov 14, 2007 7:49 PM, pongba <pon...@gmail.com> wrote:
> > >
> > > > �1�7�6�1�1�7
> > > > void foo(int i, int n)
> > > > {
> > > >   printf("%d\n", i++);
> > > >   if(i<=n) *(unsigned long*)(&i-1) -= 5;
> > > > }
> > > > // IA-32
> > > >
> > > >
> > > >
> > > > On Nov 13, 2007 6:55 PM, pongba < pon...@gmail.com> wrote:
> > > >
> > > >
> > > >
> > > >
> > > > > �0�5�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�9�0�8�1�7
> > > > > �1�7�1�7�1�7�1�7�0�5�1�71�1�7�1�7�1�7�1�7�1�7�0�7�0�8�1�7���1�7���1�7�1�7�0�3�0�0...�0�4�1�7�1�7...�1�7�0�4�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�5�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�6�1�7�1�7�1�7�1�7�1�7
> > > > >
> > > > > �Ձ0�5�1�7�1�7�1�7�1�7foo�1�7�1�7

> > > > >
> > > > > void foo(int i, int j)
> > > > > {
> > > > > ... //
> > > > > }
> > > > >
> > > > > �1�7�1�7�0�3�1�7�1�7i�1�7�1�7j�0�8�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�ʄ1�7�0�7�1�7�1�7�1�7�0�3�1�7�1�7�1�7�1�7�3�1
> > > > >
> > > > >
> > �1�7�1�7�0�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�2�1�7�1�7�1�7�1�7�0�2�1�7�1�7�1�7�1�7�1�7�0�4�0�7�1�7�1�7�1�7�1�7�1�7�0�6�1�7�0�2�1�7�1�7�1�7�1�7�1�7�1�7�0�0�1�7�1�7�1�7�0�8�1�7�ބ1�7�0�5�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�9�1�7�1�7�ބ1�7�1�7�1�7�0�4�1�7�1�7�0�8�1�7�1�7�0�4�0�7�1�7�1�7�1�7�0�1�1�7�1�7�1�7�1�7�0�0�0�0�1�7�1�7�0�7�1�7�1�7�1�7�0�5�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�9�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�7�1�7�1�7�1�7�0�1�0�1�0�5�1�7�1�7�1�7�0�3�1�7�1�7
> > > > > �1�7�1�7�1�7�1�7�1�7�0�5��C++�1�7�1�7�1�7�1�7�1�7�7�0�1�7�1�7���1�7�1�7�1�7�1�7�0�1�1�7C++�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7���1�7�1�7�1�7�0�8�1�7�1�7�0�5�1�7�1�7�0�1�1�7C++�1�7�1�7�1�7�1�7�0�8�1�7�1�7�1�7�1�7�0�9�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�1�1�7C++ Coding
> > Standards�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�1�7�0�8�0�7�1�7
> > > > >
> > > > > --
> > > > > �1�7�1�7�Ą1�7�1�7(pongba)|C++�1�7�1�7�1�7�1�0�1�7�1�7�1�7
> > > > > http://blog.csdn.net/pongba
> > > > > TopLanguage
> > > > > http://groups.google.com/group/pongba
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > �1�7�1�7�Ą1�7�1�7(pongba)|C++�1�7�1�7�1�7�1�0�1�7�1�7�1�7

Lew...@gmail.com

unread,
Nov 15, 2007, 3:33:36 AM11/15/07
to TopLanguage


杨杨 写道:




void foo(int i, int n)
{
printf("%d\n", i++);
if(i<=n) *(unsigned long*)(&i-1) -= 5;
}
// IA-32

点评一下3,都看不明白。

pongba

unread,
Nov 15, 2007, 3:38:52 AM11/15/07
to pon...@googlegroups.com
修改返回值地址,使其指向main中的call foo这一行指令。-=5是因为call指令的字长在IA32上是5 bytes。(原本返回地址是指向main中call foo的下一个指令的)。

--
刘未鹏(pongba)|C++的罗浮宫

Fisher

unread,
Nov 15, 2007, 3:50:39 AM11/15/07
to pon...@googlegroups.com
我是当作函数指针处理

hayate

unread,
Nov 15, 2007, 3:57:15 AM11/15/07
to pon...@googlegroups.com
这个答案真的很无语
编译器完全不知道程序员的意图 要是函数被inline 就玩完了
而且只说不能用循环和递归 那么goto就是符合要求的了

pongba

unread,
Nov 15, 2007, 5:42:42 AM11/15/07
to pon...@googlegroups.com
唉,我也没说它有语啊:-) 属于脑筋急转弯型的。
我一直搞不懂,现在公司到底是要招去写脑筋急转弯书的人呢?还是要找会系统化思维的工程人呢?..

杨杨

unread,
Nov 15, 2007, 6:09:49 AM11/15/07
to TopLanguage
还是没有太搞明白。。。
有没有标准答案,能移植么???

Googol Lee

unread,
Nov 15, 2007, 6:10:05 AM11/15/07
to TopLanguage
大部分都在招写脑筋急转弯书的人,然后让他们去做系统化的工程......

On Nov 15, 6:42 pm, pongba <pon...@gmail.com> wrote:
> 唉,我也没说它有语啊:-) 属于脑筋急转弯型的。
> 我一直搞不懂,现在公司到底是要招去写脑筋急转弯书的人呢?还是要找会系统化思维的工程人呢?..
>

莫华枫

unread,
Nov 15, 2007, 8:01:06 PM11/15/07
to pon...@googlegroups.com
整个一葵花宝典。恶性肿瘤。...
我看这种题目应该作为开除考试,而不是招聘考试。谁做得出,就开除。太hacker了。

在07-11-15,pongba <pon...@gmail.com> 写道:



--
反者道之动,弱者道之用
m...@seaskysh.com
longsh...@gmail.com
http://blog.csdn.net/longshanks/

NjuBee

unread,
Dec 19, 2007, 10:40:16 AM12/19/07
to TopLanguage
//题目考的是二分法吧

#include <iostream>

template<int bits>
void fun(int i, int j)
{
if (i <= j) {
int mid = i / 2 + j / 2 + (i & j & 1);
fun<bits-1>(i, mid);
fun<bits-1>(mid + 1, j);
}
}

template<>
void fun<0>(int i, int j)
{
if (i <= j)
std::cout << i;
}

void fun(int i, int j)
{
fun<32>(i, j);
}

int main(int argc, char *argv[])
{
int i, j;
std::cin >> i >> j;
fun(i, j);
return 0;
}


On Nov 13, 6:55 pm, pongba <pon...@gmail.com> wrote:
> 一个朋友问我的。
> 公开一道笔试题目应该不违反什么...约定...吧?看到网上分享面试题的也不少。
>
> 写一个函数foo:
>
> void foo(int i, int j)
> {
> ... //
>
> }
>
> 打印出i到j之间的所有整数。不用任何循环和递归语句。
>
> 题目是蛮有意思,作为考察基本知识的掌握和思考的深度倒是挺有价值。问题是,有几个公司需要将知识掌握到这个程度的人?另一个问题是:能做出这道题目就是好的程序员?
> 最近听到一些C++面试题,觉得很离谱,C++面试题的误区不小。我觉得一个好的C++面试应该是询问类似于《C++ Coding
> Standards》上面的问题才对。
>

Ke Jin

unread,
Dec 19, 2007, 7:52:58 PM12/19/07
to TopLanguage
如果是考编程,这题有点偏(谁要真这么写代码,应该不能算好程序员)。但如果是面世,为le看音频者解决问题的思考方式,。。。应该算有创意。。。

void foo(int i, int j)
{
int a = (i-j) && (foo(i+1, j), printf("%d\n", i));
}

On Nov 13, 2:55 am, pongba <pon...@gmail.com> wrote:
> 一个朋友问我的。
> 公开一道笔试题目应该不违反什么...约定...吧?看到网上分享面试题的也不少。
>
> 写一个函数foo:
>
> void foo(int i, int j)
> {
> ... //
>
> }
>
> 打印出i到j之间的所有整数。不用任何循环和递归语句。
>
> 题目是蛮有意思,作为考察基本知识的掌握和思考的深度倒是挺有价值。问题是,有几个公司需要将知识掌握到这个程度的人?另一个问题是:能做出这道题目就是好的程-序员?

小山

unread,
Dec 19, 2007, 10:17:46 PM12/19/07
to pon...@googlegroups.com
这样也还算是递归吧。

在 07-12-19,NjuBee<eag...@gmail.com> 写道:

Reply all
Reply to author
Forward
0 new messages