今天去了广州腾讯研发中心(微信)实习生面试,分享下自己的面试经历吧~

2015-03-18 00:23:50 +08:00
 wind3110991

到了TIT创意园,第一眼进去就觉得。。。我去那么高大上的。。。一栋栋砖厂房内部都改装成了高级办公室,以后如果能在这里工作。。死以足惜 = =
好了废话不多说,找到了腾讯的4号微信楼,拿了牌子到了3号楼等面试官
过了10分钟,下来了一位相貌平凡的男生,大概有个26岁左右。。叫我和他一起上楼,还笑着问我,今天没有上课啊~(我翘课来面试的 = = 哈哈)
然后坐到一个咖啡桌上,我递了一份简历给他,他给了一份题给我做,笑着说:“45分钟后我回来哦~”
我拿起题目一看= =我去,3道题都是考察编程的(我面试的方向是ios)
应该都是用c++来考察的

1、请你写出memcpy函数的实现方法:拷贝函数

2、请您写出atoi函数的实现方法

3、请写出双向链表的删除目标值nVal的方法,并输出删除数量

拿到题后,第一和第三题稍微有些把握。。但是第2题确实有些虚= =毕竟把字符串转整型我把它考虑得太复杂了= =(我没有想过手机去百度查,没意思,虽然周围没人,但是面试一定要诚实!)

三道题写完之后,1小时过去了。。他回来开始问我有关题目的东西(第一第三题有清晰思路,第一题答得稍微完整一些,第三题二了,居然参数里搞了一个尾指针= =我当时真的太紧张了,因为以为他要给我一些objc的问题。。。没想到全部都是c和c++的概念,第二题只是大概写了思路)
他也没有直接说我答得不好,开始找我代码里的错,然后我顺着代码讲我的思路。。到了错的地方,他便开始提醒我哪里有问题,并且问我一些基础知识,比如什么是&符号,内存字节数,深复制和浅复制等等。。然后开始对照简历问我项目的事情,我就如实回答(真的如实没有一句假话)

不过当时真的一个项目做太久了,有实现一个多通道上下文的滤镜算法,他问我怎么实现黑白算法的参数,我顿时懵了,参数我是对照参数表来填的,方法确实是我写的。。但是我忘了参数的具体数字。。他便问这个东西是不是你自己做的,我说是。。(不过能看出他有些失望吧)但是面试官真的挺好人,和我说,做过的东西一样要去牢牢掌握他,不然就失去项目的意义和学习的意义。我挺惭愧的,后来我还聊了一些关于python、服务器后台的东西。

最后我们开始聊一些和技术没关的东西,我问师兄请问您是哪里的,为什么今天没有问objc的东西。。他说是华师的(虽然我是华工的,但是真的自愧不如),他说,其实挺多同伴以前都是后台开发,后来转型做ios,技术不在于你有多高深,而是你对基础的掌握程度!(赞!!!)

最后他送走我,我一路上都在反思,不管结果如何,我今天都是收获颇多。
你对自己所学到的东西有没有用心?
你对自己的知识掌握如何?
你值得一份offer吗?
综合那么多,我也找到了以后学习的方向和动力,无论如何,感谢这位名叫jake的面试官!
PS:面试结果我会在回复里说的~应该没什么希望了吧= =代码写的漏洞百出啊!

(下面是重新审视这三题的答案:)
1、

2、

include <ctype.h>

include <stdio.h>

int atoi (char s[]);
int main(void )
{
char s[100];
gets(s);
printf("integer=%d\n",atoi(s));
return 0;
}
int atoi (char s[])
{
int i,n,sign;
for(i=0;isspace(s[i]);i++)//跳过空白符;
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]==' -')//跳过符号
i++;
for(n=0;isdigit(s[i]);i++)
n=10*n+(s[i]-'0');//将数字字符转换成整形数字,关键步骤= =唉,我真是。。
return sign *n;
}

