由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G家电面,这回肯定挂了。附面经。
相关主题
请问这样写程序错了吗?请问如何准备C/C++面试
A家店面栽在一个老中手里分享A公司面经
问一个memory allocate/release的问题a MS interview question about C++
请教大家一道关于c++的面试题被鄙视了的C语言题目,找工作真难啊
放c code求老师傅指教吐糟今天下午的电话面试,第一次见识了烙印的简历水分有多大
how to access a const char array in a function这个Strategy design pattern的例子为什么人为得弄得这么复杂?
merge两个有序数组贴几道某大公司的面试题
bloomberg onsite 面经请问strcpy()和memcpy()的写法问题
相关话题的讨论汇总
话题: char话题: const话题: caller话题: 返回值话题: c++
进入JobHunting版参与讨论
1 (共1页)
w********g
发帖数: 106
1
知识题:
C++和Java的区别
JVM怎么工作
其余的忘记了,也都是基本概念。
编程题:
大数加法
char* add(const char*a, const char *b){ }
原以为一面就会挂,结果面试官发善心让我过了。二面的面试官可能有事,过了半小时
才打来电话。面试官是国人大哥,英语没口音,但是他念我的名字按照中国人顺序念。
因为电话迟了半小时,所以整个面试只有半小时,所以只有一道编程题。题目很简单,
但我做的很差,因为可恨我很久不用C编程了,把strlen、strcpy都忘记了。我写C++的
string.length(),结果他说只能写C的。我说我忘了,其实我记的,但是一着急就写错
了,NND一个参数的基础函数我都能写错。
我写了一句
char *result = (char*)malloc( max( strlen(a), strlen(b) ) +2 );
我边写他就边找bug,我一行还没写完他就指出我的错误。看来以后要养成一遍成的习
惯。由此我也知道这次挂了,因为对方显然要求一遍就过。
这位面试官思路很活跃很快,从来不等我把话说完或者把某一块代码写完。另外比如我
回答C++和Java区别时提到java有virtual machine,他就转而问我JVM怎么工作的。看
来适应不同风格的面试官也是必需的,面试毕竟不是高考托福GRE那样的标准化考试 in
which 我们只需关系题目而不必关心风格。
p*****2
发帖数: 21240
2
用C语言面试就是找虐。
w********g
发帖数: 106
3
他直接把函数头写出来了,我就没法用java,我要用C++的string,他也不让。。。

【在 p*****2 的大作中提到】
: 用C语言面试就是找虐。
r*******e
发帖数: 7583
4
不明白你最后的问题
难道不是free(result)就行了,free自然知道该回收多少内存

【在 w********g 的大作中提到】
: 他直接把函数头写出来了,我就没法用java,我要用C++的string,他也不让。。。
w********g
发帖数: 106
5
函数的返回值就是return result啊

【在 r*******e 的大作中提到】
: 不明白你最后的问题
: 难道不是free(result)就行了,free自然知道该回收多少内存

p*****2
发帖数: 21240
6

看来LZ被黑了。

【在 w********g 的大作中提到】
: 他直接把函数头写出来了,我就没法用java,我要用C++的string,他也不让。。。
w********g
发帖数: 106
7
也不能说是被黑,毕竟题目不难,没有什么算法,所以就考查基本功了

【在 p*****2 的大作中提到】
:
: 看来LZ被黑了。

p*****2
发帖数: 21240
8

caller负责free

【在 w********g 的大作中提到】
: 函数的返回值就是return result啊
r*******e
发帖数: 7583
9
那为什么要在函数体里面free?
不应该是caller负责free么

【在 w********g 的大作中提到】
: 函数的返回值就是return result啊
p*****2
发帖数: 21240
10
char* add(const char*a, const char *b){}
这个signature定义本身就很naive。
相关主题
how to access a const char array in a function请问如何准备C/C++面试
merge两个有序数组分享A公司面经
bloomberg onsite 面经a MS interview question about C++
进入JobHunting版参与讨论
w********g
发帖数: 106
11
刚刚回看了一遍代码,我终于明白他是什么意思了!
他是叫我free另一个东西!我一直以为他叫我free这个!
我已经把那个free过了,就纠结于怎么free这个,心想free返回值真是闻所未闻啊,原
来是误解面试官了。难怪他说了一句its fine就不继续了。

