在IBM公司进行面试的时候,首先考察的则是基础知识。那么下面就总结了一些IBM笔试题,以供大家参考。
IBM笔试题:有一座山,山上有座庙,只有一条路可以从山上的庙到山脚,每周一早上8点,有一个聪明的小和尚去山下化缘,周二早上8点从山脚回山上的庙里,小和尚的上下山的速度是任意的,在每个往返中,他总是能在周一和周二的同一钟点到达山路上的同一点。例如,有一次他发现星期一的8点30和星期二的8点30他都到了山路靠山脚的3/4的地方,问这是为什么?
答案一:
可以用画图法来解释:
在一个平面上,x轴代表从8点开始的时间,y轴代表距庙的距离。那么从庙到山脚就是一条从左下到右上的一条曲线,从山脚到庙就是一条从左上到右下的一条曲线。考虑到两条曲线的起始点和终点,两线必定交于一点。
答案二:
还有一种更简单的解释,是让两个人从山顶和山脚同时相向而行,一定有一个时刻相遇,这样就证明了。
IBM笔试题:在一个平面上画1999条直线,最多能将这一平面划分成多少个部分?
没有直线时有一个空间;(1)
1条直线时,这条这些可以将这个空间分成两个;(1+1)
2条直线时,第二条直线可以和第一条直线相交,这样第二条直线可以将两个空间分成四个;(1+1+2)
....
注意到画每条直线时能增加多少个空间,取决于此直线从多少个空间中通过。
而从多少个空间中通过,取决于和多少条直线相交。
例如,如果一条直线和其它5条直线相交,那么最大可以通过6个空间,此直线可以增加6个子空间。
画每条直线时,能相交的直线数为总的已经画过的直线。
所以总的空间数最多为
1+1+2+3+...+1999=1999001
IBM笔试题:不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?
第一根点燃两头,第二根只点一头。
当第一根烧完时,时间过去了30分钟,所以第二根还能烧30分钟。这时点燃第二根的另外一头,第二根香还能烧的时间就是15分钟。
IBM笔试题:有27个人去买矿泉水,商店正好在搞三个空矿泉水瓶可以换一瓶矿泉水的活动,他们至少要买几瓶矿泉水才能每人喝到一瓶矿泉水?
答案一:
如果开始买3瓶,那么可以四个人喝,并且还能剩一个空瓶。
如果开始买9瓶,可以13个人喝,最后还剩一个空瓶。
如果开始买18瓶,那么26个人喝,可以剩下两个空瓶。
如果开始买19瓶,那么27个人喝,最后剩下三个空瓶。所以最少买19瓶。
如果可以向商店先欲借一个空瓶,那么买18瓶,最后一个人喝完再将空瓶还给商店。
那么买18瓶也可以满足要求。
答案二:
x+x/3+x/3^2+...=x/(1-1/3)=27
x=18;
IBM笔试题:c++中引用和指针有什么不同?指针加上什么限制等于引用?
引用不是一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。引用一经确定就不能修改。
指针是一个变量,需要在内存中分配空间,此空间中存储所指对象的地址。由于指针是一个普通变量,所以其值还可以通过重新赋值来改变。
把指针定义为const后,其值就不能改变了,功能和引用类似,但有本质的区别。
IBM笔试题:一普查员问一女人,“你有多少个孩子,他们多少岁?”
女人回答:“我有三个孩子,他们的岁数相乘是36,岁数相加就等于旁边屋的门牌号码。“普查员立刻走到旁边屋,看了一看,回来说:“我还需要多少资料。”女人回答:“我现在很忙,我最大的孩子正在楼上睡觉。”普查员说:”谢谢,我己知道了。”
问题:那三个孩子的岁数是多少。
36=1×2×2×3×3
所有的可能为
1,1,36;sum=38
1,2,18;sum=21
1,3,12;sum=16
1,4,9;sum=14
1,6,6;sum=13
2,2,9;sum=13
2,3,6;sum=11
3,3,4;sum=10
由于普查员知道了年龄和之后还是不能确定每个孩子的年龄,所以可能性为
1,6,6;sum=13
2,2,9;sum=13
由于最大(暗含只有一个最大)的孩子在睡觉,所以只可能是
2,2,9;sum=13
一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。
小猴子可以采用如下策略:
小猴子先搬50根,走到1米处,路上吃掉1根,放下48根后返回起始点,并在返回路上吃剩下的1根。然后将起始点处的50根香蕉搬到1米处,又在路上吃掉1根。这样总共消耗了3根香蕉,将所有香蕉向前搬动了1米。采用类似的策略搬动16米后,总共消耗了48根香蕉,还剩下52根香蕉。
如果继续按照同样的策略向前移动到17米处,则剩下49根香蕉;如果直接在16米处丢掉2根香蕉,搬着50根香蕉向前走,在17米处也是有49根香蕉。所以猴子在17米处最多可以保留49根香蕉。
继续搬到家还有33米,所以最后剩的香蕉数16根。
IBM笔试题:妈妈有2000元,要分给她的2个孩子。由哥哥先提出分钱的方式,如果弟弟同意,那么就这么分。但如果弟弟不同意,妈妈会没收1000元,由弟弟提出剩下1000元的分钱方式,这时如果哥哥同意了,就分掉这剩下的1000元。但如果哥哥也不同意,妈妈会把剩下的1000元也拿走,然后分别只给他们每人100元。
问:如果你是哥哥,你会提出什么样的分钱方式,使你有可能得到最多的钱?(最小单位1元)
此题和海盗分金问题有些相似。(可以在本博客中找到关于海盗分金的问题和解答。)
哥哥提出分配方案时,弟弟是否同意取决于拒绝后是否可以获得更多利益。弟弟分配时,哥哥是否同意也取决于拒绝后是否可以获得更多好处。
所以采取由后向前推导的方法。
如果在两次分配中弟弟和哥哥都不同意,则弟弟和哥哥各获得100元。
弟弟分钱时,为保证哥哥同意,会提出哥哥101元,弟弟899元的分配方法。因为哥哥获得了比拒绝后的更多利益,所以必然会同意。
哥哥分钱时,为保证弟弟同意,会提出哥哥1100元,弟弟900元的分配方法。因为弟弟获得了比拒绝后的更多利益,所以必然会同意。
也就是说,最终哥哥会提出哥哥1100元,弟弟900元的分配方法。
IBM笔试题:有三个酒杯,其中两个大酒杯每个可以装8两酒,一个可以装3两酒。现在两个大酒杯都装满了酒,只用这三个杯子怎么把酒平均的分给4个人喝?
总共16两酒,4个人喝,平均每人喝4两。
假设下面的三个数是8两,8两和4两酒杯中的酒。
880
853
第一个人先喝3两,变成
850
823
第二个人先喝2两,变成
803
830
533
560
263
281
第一个人再喝1两,就刚刚喝了4两,变成
280
082
073
370
343
640
613
第三个人先喝1两,变成
603
801
第四个人先喝1两,变成
800
503
第三个人再喝3两,就刚刚喝了4两,变成
500
203
第二个人再喝2两,就刚刚喝了4两,变成
003
第四个人再喝3两,就刚刚喝了4两
为了平均,每个人需要喝4两。考虑到我们有一个3两的杯子,所以问题的关键是如何量出尽可能多的1两。
由于3*3-8=1,我们可以将3杯3两倒入8两杯中,剩下的就是1两。用这个方法,我么可以在总数为9两,10两和11两时3次量出1两酒。
所以解题步骤就成为首先量出3两和2两,这时剩下11两,然后量出3次1两酒,然后再2次量出3两酒,最后剩下2两。
IBM笔试题:16个硬币,A和B轮流拿走一些,每次拿走的个数只能是1,2,4中的一个数。谁最后拿硬币谁输。
问:A或B有无策略保证自己赢?
B可以保证自己赢。
如果A拿1个,则B拿2个;如果A拿2个,则B拿1个;如果A拿4个,则B拿2个。这样每次AB加起来都是3或者6,所以最后会剩下1个或4个。如果是1个则A直接输了;如果剩下4个,A全拿则输了,如果不全拿,B继续采取上面的策略,最后还是剩下1个,还是A输。
IBM笔试题:村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?
答案:
假设有1条病狗,病狗的主人会看到其他狗都没有病,那么就知道自己的狗有病,所以第一天晚上就会有枪响。因为没有枪响,说明病狗数大于1。
假设有2条病狗,病狗的主人会看到有1条病狗,因为第一天没有听到枪响,是病狗数大于1,所以病狗的主人会知道自己的狗是病狗,因而第二天会有枪响。既然第二天也每有枪响,说明病狗数大于2。
由此推理,如果第三天枪响,则有3条病狗。
IBM笔试题:开关和灯泡的对应关系?
在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分哪个开关控制哪一盏灯?
答案:
设三个开关是1、2、3。打开开关1等半个小时,关上开关1并打开开关2。
进房后去摸灯泡,热的是开关1对应的灯泡;亮的是开关2对应的灯泡;不亮不热的是开关3对应的灯泡。
分析:
首先想到的就是通过打开不同的开关,进去后看灯是否亮来找出对应关系。可能打开的开关数量只有0,1,2,3共四种情况,没有一种情况能解决这个问题。所以必须找到其它的信号。鉴于灯泡亮一段时间后会发热,我们可以使用灯的热度作为一个信号。这样我们就有了热且亮,热不亮,亮不热,不热不亮四种状态,足以用来区分三只灯泡了。
这个题可以理解成一个编码问
[IT名企面试:IBM笔试题]