2018春招金山WPS面试C++实习

WPS的面试官非常的和蔼可亲,可是自己的心态不好,毕竟是我第一次面试

一面:

自我介绍,玛德,在地铁上背了半天的自我介绍(自己提前写的),见面说了两句就忘了,沃日......

c++,虚函数,多态走起(开心,这里特别熟)

手写链表反转(开心,贼熟)

讲讲stl有什么基本组成(瞎吹一堆)

map存放的是什么

ask:给你一个字符串,找出第一个不重复的字符,如“abbbabcd”,则第一个不重复就是c

ans:直接使用map暴力存啊,暴力跑两遍啊(被前面带歪了)

ask:不跑这么多遍行不行

ans:可以啊,多开几个map(悲剧的开始......)

ask:不开这么多行不行?

ans:那就多跑几遍啊

ask:......(最怕空气突然的安静)

ans:......(卒)


ask:给你两个球,100层楼,每个球在一定高度扔下去会碎,怎么用最少的次数给判断是几层楼能把求摔碎?

ans:暴力试下每种可能,取最优,比如50层扔的试一下,或者30层试下?

ask:不是,你能用一种最优的策略来确定吗?不要暴力?

ans:动态规划?

ask:这还不等于暴力,我是问你有什么策略确定?

ans:......(卒,凉凉夜色为你思念成河~~)

(这个叫鹰蛋问题,有兴趣可百度,用动态规划做的.......)


ask:windows消息机制知道吗?

ans:(os:鬼知啊)知道一点,大概是有个消息队列,每有事件触发,就加入队列,由系统来调用相应的注册事件?

ask:系统怎么知道?

ans:(os:我怎么知道系统知道)大概while(true)死循环?

面试官:看来你对windows了解不深啊......(卒)


ask:观察者模式会吗?

ans:会啊(窃喜)

ask:那你写个医生,病人的观察者模式啊

ans:(os:完蛋,不会写,只会概念)大概这样?还是这样?纸上比划了5分钟......


ask:你还有什么想问?

ans:(os:我凉了吗?)c++有前途吗?

面试官:有的(os:抬走抬走,下一个)


凭借惊人的运气苟到二面,二面是两个大佬,6双眼睛(没有杨戬),气场十足

ask:

  1. const char * arr = "123";
  2. char * brr = "123";
  3. const char crr[] = "123";
  4. char drr[] = "123";

这四者的区别

ans:(窃喜)arr,brr指向的地址一样,crr,drr地址不一样,是个数组

ask:确定?

ans:确定!

ask:真的确定?

ans:好像是......

ask:你给个准

ans:不确定......(卒)


ask: i++和++i的区别

ans:(窃喜)前后自增

ask:怎么实现的?

ans:(os:你问编译器啊!)大概是有个函数,吧?

ask:那(i++)++和(++i)++哪个会报错?

ans:......(掀桌子了)

ask:你能写个函数在main函数执行前先运行的吗?
ans:(os:还有这种要求?)这.....要不我们去汇编改改cs和ip?
ask:不是,这太底层了,我们只在语法层面解决
ans:不会......


ask:原来代码是这样的:

  1. for(int i = 0; i < 20; i++)
  2. cout << "hello" << endl;

现在不小心写成:

  1. for(int i = 0; i < 20; i--)
  2. cout << "hello" << endl;

在只改一个字符的前提下,怎么让下面的代码正确地运行20次?

ans:(os:妈呀,劳资脑子不好啊,别问我脑筋急转弯好不好?)这个......不知道呢(卒)

(将 for里面的<改为+即可)


ask:听说你会STL?

ans:会一点......

ask:写个share_ptr看看

然后扯皮扯了5分钟......


ask:还有什么问题要问吗?

ans:(os:能不能给个全尸?)没了没了

ask:真的?

ans:(os:你倒是继续问我啊,我才坐了10分钟啊)真的真的.......

面试官:那你回去等通知吧(翻译:你凉了)


总结:太菜

#实习##面经##西山居##校招#
全部评论
扔球的问题,应该是先50层扔一次,如果不碎,就75层扔,再不碎就88层扔,以此类推,记录每次扔之前不碎的层数,当前扔的层数,还有当前阶段最大的层数,扔到碎为止,这是二分思维,碎了就记录当前层数减1为最大层数,从扔之前的层数加1开始逐层扔,如果第一次在50层扔就碎了,那只能从第一层开始扔,因为就两个球,如果球足够,就用完全的二分法可以搞定。大致思维就这样,可以去看一下二分法查找的代码,很多面试也会用到的。
点赞 回复
分享
发布于 2018-07-10 04:46
哈哈哈 好可爱 加油加油
点赞 回复
分享
发布于 2018-04-03 22:49
联易融
校招火热招聘中
官网直投
你这面经笑死,我二面java,面试官c++,尴尬至极,没十分钟就回去等通知了。临走前还问面试官一句,我是不是问题特别大?😂
点赞 回复
分享
发布于 2018-04-03 23:10
while true死循环耗费CPU资源的,虽然我也不知道os底层怎么实现异步的,大概是要回答线程的cond/wait?找不重复字符,把首次出现的位置以及出现次数当成map的value吧,这样一次遍历就完了。
点赞 回复
分享
发布于 2018-04-03 23:47
cpp11里char* brr = "123"编译无法通过的。const char []这个没接触过,我的答案和楼主一样,估计也要被问怕。i++是把i的值作为返回值,把i+1赋值给i,++i是把i+1赋值给i,再返回i的引用。因此++i只能作用于左值,(++i)++报错。前几天在牛客上做到这一题的。main函数前执行的,大概是把一个对象作为类的静态成员,在外部定义,然后构造函数先于main函数执行,不知道对不对。
点赞 回复
分享
发布于 2018-04-03 23:56
m
点赞 回复
分享
发布于 2018-04-03 23:59
我就比较奇怪没人吐槽map么……不是开个30大的数组就好了么……
点赞 回复
分享
发布于 2018-04-04 00:27
话说我现在投金山还来得及么…………
点赞 回复
分享
发布于 2018-04-04 00:28
map这个题网上题解很多,开两个数组,一个记录第一次的下标,一个记录重复个数
点赞 回复
分享
发布于 2018-04-04 11:21
//对你的hashMap解法测试了下子 import java.util.*; public class MapTest{           public static void  getChar(String str)      {           char[]chas=str.toCharArray();          HashMap<Character,Integer>hash=new HashMap<>();          int key=1;          for(int i=0;i<chas.length;i++)          {               if(hash.containsKey(chas[i]))               {                  int v=hash.get(chas[i]);                  hash.put(chas[i],++v);               }else{                 hash.put(chas[i],key);               }          }          char rechar=0;          for(char key2:hash.keySet())          {                              if(hash.get(key2)==1)               {                                    rechar=key2;                  //break;               }          }          System.out.println(rechar);      }             public static void main(String[]args)      {           String str="abbbabcd";                     getChar(str);      } }
点赞 回复
分享
发布于 2018-04-04 21:17
请问大佬,金山一面过后没现场二面的话就是凉了的意思吗?
点赞 回复
分享
发布于 2018-04-05 09:22
老哥稳 是要把我笑死....
点赞 回复
分享
发布于 2018-04-05 10:22
喜剧面筋哈哈哈
点赞 回复
分享
发布于 2018-04-05 14:30
WPS C++实习怎么样呀,有人了解么?
点赞 回复
分享
发布于 2018-04-06 13:34
好可爱啊哈哈哈哈哈
点赞 回复
分享
发布于 2018-04-08 22:04

相关推荐

10 55 评论
分享
牛客网
牛客企业服务