【在 r*******e 的大作中提到】
: 那为什么要在函数体里面free?
: 不应该是caller负责free么

w********g
发帖数: 106
12
请详细说说行吗?为什么naive啊?

【在 p*****2 的大作中提到】
: char* add(const char*a, const char *b){}
: 这个signature定义本身就很naive。

p*****2
发帖数: 21240
13

真正的C代码不会这么写的。

【在 w********g 的大作中提到】
: 请详细说说行吗?为什么naive啊?
w********g
发帖数: 106
14
那应该怎么写呢?
他的意思该不会是要我指出signature不能这么写吧?

【在 p*****2 的大作中提到】
:
: 真正的C代码不会这么写的。

q******8
发帖数: 848
15
这个。。。为啥必须用C写。。。。虽然比较简单,不过这不是找茬么
w********g
发帖数: 106
16
他问我喜欢用什么语言,我说C++和Java,于是他叫我用C写,哈哈,这大哥也挺幽默。
也不能说是找茬,应该是为了检查基本功。

【在 q******8 的大作中提到】
: 这个。。。为啥必须用C写。。。。虽然比较简单,不过这不是找茬么
p*****2
发帖数: 21240
17

一般都应该有返回值的。

【在 w********g 的大作中提到】
: 那应该怎么写呢?
: 他的意思该不会是要我指出signature不能这么写吧?

f********4
发帖数: 988
18
paipai
只要国人面。不管大陆的,台湾的,华裔美国人华裔加拿大人
必挂。。从来没有失手过。。
我真给跪了。。印度人都没有挂的这么狠
d****i
发帖数: 4809
19
呵呵,看来google还真是发飙要真正会写C的人了,要不我说怎么Android的两个重要
bug拖了两年多至今没有fix,都是系统底层的,让我怀疑google里面是不是很多人真不
会C。

【在 w********g 的大作中提到】
: 他问我喜欢用什么语言,我说C++和Java,于是他叫我用C写,哈哈,这大哥也挺幽默。
: 也不能说是找茬,应该是为了检查基本功。

s********k
发帖数: 6180
20
这个signature写的很标准啊,返回值就是char*,然后两个参数都加上const做保护避
免在函数中被修改

【在 p*****2 的大作中提到】
:
: 一般都应该有返回值的。

相关主题
被鄙视了的C语言题目,找工作真难啊贴几道某大公司的面试题
吐糟今天下午的电话面试,第一次见识了烙印的简历水分有多大请问strcpy()和memcpy()的写法问题
这个Strategy design pattern的例子为什么人为得弄得这么复杂?Facebook phone screen
进入JobHunting版参与讨论
g*******s
发帖数: 2963
21
你马考到我我也得挂。malloc怎么拼都快忘了
J**9
发帖数: 835
22
What if you only know C?

【在 p*****2 的大作中提到】
: 用C语言面试就是找虐。
p*****2
发帖数: 21240
23

跪的可能性很大

【在 J**9 的大作中提到】
: What if you only know C?
p*****2
发帖数: 21240
24

出错怎么办?

【在 s********k 的大作中提到】
: 这个signature写的很标准啊,返回值就是char*,然后两个参数都加上const做保护避
: 免在函数中被修改

w********g
发帖数: 106
25
关键是我不理解他的考点,我猜测他其实是要考C语言和大数加法的方法。还好我的大
数加法写对了,他看了以后也说没bug。但是C语言那部分我跪的五体投地。

【在 g*******s 的大作中提到】
: 你马考到我我也得挂。malloc怎么拼都快忘了
s********k
发帖数: 6180
26
出什么样的错?老大这是C,没有exception那一套,memory leak的话也用不着在
signature里面定义什么。无非就是malloc不行返回NULL而已,这个没问题。返回值定
义了char*,其他所有指针都会被typecast到char*(当然很难相信这个函数里面还能搞
出啥其他指针,除非弱智到不在malloc时候做cast,这样出来是void*)

【在 p*****2 的大作中提到】
:
: 出错怎么办?

