有需要c 程序员笔试题题的么?

腾讯程序员面试题及答案2016
腾讯程序员面试题及答案2016
&&&&来源:面试笔试
  1、腾讯2016年校园招聘研发工程师笔试题及答案1、const的含义及实现机制const的含义及实现机制,比如:const int i,是怎么做到i只可读的?  const用来说明所定义的变量是只读的。  这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。  2、买200返100优惠券,实际上折扣是多少?  到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?  由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。  假设开始时花了x元,那么可以买到 x + x/2 + x/4 + ...的东西。所以实际上折扣是50%.(当然,大部分时候很难一直兑换下去,所以50%是折扣的上限) 如果使用优惠券买东西不能获得新的优惠券,那么总过花去了200元,可以买到200+100元的商品,所以实际折扣为 200/300 = 67%.  3、tcp三次握手的过程,accept发生在三次握手哪个阶段?  accept发生在三次握手之后。  第一次握手:客户端发送syn包(syn=j)到服务器。  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。  三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。  4、用UDP协议通讯时怎样得知目标机是否获得了数据包用UDP协议通讯时怎样得知目标机是否获得了数据包?  可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。  发送方在发送数据时将此ID和发送时间记录在本地。  接收方在收到数据后将ID再发给发送方作为回应。  发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。  5、统计论坛在线人数分布 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。  一天总共有 3600*24 = 86400秒。  定义一个长度为86400的整数数组int delta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。  然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的整数值减1。  这样处理一遍后数组中存储了每秒中的人数变化情况。  定义另外一个长度为86400的整数数组int online_num[86400],每个整数对应这一秒的论坛在线人数。  假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0] = delta[0]。第n+1秒的人数online_num[n] = online_num[n-1] + delta[n]。  这样我们就获得了一天中任意时间的在线人数。  6、从10G个数中找到中数 在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。  不妨假设10G个整数是64bit的。  2G内存可以存放256M个64bit整数。  我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。  如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。如果这个范围内出现的整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。  7、两个整数集合A和B,求其交集两个整数集合A和B,求其交集。  1. 读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。  2. 读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。  通过更改map中的值,避免了将同样的值输出两次。  8、找出1到10w中没有出现的两个数字 有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?  申请10w个bit的空间,每个bit代表一个数字是否出现过。  开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。  然后依次读入已经打乱循序的数字,并将对应的bit设为1。  当处理完所有数字后,根据为0的bit得出没有出现的数字。  首先计算1到10w的和,平方和。  然后计算给定数字的和,平方和。  两次的到的数字相减,可以得到这两个数字的和,平方和。  所以我们有  x + y = n  x^2 + y^2 = m  解方程可以得到x和y的值。  9、需要多少只小白鼠才能在24小时内找到毒药有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?  最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。  既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?  首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?  由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?  第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此类推。  回到此题,总过1000瓶水,所以需要最少10只小白鼠。  10、根据上排的数填写下排的数,并满足要求。  根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。  11、判断数字是否出现在40亿个数中?  给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?  答案:  unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。
读了《腾讯程序员面试题及答案2016》的人还读了:
与腾讯程序员面试题及答案2016相关的文章
相关内容推荐:关于腾讯公司程序员的面试题及答案
关于腾讯公司程序员的面试题及答案
学习啦【面试题】 编辑:朝莹
  不管什么行业,招人都有相同的测评因素,目的都是在最短时间内了解最多的个人信息。下面是学习啦小编为你整理的关于腾讯公司程序员的题及答案,希望你喜欢。
  关于腾讯公司程序员的及答案
  1、腾讯:const的含义及实现机制
  const的含义及实现机制,比如:const int i,是怎么做到i只可读的?
  const用来说明所定义的变量是只读的。
  这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。
  2、腾讯笔试题:买200返100优惠券,实际上折扣是多少?
  到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?
  由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。
  假设开始时花了x元,那么可以买到 x + x/2 + x/4 + ...的东西。所以实际上折扣是50%.(当然,大部分时候很难一直兑换下去,所以50%是折扣的上限)
  如果使用优惠券买东西不能获得新的优惠券,那么总过花去了200元,可以买到200+100元的商品,所以实际折扣为 200/300 = 67%.
  3、腾讯笔试题:tcp三次握手的过程,accept发生在三次握手哪个阶段?
  accept发生在三次握手之后。
  第一次握手:客户端发送syn包(syn=j)到服务器。
  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。
  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。
  三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept获得此连接。
  4、腾讯笔试题:用UDP协议通讯时怎样得知目标机是否获得了数据包
  用UDP协议通讯时怎样得知目标机是否获得了数据包?
  可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。
  发送方在发送数据时将此ID和发送时间记录在本地。
  接收方在收到数据后将ID再发给发送方作为回应。
  发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。
  5、腾讯笔试题:统计论坛在线人数分布
  求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
  一天总共有 3600*24 = 86400秒。
  定义一个长度为86400的整数数组int delta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。
  然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的整数值减1。
  这样处理一遍后数组中存储了每秒中的人数变化情况。
  定义另外一个长度为86400的整数数组int online_num[86400],每个整数对应这一秒的论坛在线人数。
  假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0] = delta[0]。第n+1秒的人数online_num[n] = online_num[n-1] + delta[n]。
  这样我们就获得了一天中任意时间的在线人数。
  6、腾讯笔试题:从10G个数中找到中数 在一个文件中有 10G 个整数,乱序排列,要求找出中位数。限制为 2G。
  不妨假设10G个整数是64bit的。
  2G内存可以存放256M个64bit整数。
  我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。
  如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。如果这个范围内出现的整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。
  7、腾讯笔试题:两个整数集合A和B,求其交集
  两个整数集合A和B,求其交集。
  1. 读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。
  2. 读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。
  通过更改map中的值,避免了将同样的值输出两次。
  8、腾讯笔试题:找出1到10w中没有出现的两个数字 有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?
  申请10w个bit的空间,每个bit代表一个数字是否出现过。
  开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。
  然后依次读入已经打乱循序的数字,并将对应的bit设为1。
  当处理完所有数字后,根据为0的bit得出没有出现的数字。
  首先计算1到10w的和,平方和。
  然后计算给定数字的和,平方和。
  两次的到的数字相减,可以得到这两个数字的和,平方和。
  所以我们有
  x + y = n
  x^2 + y^2 = m
  解方程可以得到x和y的值。
  9、腾讯笔试题:需要多少只小白鼠才能在24小时内找到毒药
  有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?
  最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。
  既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?
  首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?
  由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?
  第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此类推。
  回到此题,总过1000瓶水,所以需要最少10只小白鼠。
  10、腾讯笔试题:根据上排的数填写下排的数,并满足要求。
  根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。
  11、腾讯笔试题:判断数字是否出现在40亿个数中?
  给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?
  答案:
  unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。
  看过&关于腾讯公司程序员的面试题及答案&的人还看了:
本文已影响 人
[关于腾讯公司程序员的面试题及答案]相关的文章
看过本文的人还看了
2826人看了觉得好
708人看了觉得好
24076人看了觉得好
【面试题】图文推荐身为程序员你需要知道的网站(包含书籍,面试题,架构...) - 推酷
身为程序员你需要知道的网站(包含书籍,面试题,架构...)
高级Java程序员值得拥有的10本书
译文出处:&
原文出处:
Java是时下最流行的编程语言之一。市面上也出现了适合初学者的大量书籍。但是对于那些在Java编程上淫浸多时的开发人员而言,这些书的内容未免显得过于简单和冗余了。那些适合初学者的书籍看着真想打瞌睡,有木有。想找高级点的Java书籍吧,又不知道哪些适合自己。
别急,雪中送炭的来了:下面我将分享的书单绝对值得拥有。ps,我也尽力避免列出为特定软件或框架或认证的Java书,因为我觉得那不是纯Java书。
1.《Java in a Nutshell》(Java技术手册)
与其说是必读书籍,还不说是参考文献。
2.《The elements of Java style》(Java
目标读者就是Java程序员。通过提出一系列的Java从业规则,以及一些标准、惯例和准则,来说明如何有助于编写可靠又易于理解和维护的Java代码。
》(通用程序设计)
这本书真的只适合那些深入了解Java的开发人员。它汇集了78种不可或缺的程序员经验法则:为你每天在工作中都会遇到的编程挑战,提出了实践的最佳解决方案。
4.《The Java language specification》(Java编程规范)
作者为Java的发明者,这本书不仅提供了完整和准确的语言覆盖范围,还包含了实际编译行为时的正式语言规则。虽然阅读这本书不能让你学到什么技能,但是如果你想在Java VM更进一步的话,那就非读不可。
5.《Design patterns: elements of reusable object-oriented software》(
:可复用面向对象软件的元素)
其实,这本书中的例子是用C ++和Smalltalk写的,是不是很奇怪为什么我还要推荐它呢?如果你想成长为一个开发人员,那么你就必须知道
,这样才能充分利用他人最佳的实践经验,以及还可以向那些面临过相同问题的开发人员学习。当然其他类似的书籍还有很多,但它们都只能当做一些辅助性的学习。
6.《The Pragmatic Programmer: From Journeyman to Master》(程序员的修炼:从中级到大师)
此书并不只适合于Java开发人员。 “这本书之所以值得推荐,其原因是它大大保持了编程过程的新鲜度,还有助于我们从前人那里汲取力量、不断地自我成长。”
》(企业应用架构模式)
学会了设计模式之后该如何应用到企业框架中呢?这本书介绍了很多常见的企业设计模式。
8.《Refactoring: Improving the Design of Existing Code》(
:改善现有代码设计)
如果你已经在编程行业淫浸过几年了,那么你一定得读一读这本书。重构可以使得代码可读性更强,也更容易维护。
9.《OSGi in Action: Creating Modular Applications in Java》(OSGi实战:用Java创建模块化应用)
无论如何,了解一下面向服务的编程是怎么回事,总归不是坏事。这本书的前几章就给出了非常不错的入门介绍和具体的例子。
10.《Clean Code: A Handbook of Agile Software Craftsmanship》(
最后但并非最不重要的,时不时地检查编码风格总是对的。 开发人员90%的精力是花在维护上的,所以干净的代码真的非常重要。
作为程序员,你爱上读书了吗?
《5本最佳的java面向对象理论和设计模式的书籍》
5本最佳的Java面向对象理论和设计模式的书籍
。欢迎加入
。转载请见文末要求。
对于Java程序员来说,掌握面向对象的设计理论和一些
是必备技能。就像我在另一篇博客
中提到的,不学理论就开始编程,就类似于学习一种语言而不学习字母表。市面上有很多有关面向对象理论的、设计模式的和最佳实践的,但只有很少的书真正值得我们阅读。这里涉及两件事情,一个是面向对象理论,一个是设计模式。前者是基础,后者是在基于基础的最佳实践。我们应该先学习面向对象理论,再学习设计模式,来看看这些理论是如何帮助我们解决日常碰到的问题的。我为大家选择了以下的五本书,帮助大家学习面向对象理论和设计模式。这些书从浅到深。J2EE的设计模式和核心Java设计模式有一点点区别,但对Java程序员来说,核心的J2EE设计书籍也是学习的一个不错的选择。
有关Java设计模式的最好的五本书
以下是我学习面向对象和设计模式的书籍清单。设计模式是前人在解决某些相似问题时总结出的最佳实践。下面的五本书也适用于其他的面向对象语言。如果你知道其他优秀的设计模式的书籍,请推荐给我们。
1.&Head First Design Patterns&by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson
这是我读到的第一本Head First系列的书,也是第一本面向对象的书,在此之前,我不知道
,我也不知道
。在最初的几年开发中,我往往根据需求来编写代码,然而在更多的改动,更多的测试之后,往往引入更多的bug。多亏了我的好学精神,我了发现
。读了第一节之后,我感到非常的愉悦。可以说这本书很基础,但是其实学习基础比学习高级的东西更难。这本书真正做到了教会我们基础。它是每一个Java程序员必读的设计模式书籍,包括经验丰富的资深程序员。我也建议学习设计模式就应该从这本书开始。它不仅用清晰的方法解释了概念,还给出了很多图表,练习,测试以及活生生的例子来帮助你思考和吸收。我是head first系列书籍的超级粉丝,就是因为
。Head First Design Pattern中有很多很棒的例子,任何想要学习面向对象基础的人(譬如接口,封装,多态,抽象等)都应该读读这本书。其中装饰模式(Decorator design pattern)和观察者模式(Observer design pattern)是非常好的两个章节。
2. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
,它也是很多其他的面向对象设计模式书籍所借鉴的对象。如果关于设计模式的必读清单上没有这本书,那便是不完整的。出版了接近20年之后,这本书的主题依然紧贴面向对象和设计模式理论。这本书围绕着设计一个文档编辑器的例子,分别解释了多种设计模式,如Creational patterns, Structural and Behavioral patterns。个人浅见,这本书是最好的设计模式书籍。对于每个Java程序员来说,这本书以及
都是必读书籍。你可以从亚马逊上购买这本书,有纸质版的,也有多媒体CD。
3. Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) by Alan Shalloway, James R. Trott
就像多线程和并发一样,设计模式也不容易理解。其中最困难的部分就是理解之后应用到真实的例子中去。这就是为什么要多读几本Java的设计模式的书,非常值得这么做。因为对于某些程序员来说,某个作者的写作风格比其他作者更易读。但是Joshua Bloch是个例外,他的写作风格被部分程序员都适用。《
》这本书是学习面相对象设计模式的另一本书。虽然它也没有什么新内容,也介绍了面向对象理论,UML以及装饰者模式、工厂模式、观察者模式等设计模式。但是它对于很多初学者来说更通俗易懂。这本书里的例子也非常棒。
4. Software Architecture Design Patterns in Java by Partha Kuchana
这是这个主题的又一本书,它不仅涵盖了所有的面向对象基础(类,对象,继承,多态,抽象,封装),也包括了一些实用但不明显的细节,譬如私有方法,getter和setter方法,不可变对象,接口和监视器(monitor)。这本书还有一些更深入的面向对象的知识,如创建模式(Creational patterns), 集合模式(Collection patterns), 结构模式(Structural patterns), 行为模式(Behavioral patterns),和并发(Concurrency patterns)。对于工厂模式和单例模式的讲述也很有趣。我喜欢这本书的另一个原因在于,有很多实用的问题和UML图表,这样不仅能更深入的理解问题,也可以在实际应用方面有所帮助,实用也正是学习设计模式最重要的作用。最后这本书通过为网络主机公司设计软件的实例学习,来让我们将设计模式应用在真实的场景中。简而言之,《
》可以帮助你全面学习设计模式。
5. Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition) by Deepak Alur, Dan Malks, and John Crupi
J2EE平台是Java程序语言的最流行的开发方法,它主要专注于解决网络和企业的问题,有一套自己的问题和需求。核心的J2EE模式描述了一些最有用的J2EE世界的设计模式,譬如拦截过滤器(Intercepting Filters),前端控制器(Front Controller),MVC模式,数据访问对象模式(Data Access Object, DAO Pattern),视图协助器模式(View Helper Pattern)或视图解析器(View Resolver Pattern),服务定位模式(Service Locator Pattern)等。这本书将设计模式按照功能分类,分为表示层的设计模式、逻辑层的设计模式等。对于每一个需要编写网络应用和企业应用的Java和J2EE程序员来说,这都是一本必读书籍。虽然现代的框架如Spring已经确保你在框架的层次接触到这些J2EE设计模式,譬如Spring MVC确保了MVC的使用,它也同时使用了前端控制器(DipatcherServlet)和视图解析器(ViewResolver)。同时Spring框架还在容器层保证使用依赖注入和IOC。总之,不管你使用Spring MVC, Structs还是其他web框架,学习J2EE模式不仅能帮助你理解前人写的代码,也能让你写出更容易维护的代码。
除了以上的五本书,你可以看看Joshua Bloch的
,你能知道更多面相对象的理论以及如何应用在Java编程中。
是Java程序员必读书籍,因为它解释了很多Java库如何设计的原理。
原文链接:&
译文链接:&
[& 转载请保留原文出处、译者和译文链接。 ]
关于作者:
推荐地址:/cat/books
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致useway 的BLOG
用户名:useway
文章数:126
评论数:1226
访问量:574708
注册日期:
阅读量:5863
阅读量:12276
阅读量:379042
阅读量:1071537
51CTO推荐博文
故事(3):两次弃用的变态笔试题
&&& 电话的沟通虽然不可能对一个程序员作全面的了解,但基本上能有一个比较概括的判断,这也许就是所谓的第一印象吧!&&& 通过电话的初步沟通我对来面试的程序员已经有了初步的印象,但说句实话,还是印象不怎么深。因为,毕竟仅仅是电话筛选而已,并没有更深入的了解与接触。
&&& 在最开始组建这个部门的时候,我基本上不用笔试,而是直接与应聘者面试。因为,希望招聘到骨干人员,希望能够直接面对面的沟通更加方便。但是,当招聘初级程序员的时候我开始也是这样作的,但发现这样作确实非常没有效率。原因就是,用一句不是很恰当的形容词“滥竽充数”的应聘者还是比较多的,即使是经过了电话沟通的应聘者也不例外,仍然是很多东西掌握的都不扎实。
&&& 后来,我还是选择了采用其他公司惯用的一个方法――“笔试”。
&&& 我开始的时候挺懒的,懒得自己编笔试题,就直接从网上搜一个,也没怎么看直接给程序员去笔试了,我大概开始搜到的那个题是这样的:
1、&& 面向对象的特征有哪些方面2、&& String是最基本的数据类型吗?& 3、&& 运行时异常与一般异常有何异同?4、&& 说出ArrayList,Vector, LinkedList的存储性能和特性......9、&&&& Collection 和 Collections的区别。10、& HashMap和Hashtable的区别。11、& final, finally, finalize的区别。12、& sleep() 和 wait() 有什么区别? 13、& 同步和异步有何异同,在什么情况下分别使用他们?举例说明。14、& abstract class和interface有什么区别?......27、& 垃圾回收的优点和原理。并考虑2种回收机制28、& 请说出你所知道的线程同步的方法。29、& 你所知道的集合类都有哪些?主要方法?30、& 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?31、& JSP的内置对象及方法......36、& XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
&&& 在刚刚开始笔试的时候,我跟前台说帮我判一下卷子,凡是内容非常少的或者很多都不对的,就直接让他们走就行了。&&& 但当我等了半天,给前台打电话问问卷子答得如何时,得到的答案是,他们全都走了,我问何故?&&& 前台MM一脸的委屈,你过来看看就知道了!
&&& 呵呵,使我万万没想到的是,基本上很多的程序员都是文不对题甚至交白卷。
&&& 我比较疑惑,明明在电话沟通的时候说是有项目开发经验啊,怎么连笔试都过不了?显然我这样的某些做法是错误的!&&& 说句公道话,我发现这个笔试题确实有些变态,也不是谁总结的,有些不常用的题目的具体答案我自己都觉得有些难,更何况这些初级程序员了,显然这个筛子太密了,把应聘者都筛掉了,不行!立刻总结:
&&& 第一点,辛辛苦苦打电话约来的面试者,连面都没见到就全让前台给拒了,面试者需要我自己来亲自见面,不管是否过了笔试我都见一下。&&& 第二点,如果每一个应聘者都答不出来,说明这个笔试题有点难了,需要调整笔试题。
于是,我调整了我的笔试题,更加贴近了这个职位,我的笔试题如下:
1、请写一段html,完成下列表格的样子。注意:是单线边框。
2、字符串”,以@字符拆分 返回数组。
3、字符串String s=”SDsBEaA”,要求最后生成s=”AaBDESs”.
4、有3张表,Student表、SC表和Course表 Student表:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)和系名(Sdept) Course表:课程号(Cno)、课程名(Cname)和学分(Ccredit); SC表:学号(Sno)、课程号(Cno)和成绩(Grade) 请使用SQL语句查询学生姓名及其课程总学分 (注:如果课程不及格,那么此课程学分为0)
5、请说出这个程序的目的是什么?返回结果是什么?public Station(URL urla){try{&&&& String a="",b="";&&&& InputStream ins = urla.openStream();&&&& BufferedReader bReader = new BufferedReader(new InputStreamReader(ins));&&&& String info = bReader.readLine();&&&& int i=1;&&&& info=bReader.readLine();&& &&& while(info!=null){&&&&&&&&& a=info.substring(0,info.indexOf("@"));&&&&&&&&& b=info.substring(info.indexOf("@")+1,info.length());
&&&&&&&&& if (i==1){&&&&&&&&&&&& this.X1=Integer.parseInt(a);&&&&&&&&&&&& this.Y1=Integer.parseInt(b);&&&&&&&& }
&&&&&&& &&&&&&&& if (i==2){&&&&&&&&&&&& this.X2=Integer.parseInt(a);&&&&&&&&&&&& this.Y2=Integer.parseInt(b);&&&&&&& }&&&&&&& if (i==3){&&&&&&&&&&&& this.X3=Integer.parseInt(a);&&&&&&&&&&&& this.Y3=Integer.parseInt(b);&&&&&& }&&&&&& if (i==4){&&&&&&&&&&& this.X4=Integer.parseInt(a);&&&&&&&&&&& this.Y4=Integer.parseInt(b);&&&&&& }&&&&&& i++;&&&&&& info=bReader.readLine();&&&&&& }&& }&& catch(MalformedURLException e){&&&&&& System.out.println(e);&& }&&&& catch(IOException e){&&&&& System.out.println(e);&& }}
&&& 这次调整之后,终于不是满篇白卷了,但仍然有很多同学还是好多都不会。&&& 这次调整的题目是非常贴近实际编程的,一道Html题,两道Java编程题,一道SQL语句题,一道读程序理解题,我觉得不难啊!怎么还是有很多同学不会作呢?
&&& 当然,还是有人能答得出来或者说基本上能答得出来,那么基本上能答出来的都进入了面试环节。
&&& 后记(关于那个变态题的后面的故事):
&&& 上面的那个变态笔试题被我扔掉之后,若干日子以后,我不亲自去面试和笔试了,那个变态题被我的一个项目经理得到了,他仍然用这个笔试题去笔试。后来一个偶然的机会我发现原来他还在用这个变态题!
&&& 我非常惊讶的问他:“这个这么变态的题你竟然还在用?他们都会吗?”&&& 答曰:“没问题啊,基本上很多人都答得很正确!”
&&& 我晕!怎么回事?难道他遇到的都是高手?&&& 后来才明白,这个能在网上随时可以搜到的变态题已经早就被这些应聘者烂熟于心了,就是为了应付笔试才去突击背下来的!&&& 于是,由于这个原因,这个变态题被第二次弃用了......
&&& 请看《我是主考官(4):与答白卷的同学聊聊》近期贴出,敬请关注............
&&&&另:为了大家阅读方便,可以直接点击本博客的“我是主考官”栏目,这个系列的文章都在这个栏目下,谢谢!
本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》
23:20:47 01:37:42 10:09:20 10:58:19 10:58:43 19:37:27 21:41:51 22:09:55 14:17:38 15:15:49 16:46:19 10:26:47 23:30:27 23:31:14 03:53:32 &&1&
&&页数 ( 1/2 ) &}

我要回帖

更多关于 程序员逻辑思维笔试题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信