谷歌笔试题

以下内容来自于应聘者回忆整理

很多同学都想得到谷歌的实习或者校招机会。那从过来人的角度谈谈,要通过谷歌的实习、校招面试,都有哪些经验和注意事项呢?今天就跟大家分享一下。以下答案仅是面试者个人观点,仅供参考。

判卷准则: 1. 前 10 个小题答对了至少 6 个才会判后面的大题 2. 大题最低分数为 20(每题 10 分),需满足其最低分数线。

一、选择题

1、 哪个表达式不能用这个匹配:a(bc)*d? (D)

A.ad B. abcd C.abc D.abccd

解析:

正则中的括号是做分组使用,这个正则匹配一个a,0个或多个bc,0个或一个d。

D选择中,a可以匹配,bc分组可以匹配到一个,然后后面还有个c就无法匹配了。

A,匹配a,0个bc,1个d B,匹配a,1个bc,1个d C,匹配a,1个bc,0个d

2、INTEL X86 CPU 中,哪种运算最慢(D)

A.加 B. 减 C.乘 D.除

解析:加减最快,其次是乘,最后是除

3、 下面程序的输出: Fun(){ bool first =true; int sum = 0; int cur; for(unsignedshort i=65535; i>=0; --i){ if(first){ cur=65536; sum+=cur%3; first=false; }else{ sum+=--cur%3; if(cur<=0) printf(“%d,%d”, sum, i)break; } } }

A. 65535, 0 B.65536,1 C.65536,65535 D.65536,0

4、有 19 本书,分别编号为 1-19,从中选出 5 本,要求任意两本不相邻,一共有多少种选法?(B)

A. 2002 B. 3003 C.11628 D.360360

解析:插空法 放14个数 剩5本 有十五个空 C(15,5)=3003

5、 一套房子 200 万,每年价格上涨 10% ,一个工程师每年固定收入 40 万,假定他不贷款,不涨工资,问几年能买 的起房子(D)

A.5 B.7 C.8 D.永远也买不起

解析:设需要k年,则40*k>=200*(1+10%)^k,所以永远买不起

6、 有 N 个叶节点的满二叉树节点,其共有多少个节点?(A)

A.2N-1 B.2N C.N-1 D.N

解析:满二叉树有一个性质是叶子节点总是比非叶子节点多一个,而全部节点 = 叶子节点 + 非叶子节点。所以全部节点个数 = n(这是叶子节点)+ n - 1(这是非叶子节点) = 2n-1

7、 以下哪个排序算法的最坏时间复杂度是 O(nlogn)? (A)

A. 归并排序 B. 快速排序 C. 冒泡排序 D.插入排序

解析: 归并排序基于分治的思想,是稳定的排序算法,最坏情况下复杂度仍为O (nlogn)。. 快速排序是冒泡排序的一种改进,其平均复杂度为O (nlogn),但最坏情况下快排将退化为冒泡算法,复杂度为O (n^2)。. 冒泡算法和插入排序算法的平均复杂度和最坏情况下的复杂度都为O (n^2)。

8、 两个排好序的数组大小为 N,M,合并成一个有序数组,则最小比较次数

A.min(N,M) B.M+N-1 C.N+M D.max(N,M)

9、关于 TLB 和 Cache,下面哪个说法是错误的 (C)

A. TLB 和 cache 中存的数据不同

B. TLB miss 后,可能在 Cache 中直接找到页表内容

C.TLB miss 会造成程序执行出错,但是 cachemiss 不会

D. 这两者的命中率都与访存模式有关

解析:TLB的作用是增加虚拟地址到物理地址的转换效率,TLB miss后仍然可以通过查询页表获得虚拟地址对应的物理地址。Cache miss后也可以在低等级存储中找到数据。

10、对于数据库,以下哪种说法是错的

A. 每个表都必须有主键

B. 跨表查询很慢

C. 数据库不支持多个客户端同时对一个表进行写操作

D. 多维索引可以用 KD 树

二、编程题

1、 用一个数组 A[N+1]存储一个多项式:a0+a1x+a2x2+….anxn,用一个程序计算这个多项式的值。 函数原型:double eval(double x, double *A)

2、有 n 个队伍,n=2^k。有一个二维数组,winner[j]代表第 i 队和第 j 队的比赛结果中胜出队伍的编号,winner[j]和 winner[j]相同。另有一个代表单淘汰赛签位的一维数组 order[0]…[n-1],order 代表 i 签位上的队伍编号。现在要求 输出一个最终队伍排名,如果在同一轮中淘汰的认为排名相同,并且时间和空间复杂度尽可能低 如 n=4 时有一个例子函数原型:void fun(int **winner, int *order, int *result) 0T,比如 ABC->C,ABD->E, BDE->F, DEF->G,那么连招输出就可以是 ABD->E->F>G。现在要求一个程序,能够输出最大连招的长度 

想要更多谷歌实习、校招的机会,请点击这里

  • 1、刺猬实习遵循行业规范,任何转载的稿件都会明确标注作者和来源
  • 2、刺猬实习的原创文章,请转载时务必注明"来源:刺猬实习",不尊重原创的行为刺猬实习或将追究责任
  • 3、作者投稿可能会经刺猬实习编辑修改或补充。

相关推荐