p*****2
发帖数: 21240
27

哈哈。这样都行?你有用C做过项目吗?

【在 s********k 的大作中提到】
: 出什么样的错?老大这是C,没有exception那一套,memory leak的话也用不着在
: signature里面定义什么。无非就是malloc不行返回NULL而已,这个没问题。返回值定
: 义了char*,其他所有指针都会被typecast到char*(当然很难相信这个函数里面还能搞
: 出啥其他指针,除非弱智到不在malloc时候做cast,这样出来是void*)

s********k
发帖数: 6180
28
你就别绕弯了,直说你觉得这个signature有啥问题,

【在 p*****2 的大作中提到】
:
: 哈哈。这样都行?你有用C做过项目吗?

f*o
发帖数: 654
29
我觉得c语言很不错啊

【在 p*****2 的大作中提到】
: 用C语言面试就是找虐。
f********4
发帖数: 988
30

就是返回值,一般是各种error
比如0是没错,1是XX错误,2是XX错误。
各种返回值,代表的意义不同
这样在一个大的系统里,可以比较容易track哪里出错了
我是初学者。。但我看的C toolkit里面,一般函数返回值都是定义好的做error
management的,buf用传参的方式传进函数。。
不过我看版上面经,有人面BB也遇到过在caller 里free的。估计面试的话也想考察一
下概念清不清楚

【在 s********k 的大作中提到】
: 你就别绕弯了,直说你觉得这个signature有啥问题,
相关主题
请教一道c/c++题 (转载)A家店面栽在一个老中手里
Thread safe strcpy ??问一个memory allocate/release的问题
请问这样写程序错了吗?请教大家一道关于c++的面试题
进入JobHunting版参与讨论
J**9
发帖数: 835
31
1) For this signature
char* add(const char*a, const char *b)
It's definitely caller-free since you can't modify either one.
(allocation within the function)
(Or use a static buffer, but not recommended)
2) You can overwrite a with this, assuming a has enough spaces:
char* add(char*a, const char *b)
3) It's all caller's responsibility:
char* add(const char*a, const char *b, char *results)
Caller pre-allocates a buffer and passes in, of course, frees it later IF it
's from heap.
Choice 3) is the recommended way by the author of "expert C programming".
Choice 1) is actually used a lot in production systems.
s********k
发帖数: 6180
32
你这个是把简单问题复杂化,这个函数就是个简单面试问题,又没有给你提供背景说复
杂的系统函数,里面出现的各种问题NULL返回值足够了。
去看看kernel里面比如strcpy的实现,这个函数复杂度和strcpy差不多。返回值用char
*没有问题。
至于你说的那种caller传buffer,理论上是不错,实际系统中大多数不会这么搞得复杂
,如果大系统的码农连函数里面做点malloc和free都搞不定,signature再好项目肯定
完蛋

【在 f********4 的大作中提到】
:
: 就是返回值,一般是各种error
: 比如0是没错,1是XX错误,2是XX错误。
: 各种返回值,代表的意义不同
: 这样在一个大的系统里,可以比较容易track哪里出错了
: 我是初学者。。但我看的C toolkit里面,一般函数返回值都是定义好的做error
: management的,buf用传参的方式传进函数。。
: 不过我看版上面经,有人面BB也遇到过在caller 里free的。估计面试的话也想考察一
: 下概念清不清楚

f********4
发帖数: 988
33

char
这。。我只是初学者。。确实现在写过的还没有碰到过caller里free的情况。。所以如
果是我面试里看到的话,可能会觉得比较confuse。。因为平常没有看到过。。
不过由此M onsite确实有人问到过C里error handle的问题。。我觉得知道的话还是挺
不错的
我觉得我现在做的系统不是很小吧,但是buffer都是传参的方式传进来的。。不好意思
。。不是故意找茬。。可能我见的太少了ORZ

【在 s********k 的大作中提到】
: 你这个是把简单问题复杂化,这个函数就是个简单面试问题,又没有给你提供背景说复
: 杂的系统函数,里面出现的各种问题NULL返回值足够了。
: 去看看kernel里面比如strcpy的实现,这个函数复杂度和strcpy差不多。返回值用char
: *没有问题。
: 至于你说的那种caller传buffer,理论上是不错,实际系统中大多数不会这么搞得复杂
: ,如果大系统的码农连函数里面做点malloc和free都搞不定,signature再好项目肯定
: 完蛋

d**********x
发帖数: 4083
34
caller里面free,我首先就想到strdup。。。

说复
复杂
肯定

【在 f********4 的大作中提到】
:
: char
: 这。。我只是初学者。。确实现在写过的还没有碰到过caller里free的情况。。所以如
: 果是我面试里看到的话,可能会觉得比较confuse。。因为平常没有看到过。。
: 不过由此M onsite确实有人问到过C里error handle的问题。。我觉得知道的话还是挺
: 不错的
: 我觉得我现在做的系统不是很小吧,但是buffer都是传参的方式传进来的。。不好意思
: 。。不是故意找茬。。可能我见的太少了ORZ

s********k
发帖数: 6180
35
如果buffer都是传参的话,内存的处理就应该在caller而不是callee里面了,为什么会
没碰到这种情况?

【在 f********4 的大作中提到】
:
: char
: 这。。我只是初学者。。确实现在写过的还没有碰到过caller里free的情况。。所以如
: 果是我面试里看到的话,可能会觉得比较confuse。。因为平常没有看到过。。
: 不过由此M onsite确实有人问到过C里error handle的问题。。我觉得知道的话还是挺
: 不错的
: 我觉得我现在做的系统不是很小吧,但是buffer都是传参的方式传进来的。。不好意思
: 。。不是故意找茬。。可能我见的太少了ORZ

p*****2
发帖数: 21240
36

你对error handle的理解是正确的。

【在 f********4 的大作中提到】
:
: char
: 这。。我只是初学者。。确实现在写过的还没有碰到过caller里free的情况。。所以如
: 果是我面试里看到的话,可能会觉得比较confuse。。因为平常没有看到过。。
: 不过由此M onsite确实有人问到过C里error handle的问题。。我觉得知道的话还是挺
: 不错的
: 我觉得我现在做的系统不是很小吧,但是buffer都是传参的方式传进来的。。不好意思
: 。。不是故意找茬。。可能我见的太少了ORZ

M********t
发帖数: 5032
37
g也一般啦,除了search,其他都不行

【在 w********g 的大作中提到】
: 知识题:
: C++和Java的区别
: JVM怎么工作
: 其余的忘记了,也都是基本概念。
: 编程题:
: 大数加法
: char* add(const char*a, const char *b){ }
: 原以为一面就会挂,结果面试官发善心让我过了。二面的面试官可能有事,过了半小时
: 才打来电话。面试官是国人大哥,英语没口音,但是他念我的名字按照中国人顺序念。
: 因为电话迟了半小时,所以整个面试只有半小时,所以只有一道编程题。题目很简单,

M********t
发帖数: 5032
38
g也一般啦,除了search,其他都不行

【在 w********g 的大作中提到】
: 知识题:
: C++和Java的区别
: JVM怎么工作
: 其余的忘记了,也都是基本概念。
: 编程题:
: 大数加法
: char* add(const char*a, const char *b){ }
: 原以为一面就会挂,结果面试官发善心让我过了。二面的面试官可能有事,过了半小时
: 才打来电话。面试官是国人大哥,英语没口音,但是他念我的名字按照中国人顺序念。
: 因为电话迟了半小时,所以整个面试只有半小时,所以只有一道编程题。题目很简单,

1 (共1页)
进入JobHunting版参与讨论
相关主题
请问strcpy()和memcpy()的写法问题放c code求老师傅指教
Facebook phone screenhow to access a const char array in a function
请教一道c/c++题 (转载)merge两个有序数组
Thread safe strcpy ??bloomberg onsite 面经
请问这样写程序错了吗?请问如何准备C/C++面试
A家店面栽在一个老中手里分享A公司面经
问一个memory allocate/release的问题a MS interview question about C++
请教大家一道关于c++的面试题被鄙视了的C语言题目,找工作真难啊
相关话题的讨论汇总
话题: char话题: const话题: caller话题: 返回值话题: c++