2、
void *Memcpy(void *dst, const void *src, size_t size)
{
char *psrc;
char *pdst;

if(NULL == dst || NULL == src)
{
    return NULL;
}

if((src < dst) && (char *)src + size > (char *)dst) // 自后向前拷贝
{
    psrc = (char *)src + size - 1;
    pdst = (char *)dst + size - 1;
    while(size--)
    {
        *pdst-- = *psrc--;
    }
}
else
{
    psrc = (char *)src;
    pdst = (char *)dst;
    while(size--)
    {
        *pdst++ = *psrc++;
    }
}

return dst;

}

3、
DLinkList DLinkListDelete(DLinkList L,int i)
{
int tempi = 1;
DLinkList p; //p为查找结点。
p = L->next;
while((tempi++) != i && p != NULL)
{
p = p->next;
}
if(p == NULL) //检查是不是在双链表中的位置
printf("位置不合法。\n");
else if(p->next == NULL) //最后一个结点特殊处理,原因最后一个结点p->next没有prior

{
p->prior->next = NULL;
free(p);
}
else //进行删除操作
{
p->prior->next = p->next;
p->next->prior = p->prior;
free(p);
}
}
然后在调用DLinkListDelete的过程中给一个int i值,不断记录删除的次数就好!

= = 欲哭无泪

11907 次点击
所在节点    求职
62 条回复
illuz
2015-03-18 00:41:29 +08:00
砖厂房... 还真是搬砖的,哈哈。
atoi 的实现在 leetcode 上有一题: https://leetcode.com/problems/string-to-integer-atoi/ 要考虑空格、范围的,可以去看看。:)
双向链表的删除应该是要你在一个函数中完成删除和统计的,还有用 free() 不能执行类里面的析构函数,用 delete 比较好。
gracece
2015-03-18 00:45:34 +08:00
4号楼差不多就要拆了,真是可惜。
wind3110991
2015-03-18 01:29:01 +08:00
@illuz 谢谢大神啊,我怕如果用c语言没有delete...
wind3110991
2015-03-18 01:29:30 +08:00
@gracece 请问你是在里面工作过吗
Sunya
2015-03-18 02:05:47 +08:00
还是蛮喜欢创意园的环境的, 不过我喜欢在贝塔咖啡..
ruchee
2015-03-18 08:04:16 +08:00
创意园那里环境不错,就在广州塔脚下,前阵去的的时候,微信的办公楼还在装修
a15819620038
2015-03-18 08:26:54 +08:00
谢谢分享~
jandan
2015-03-18 08:32:03 +08:00
死以足惜 = = 为何如此草率
bcxx
2015-03-18 08:41:58 +08:00
还是这三道题啊…… atoi 得话状态机做的
sina012345
2015-03-18 08:58:40 +08:00
真是时运不济,我面的时候是40分钟做7道题。。。坑死我了。。。
Monad
2015-03-18 08:59:49 +08:00
memcpy不需要考虑overlap的情况,这是调用者需要保证的。
MexiQQ
2015-03-18 09:15:19 +08:00
看来我等没有希望了
wilsoncao
2015-03-18 09:36:01 +08:00
@Monad 不要吗? 要吧 有一些面试官告诉我这个就是一个考察点。。
Monad
2015-03-18 09:37:58 +08:00
@wilsoncao 那个是memmove了
如果真要指明了考察这个我觉得是我的话我会先问你这两个的区别 然后再让你实现一个memmove
wilsoncao
2015-03-18 09:44:32 +08:00
@Monad soga,受教了,真大神也!
crny520
2015-03-18 09:59:33 +08:00
带华的都不是什么好货。
overtrue
2015-03-18 10:01:39 +08:00
微信做API那帮人就是SB
yywudi
2015-03-18 10:32:30 +08:00
@crny520
@overtrue
我觉得你们俩的回帖很莫名其妙,一个攻击带华的,是攻击华师和华工出来的都不是好货?
一个扯到微信做API的怎么怎么,这楼纯粹一个实习生的经历分享贴顺便上面都在比较和谐的讨论技术的实现啊指导啊之类的,和微信API有半毛钱关系么?

说完之后是不是得写上”已block"才是v2ex标准的流程?
chairuosen
2015-03-18 10:34:01 +08:00
@crny520 莫开地图炮
forpledge
2015-03-18 11:17:35 +08:00
这种面试蛮舒服的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/177630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX