Lost[4]:补一下各种bs

2011年7月1日 评论已被关闭

一直忘了写了,导致一下子堆了4次。。。

Lost[0] 阿里云笔试:

这个比较神奇,我同学投的产品职位,结果跟我们一样,考研发的题 =。=||

时间隔的比较久了,具体题目也记得不是特别清楚了。唉,以后还是要及时记下来。

有一个最小堆的题目,问删除一个节点后的结果,写出任意解就行。

有一个程序快速排序的填空题,就是程序挖掉一点,让填出缺的语句。

还有一个和给了俩函数,分别在两个线程中运行,问最后的结果可能会有哪几种。这题就是排列组合吧,把各种情况都考虑一遍。

还有个算概率的题,0<x<1,0<y<1,问x2+y2<1的概率。这题当时还愣了一下,怎么还有这种题。最后想想算下面积比就ok了。

还有个数组中连续下标元素之和的最大值,时间复杂度o(n)。这题没搞定,因为就45分钟时间,来不及。。。

大概就记得这么些题,记不清了。

最后也没有面试通知,挂dyb。

Lost[1] 新浪微博笔试:

这个现场宣讲现场笔试,结果人爆满,宣讲现场根本进不去,只好找了个地方先歇着,直接等笔试。

这个全是大题,第一题是列出一些常用linux命令并说明用途。

然后是问这货什么意思 int (*a[10])(int),被他搞的晕dyb。

接着是个数组找重复的题目。int a1[] int a2[]都是升序数组。a1中可能含有a2[]中的数。求:删除a1中和a2数组中值相同的数,并返回a1后数组有效值个数。

下面是个状态机的题吧,把状态转移图弄出来就可以写了。

一个函数,输入abc12de33d9,
输出:
ab\n 
bc\n  
12\n  
de\n  
33\n  
d\n  
9\n

然后是a[100000]里的数每个数都不一样,1)求top10。2)求中位数

top10可以用类似快速排序的方法,只是退出条件不一样罢了。不过现场快排的具体代码记得不是很清楚,所以写的很乱。第二题可以算是第一题的特例吧,我当时是没想到什么好办法。

下面是不知长度的链表list,求倒数第N个节点的值。

这货我觉得只能遍历吧?维护两个指针。。。谁有更好的方法?

20G的整数,排序,内存512M,硬盘无限制

这个,分段吧,然后分别快排写文件,然后两两归并。不过还是时间来不及了,只写了想法,没有写出具体代码。

这个也没有收到面试通知,挂起。。。然后这个试卷给留的答题的地方巨小,很多都写不下。

Lost[2] 人人网笔试:

这个前面也有很长时间的宣讲活动,还送t恤。

这个题目也记的不是很清楚了,好多读程序的题。

有个题是问进程间通信有哪些方法,每种方法有什么优点和缺点。这个。。方法倒是写出来不少,写的也挺全的,但是这个优缺点,就写的模棱两可了。

有个考构造函数的题,又是拷贝构造函数又是static,还有=的重载,后面有一段代码问输出结果。也写的稀里糊涂的。。

有一个模板的题目,问输出答案。就是定义了一个模板函数,函数里面有个static变量,然后还有个全局变量。后面执行了一系列函数,而且是cout后面一串,问输出结果。这题把我搞的糊里糊涂的。。。彻底晕了。

其他题目都记不清了,反正最后也没有面试通知,挂!

Lost[3] 腾讯搜搜一面:

冒着大雨去的。

基本是对着简历问吧,问了很多项目相关的东西,问的很细。主要让描述项目的内容和意义和在项目中起到的角色,还有项目中的遇到了哪些困难。面试的主要内容就这个,简历上的每个项目都问了。

然后面试官介绍了下这个职位具体的工作,问我是否感兴趣,说是属于前端部门。我当时愣了一下,因为最近在实验室给项目那个程序做界面,做的都怕了,ps用的都吐了。。。而且这货也不是我擅长的,配色什么的,最讨厌了。然后我仔细问了一下具体负责的内容,会不会有类似美工的活。面试官说不负责这个,美工,HTML,CSS有专门的部门去负责。其实这个是介于前端和后台中间的东西,对后台提供的数据进行分析,然后应用到功能上。功能上线以后还需要对用户使用的一些数据进行收集和分析,主要是功能和数据上的工作,和前端打交道,但并不是美工。然后说工作主要使用的工具是php和linux shell脚本。我的顾虑也打消了,不过确实也有点偏离我现在做的东西。

面试官知道我以后打算找互联网行业的职位后,还讲了很多互联网行业和传统通信行业的区别,最大的区别就是互联网行业最好的产品是直接和广大用户打交道的,而传统通信行业的设备商(华为中兴)的大部分设备是和专业人员打交道的,所以互联网行业更重视用户交互和用户体验。

后面提到了实习时间的问题,因为实验室有要求,所以可能要比较晚开始。面试官表示这个不是问题,他说公司其实并不喜欢那种很草率的人,实验室如果有事情的一定要处理交接完毕再开始实习,说草率的对待实验室项目以后肯定也会草率的对待公司的项目,公司还是喜欢有责任心的人。

问完项目,介绍完职位,以及对兴趣的考察,然后面试官说去问问其他人还有什么问题需要问的。

结果拿下来一份题,让现场写,说是公司规矩,这个必须有的。

第一题是猴子选大王的问题,这题有道当时就问过,不过有点差别。100只猴子围一个圈,依次报数,报道7的倍数或者数字中含有7的就退出,求最好剩下的那个。用环形链表搞定的。

第二题又是大文件排序,2G大的文件,都是4字节整数,限定200M内存,排序后输出到一个文件。这个还是分治法,分段排序,然后归并。程序最后也没写完,写了一半,但是思路写了。

结束,告诉我一周内给二面通知。

回学校吃饭。

海陀自虐行

2011年6月12日 评论已被关闭

早就听说过传说中的海陀,一直没有机会去,这次终于如愿以偿了。

919加小面,差不多9:30左右到达山脚西大庄科,开始爬。

自虐队果然不一样,行进速度各种快,而且基本没有休息,在到达销魂大坡前只休息了几分钟吧,我也乘机喝了罐红牛。

这个销魂大坡还真是销魂,不是一般的销魂,坡度在45-60度之间吧,而且前一天还下过雨,路各种滑。在爬的时候,脚根本就不怎么好使劲,每走一步都必须用手抓个东西拉一把。这也是我第一次爬山回来发现胳膊疼的。。。。

也没统计这个坡爬了有多久,估计得有个把小时吧,终于胜利征服。

IMG_1540

IMG_1542

销魂大坡之后,视野立马豁然开朗,心情变得非常舒畅,于是大家找到一片松林,开始午饭。在山顶吃西瓜的感觉那真是爽毙了。

在此次发生插曲若干。

首先是一个排球大的西瓜被22个人围观。。。西瓜表示鸭梨山大。

然后神龟被同学忽悠带的方便米饭,然后一看说明,冷水泡开需要45分钟。。。还好大家带的腐败物资还是很丰富的。

海拔高度对气温的影响还是很大的,记得以前地理书上好像说的是海拔上升100米,气温下降6度,这海拔近200米的地方已经丝毫感觉不到夏日的炎热,十分凉快。在树林里,山风吹过的时候,甚至觉得有点冷意。本人再次助人为乐,将防风防雨的外套给了神龟,为后面的杯具埋下了伏笔。。。

午饭后开拔,像目的地小海陀前进。

IMG_1555

下面就是这次自虐之行的目的地——小海陀

IMG_1554

山坡上有成片的胭脂花,很好看

IMG_1614

IMG_1577

六月的天娃娃的脸,还真是特别有道理。

在上到海拔2000米的时候,回头一看,大事不妙,乌云压境。

IMG_1610

山雨欲来风满楼,风越来越大。

在上到海拔2100米的时候,风力已经差不多6级以上了吧,人已经有点站不稳了。雨点开始随着狂风下来。拿出一次性雨衣,可是大风已经使得我没有办法穿上了,在风中凌乱啊凌乱。。。

干脆不穿了,淋就淋吧。关闭所有电子设备,特别是手机这种招雷劈的玩意,用雨衣包好了,塞进包里。

风越来越大,主领猿人指示,在他之后的人都不要继续爬升了,全部下撤,并用对讲机呼叫已经上去的人下撤。

于是我就很遗憾的没能登顶,开始下撤。

在海拔2000多米的高山上,六七级的大风,还有瓢泼大雨,而且也没个躲雨的地方(不能躲树下),气温骤然下降到十几度吧,我穿个短袖。。。那个有多囧自己想吧。

不过这雨也就一阵吧,十几分钟之后,乌云被大风吹走,太阳出来了。赶紧把衣服晒干。。。

雨过天晴的天格外的蓝,云格外的漂亮。而且在这个海拔,云显得离我们特别的近,特别好看。

IMG_1579

IMG_1597

IMG_1655

IMG_1694

等山顶的人都下来了,我的衣服也晒差不多干了,开始下山。

说是下山,其实一点也轻松,翻了至少有5个山头吧。。。

路上的风景那是相当的美,高山草甸,给人一种误以为到了大草原的感觉。

IMG_1671

IMG_1673

IMG_1685

IMG_1686

IMG_1687

下面这玩意据说叫大脑袋花,挺好看的,山上也很多。

IMG_1720

IMG_1721

在山脊上走了好久,具体多久忘了,反正很久,而且由于要赶919末班车,所以走的速度一直很快。。。

好不容易看见公路的一角,顿时感觉希望来了。

IMG_1723

但是没想到的是,公路和我们这个山之间是个大山谷,不能直接过去,希望顿时破灭。。。

在走了半个多小时之后,终于下山,到达闫家坪村,海陀自虐结束。

在山上走的时候,收到了来自张家口电信的短信。。。尊敬的电信天翼用户,张家口电信欢迎您。。。我这是步行干出帝都了么?

海陀果然各种虐啊,而且一日的穿越速度各种快。从头到尾一共休息三次,第一次在销魂大坡下面,第二次是午饭时间,第三次是等登顶的同学下来。

不过一分付出就有一分收获,山上的风景果然各种给力啊。

英雄救美是要付出代价的,穿个短袖淋雨是很惨的。。。

发现有下雨的迹象一定要立马穿上雨衣,等雨来了以后,大风会让你没有机会穿雨衣的。

这次没能登顶,多少有点遗憾,下次有机会一定会再来的。

>>>Picasa相册<<<

>>>Live相册<<<

分类: 生活杂记 标签: ,

一路向北去看海——葫芦岛·止锚湾

2011年6月8日 2 条评论

有点怀念毕业旅行在北戴河的日子

有点想念大海

坐在实验室写代码写久了,不免有些烦躁,想出去玩,想去折腾,想去散心。

看到论坛海天游踪版有人组织端午去海边的活动,二话不说立马报名。

5号早上6:30集合出发,卧了个去,100多号人,两辆大巴。

遇到了很多熟人龙仔,肖导,春哥,小水,solo,各种。。。当然,有了这帮家伙,这段旅行也变的更加多姿多彩。

大巴在京哈高速上狂飙了差不多5个小时,终于到达了目的地,辽宁葫芦岛市杨家屯村。

吃过午饭,立马奔向大海。作为一个内陆省份的人,很少有机会能看到大海,这次也就是第三次吧。喜欢大海的广阔,喜欢大海的包容。我觉得什么也不做,就坐在沙滩上,吹着海风,傻傻的看着大海,就是一种享受。亦或是清晨和傍晚,散步在沙滩上,听着大海的波涛声,整个人都是放松的,特别舒服。

不会游泳,这次去又尝试了,还是学不会,喝了几大口海水,╮(╯_╰)╭

在沙滩上骑了会自行车,还是公路车,累死。

晚上开始三国杀,接连几把都是内奸,然后还都是黄月英,然后每次都摸不到锦囊,每次都被乐不思蜀,酱油无极限啊。。。被封了个酱油帝的称号。。。然后还放了把传说中的孔明灯,嗯。

第二天打算起来看日出的。不过第二天四点钟爬起来跑到海边,却发现昨晚的晴空万里,满天星光已经变成阴天多云。在海边一直等到5点钟,什么都没有看见。不过,开到了日出前的大海,除了波浪的声音,没有任何其他声响,世间的一切喧嚣与嘈杂都消失了,特别的安静,特别的爽。以至于我在海边直接呆住了。

吃过早饭,继续去海边,围观大家挖小螃蟹。不过好像没什么战果啊,挖了无数个洞,也没见着挖到的。看到了很多海星,而且看到了活的,会动的,哈哈。

午饭过后撤退,继续五个小时的车。路上在唐山的时候堵了一段,我还以为这堵车从北京堵到唐山了,吓死。后来发现是前面有6个车追尾了。。。

由于这次去的时候,禁渔期刚刚开始,所以海鲜就比较少了,不过对于一个一年也见不着几次海鲜的人来说,已然吃到不想动手了。

nEO_IMG_DSCF8595

nEO_IMG_DSCF8597

nEO_IMG_DSCF8609

nEO_IMG_DSCF8628

nEO_IMG_DSCF8636

nEO_IMG_DSCF8642

nEO_IMG_DSCF8677

nEO_IMG_DSCF8679

nEO_IMG_DSCF8686

nEO_IMG_DSCF8691

nEO_IMG_IMG_8704

nEO_IMG_2011-06-06_10-54-09_539

nEO_IMG_IMG_8778

>>>Picasa相册<<<

>>>Live相册<<<

分类: 生活杂记 标签: ,

Lost:有道运维开发实习生二面

2011年6月1日 评论已被关闭

本来以为一面会挂的,结果前几天意外的接到了2面的通知,真是意外的惊喜。

今天下午6点面试,话说,私企加班还真是家常便饭啊,居然这个点面试。

自行车有点毛病,放那修,结果5:30才修好,于是晚饭都没吃,一路狂飙,20分钟杀到五道口。。。

换了一个面试官。

首先让自我介绍了一下,还是介绍了一下简历上的项目啊神马的。

等他看完简历,对简历上的东西提了几个问题,都是关于项目细节的,不过这次没有具体问到为什么这么实现之类的问题。

简历上的东西问完,问我上次面试给我出啥题了,告诉他之后。他给出了个题,n个人围好一圈,循环报数,每次报到k的人出列,问最后剩下的那个人序号是啥。

我开始以为这是个算法题,可能有神马规律可循,然后就在那找数学规律。后来他看我愁眉苦脸的,说是让我写个程序解,不是数学题。然后我就明白了,搞了个while循环,然后就搞定了。我写的程序里弄了个数组来存每次出列的人的编号,后来面试官提醒这样内存开销比较大,其实弄个n个bit的内存单元就行了,把出列的那个bit标1。我晕,这么节省。。。真是寸土寸金啊。

然后又出了个问题,就是给出x轴上的n个线段,求出重复率最高的那部分,以及重复的次数,面试官说这个题比较复杂,时间不够,说下思路就行了。我想了一下,说:“我先给个比较简单,比较笨的办法吧”。其实就是找到所有线段起点的最小值和终点的最大值,然后对期间的每个单位长度设置一个计数器。这样肯定能求出来,不够这绝对是个笨办法。面试官说可以,你想想还有什么其他办法。然后我又开始想,想不出来,只说了一个,先把所有线段排个序,面试官说对的,然后呢?然后我就想不出来了。。。

最后还问了一下实习的时间,我说实验室从暑假开始放3个月时间,他说了解了,说实验室还是管的比较严的吧?我点头。然后问了还问如果做一些基于web的比较前端的维护项目,有没有兴趣?我说,web前端也做过一些,也有些经验,但是还是希望做的东西比较接近核心技术,做一些核心一些的东西。然后居然还问我几点睡觉。。。还问了一下为什么喜欢爬山。。。

最后他问我有什么问题,我问了下暑假实习现在出来面试是不是有些早。面试官说确实早了些,不过他们这个部门现在具体实习生的职位还没有定,也可能没这么快定下来,所以入职肯定没不会很早的。然后我还问了下具体用的语言那些多点,说大部分都是java,然后就是各种脚本。

然后,面试就结束了,还是一周左右给结果吧。

然后就溜达回来了,去了新食堂,想再吃顿富二代晚饭,结果都没东西了,于是就吃了一个牛肉饼和一个鸡腿完事。。。

唉,boss表示实验室要等到七月底才给出去实习,现在出去面了,如果人家要了又去不了,但是如果后面去找,机会又会越来越少。。。矛盾啊。。。

╮(╯_╰)╭

暂时就不纠结了,项目来了个急任务,得赶紧攻关。

然后端午节出去好好玩玩,看看大海~~

然后关键时刻,跑数据库的机子还挂掉了。。。在自己机子上装一个算了。

分类: 鄙视记录 标签:

Lost:人民搜索研发实习生笔试

2011年5月28日 1 条评论

这个实习其实一直到截止日期的前一天我才投的简历,因为看了他的职位要求,各种搜索的算法,和我做过的项目一点关系没有,差个十万八千里,投了过的概率也微乎其微。但是后来想着不如去试试,见识一下传说中的搜索国家队的笔试题是个神马情况,然后就投了。

然后,我写着各种Twitter的简历居然没有被过滤系统过滤掉,收到了笔试通知,还是比较惊讶的。

笔试地点在CBD国际环球金融中心,一个IT公司,居然开在CBD。。。

到了地方以后,才发现还有更惊讶的。

笔试考场居然直接放在办公区,一个巨大的办公区,工位全是新的、空的,还两层。。。

国家队果然霸气十足。

考生每人发了瓶矿泉水。

2011-05-28_09-35-43_306

考试两个小时,考题分两个部分。第一部分不定项选择题,考的都是C/C++以及操作系统的基础知识,考的很细,也有不少陷阱。包括递归的算法复杂度计算,Linux底层的支持,进程通信的知识,C/C++的各种细节。第二部分是算法题,4个大题,从易到难,最后直接上动态规划了,然后我就不知道怎么动手。。。囧了。

题答的不好,特别是后面的算法,只有一个自己认为肯定是对的,而且效率还可以。还有一个结果应该对了,但是时间复杂度估计得坑爹。

估计就是酱油了。

要大力加大算法的练习啊,算法真的很重要,但是也很讨厌。

考完和其他同学闲聊,大家表示这考题出的很有水平。用张某人一句话,乒乓球打的不错,题也出的不错。

由于考试时都签了考题保密协议,所以这里具体考试内容就不写了,另开一加密日志写好了,反正我也写不出个所以然,因为本来就不会。

分类: 鄙视记录 标签:

Lost:有道运维开发面试

2011年5月27日 评论已被关闭

上周找同学内推的有道运维开发的实习,然后前几天收到面试通知,今天下午四点面试。

怕路上堵车,于是骑自行车去的,3:50到了创业大厦。找到前台,说明是来面试的。还没到点,让再边上一个屋子等着,里面已经有两个同学在等了。

坐那等着,顺便小聊了一会,那俩面的都是研发岗位,有一个是北交的,另一个还没来得及问,他就进去面试了。

然后,一直等,等他俩都进去面试了,还没到我,囧。然后来了一位美女,搭讪后发现居然也是北邮的,是网研交换中心的,面的是词典部门,上午刚面完广移。

都5点了,还木有轮到,于是跑前台在去问问,然后前台发现好像忘记和里面联系了,囧死。

再等了一会,面试官出现,带到一个会议室面试,1v1面试。

面试官翻了一下简历,让介绍一下简历上的项目,然后balabala开始介绍。

说完一个,问在项目中做了那些事,说明是项目负责人,完成项目的大部分工作。然后问为什么要这么设计,有说了一堆。

然后第二个,DM642那玩意。这个东西说实话,不太懂。说明只负责了其中的一部分工作,做了流量控制和丢包处理这一块。然后问了丢包检测怎么做,说了在每个包加序号,包长,偏移量,然后这个系统是单向的,没有反馈,错误的包直接就丢了。然后问了采集,编码,发送三个进程之间的关系,为什么这么做。这个也答的迷迷糊糊的。。。就说了一下消息队列,用这个队列来缓冲编码和发送任务的时间差。

第三个项目,javatweet那个,没问啥。

然后问我,top里头load那三个数字的具体含义。这玩意天天看,但是还真没去关注具体的含义,囧死。说是系统负载,平时只关注它会不会超过1,超过1就是过载了,多核的cpu可以允许超过1小于cpu数目。面试官不太满意,我也知道这答案肯定不靠谱。

下面是回来查到的正确答案。

系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:

  • 它没有在等待I/O操作的结果
  • 它没有主动进入等待状态(也就是没有调用’wait’)
  • 没有被停止(例如:等待终止)

load 后面分别是1分钟、5分钟、15分钟的负载情况。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。

然后,面试官又看了一眼简历,说,你写个程序吧,把一个字符串转换为浮点数。

想了一下,开始在纸上写的是先用strch函数确定小数点的位置,然后分别对付整数部分和小数部分。写完发现这办法不好,然后又写了个用while循环,直接处理,遇到小数点跳出循环然后处理小数部分(小数部分用了堆栈)。写完发现,是不是可以直接根据float数据类型在内存中的结构有跟好的处理方式,但是死活想不起float在内存中什么结构了,唉,真是准备不足啊。只好把前面的程序交了,然后说了一下后面的想法。

IEEE 双精度格式为8字节64位,由三个字段组成:52 位小数 f ; 11 位偏置指数 e ;以及 1 位符号 s。这些字段连续存储在两个 32 位字中。

在VC里面,double型数据占据了8个字节,共64位。

最高位是符号位,0表示正,1表示负。

接下来的11位表示指数,用移码表示,关系为:11位数组成的值(无符号)-1023=指数,如上所示5.0的指数部分是2,11位数组成的值应该是1025,即100 0000 0001
余下的52位是小数位,其中1.0……中的1是默认的,没有占据位数。5.0的小数部位是1.01,则它的小数位在内存中应该表示成0100 0000 0000 ……0000(共52位)
所以+5.0在内存中存储的形式应该是0100 0000 0001 0100 0000 …… 0000即0×40140000 00000000。

float型和double型基本一样,只是它用8位表示指数,用23位表示小数,另外它的移码表示不是相差1023(2的10次方-1),而是127(2的7次方-1)。

下面是C代码库中的atof函数源码,看了一下,和我写的程序思想一致,但是没有用堆栈,确实更方便,我当时为啥没有想到呢。而后面那个采用内存结构的方法应该是行不通的。而且这个函数确实考虑特别周到,考虑到了符号和E的问题。

#if HAVE_CONFIG_H
# include <config.h>
#endif

#include <errno.h>
#ifndef errno
extern int errno;
#endif

#include <ctype.h>

#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif

#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
#define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
#define TOLOWER(c) (IN_CTYPE_DOMAIN (c) ? tolower(c) : (c))

#include <math.h>

#include <float.h>
#include <stdlib.h>
#include <string.h>

/* Convert NPTR to a double.  If ENDPTR is not NULL, a pointer to the
   character after the last one used in the number is put in *ENDPTR.  */
double
strtod (const char *nptr, char **endptr)
{
  register const char *s;
  short int sign;

  /* The number so far.  */
  double num;

  int got_dot;                  /* Found a decimal point.  */
  int got_digit;                /* Seen any digits.  */

  /* The exponent of the number.  */
  long int exponent;

  if (nptr == NULL) /*如果为空串,则结束转换*/
    {
      errno = EINVAL;
      goto noconv; /*转向处理无法转换的代码*/
    }

  s = nptr;

  /* Eat whitespace.  */
  while (ISSPACE (*s))
    ++s;

  /* Get the sign.  */
  sign = *s == ‘-’ ? -1 : 1;
  if (*s == ‘-’ || *s == ‘+’)
    ++s;

  num = 0.0;
  got_dot = 0;
  got_digit = 0;
  exponent = 0;
  for (;; ++s)
    {
      if (ISDIGIT (*s))
        {
          got_digit = 1;

          /* Make sure that multiplication by 10 will not overflow.  */
          if (num > DBL_MAX * 0.1)
            /* The value of the digit doesn’t matter, since we have already
               gotten as many digits as can be represented in a `double’.
               This doesn’t necessarily mean the result will overflow.
               The exponent may reduce it to within range.

               We just need to record that there was another
               digit so that we can multiply by 10 later.  */
            ++exponent;
          else
            num = (num * 10.0) + (*s – ’0′);

          /* Keep track of the number of digits after the decimal point.
             If we just divided by 10 here, we would lose precision.  */
          if (got_dot)
            –exponent;
        }
      else if (!got_dot && *s == ‘.’)
        /* Record that we have found the decimal point.  */
        got_dot = 1;
      else
        /* Any other character terminates the number.  */
        break;
    }

  if (!got_digit)
    goto noconv;

  if (TOLOWER (*s) == ‘e’)
    {
      /* Get the exponent specified after the `e’ or `E’.  */
      int save = errno;
      char *end;
      long int exp;

      errno = 0;
      ++s;
      exp = strtol (s, &end, 10);
      if (errno == ERANGE)
        {
          /* The exponent overflowed a `long int’.  It is probably a safe
             assumption that an exponent that cannot be represented by
             a `long int’ exceeds the limits of a `double’.  */
          if (endptr != NULL)
            *endptr = end;
          if (exp < 0)
            goto underflow;
          else
            goto overflow;
        }
      else if (end == s)
        /* There was no exponent.  Reset END to point to
           the ‘e’ or ‘E’, so *ENDPTR will be set there.  */
        end = (char *) s – 1;
      errno = save;
      s = end;
      exponent += exp;
    }

  if (endptr != NULL)
    *endptr = (char *) s;

  if (num == 0.0)
    return 0.0;

  /* Multiply NUM by 10 to the EXPONENT power,
     checking for overflow and underflow.  */

  if (exponent < 0)
    {
      if (num < DBL_MIN * pow (10.0, (double) -exponent))
        goto underflow;
    }
  else if (exponent > 0)
    {
      if (num > DBL_MAX * pow (10.0, (double) -exponent))
        goto overflow;
    }

  num *= pow (10.0, (double) exponent);

  return num * sign;

overflow:
  /* Return an overflow error.  */
  errno = ERANGE;
  return HUGE_VAL * sign;

underflow:
  /* Return an underflow error.  */
  if (endptr != NULL)
    *endptr = (char *) nptr;
  errno = ERANGE;
  return 0.0;

noconv:
  /* There was no number.  */
  if (endptr != NULL)
    *endptr = (char *) nptr;
  return 0.0;
}

然后问我会不会perl和python,回答会基本的python,不会perl。然后就没有问问题了。

最后问了一个问题,就是如果你写了一个服务程序,那么你怎么通过另一个程序来监控这个服务。首先回答的是服务程序产生日志,然后另个一程序分析日志。面试官表示同意,然后问还有什么方法。我说可以通过进程间定时发送状态消息的方法,面试官继续问还有什么方法。我又说可以通过监视服务器所在进程的进程号。然后问题就来了,问我一个进程起来后怎么获得自己的进程号。我就记得有一个系统调用的干这事的,具体忘了,没答上来。。。。回来查了一下,应该就是getpid()。

然后问我有什么问题,问了一下这个工作具体是偏向运维还是开发。回答,基本不负责维护,主要是开发,开发运维用的工具。然后问了一下时间要求,说是一周3天。

最后,面试官告诉我一周内会有结果,撤!

大概就是这样,处女面,没有经验,表现的很差。。。估计要杯具。

去之前,以为要问算法,要问计算机网络,要问脚本,于是特别看了很多算法,计网,python东西。结果一个算法都没有问,计网的东西也没有问,囧死。看样子还是对职位要求不清楚。。。

总算处女面是有了,以后加油吧,对职位的要求还是要弄清楚,不然杯具会更多的。

分类: 鄙视记录 标签: