谷歌笔试题(北大)

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

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

1、关于 IP 协议那个正确(D)

A IP 是 TCP 上层协议

B IP 协议是应用层协议

C 由于两个属于同一层协议,他们之间可以直接通信 DIP 协议不提 供可靠的通信

D TCP负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组

解析:IP为网络层协议。TCP为传输层协议。TCP为IP上层协议

2、 已知 x>=y and y>=z 为真,那么 x>z or y=z 值为(C)

A 真 B 假 C 无法确定 Dx y z 同为正数时为真

解析:条件可以简单分析为数学不等式 x>=y>=z,那么x>z不一定为true

当x>z为true,后面的条件忽略,结果为真;

当x==z,x>z为fslae,继续判断后一个条件

如果z==0,则y=z为false,结果为假;
如果z!=0,则y=z为true,结果为真;

所以,最后的结果是不确定的。

3、单链表中结点的结构为(data,link),若想删除结点 p(不是头节点或者尾结点)的直接后继,则应执行下列 哪个操作 (D)

A p=p->link ; p->link=p->link->link

B p->link->link=p->link

C p=p->link->link

Dp->link=p->link->link

4、 关于内存正确的是(B)

A 内存的存取速度不能低于 cpu 速度,否则会造成数据丢失

B 程序只有在数据和代码等被调入内存后才能运行

C 采用虚拟内存技术后程序可以在硬盘上直接运行

D 某计算机的内存容量为 16MB,那么他的地址总线为 24 位

解析:大容量存储设备的话,CPU只能和主存打交道。不过现在提出有统一内外存的概念,可以使用非易失性存储器像PCM、MRAM等既做主存又做外存,不过只是研究阶段,大家有兴趣可以了解下。 A,主存速度比CPU慢了不是一点半点,所以要加上***来缓存。 C,虚拟内存是程序可认为自己有整个的内存空间,程序执行过程中需要在主存和磁盘间交换数据,程序不会在磁盘运行的,这IO速度根本达不到。 D,16MB的主存,光主存的寻址就需要24位地址线,要知道计算机的地址映射的可不光是主存,还有ROM、外设什么的。

5、在堆排序算法中我们用一个数组 A 来模拟二叉树 T,如果该 A[0]存放的是 T 的根节点,那么 A[K](K>0)的父亲节点是 (A)

A (K-1)/2 B K/2 C(K+1)/2 D 都不对

解析:一般堆排序的话我们都把A[0]作为一个哨兵,不存储实际数据,此时(父节点=子节点/2),而题目要求是A[0]存放的是根节点,则我们可以用相同的转换(父节点=(子节点-1)/2)。
这种类型的题建议直接画图就能看出来。

6、 假设我们用 d=(a1,a2,….a5)表示无向无环图 G 的 5 个顶点的度数,下面给出的哪组值是可能的 A{3,4,4,3,1}B{4,2,2,1,1}C{3,3,3,2,2}D{3,4,3,2,1}

7、设栈 S 和队列 Q 的初始状态为空,元素 e1,e2,e3,e4,e5,e6 一次压入栈 S,一个元素出栈后即进入队列 Q, 若出队列的顺序为 e2,e4,e3,e6,e5,e1 则栈 S 的容量要求最小值为(B)

A、2 B、3 C、4 D、5

解析:出队先出e2表示e1,e2进栈后出e2(这时栈的容量最大为2),接着出e4,e3表示e3,e4进栈后出e4,e3(这时栈的容量最大为3),再出e6,e5表示e5,e6进栈后出e6,e5(这时栈的容量最大为3),最后出e1,所以答案应该是 3

8、 某请求被随即分配到四台机器进行处理,分配到每台机器的概率 ,A15% B20% C 30% D 35%, 处理请求的失败 概率分别为 5% ,4%, 3% 2%,现在请求失败,问由 C 造成的概率最接近(B)

A26% B28% C 30% D 32%

解析: P(由C造成请求失败|请求失败)

=P(由C处理请求)*P(C处理请求失败)/P(请求失败)

=0.3*0.03/(0.15*0.05+0.2*0.04+0.3*0.03+0.35*0.02)

=0.2857

9、现有如下任务需要安排在若干机器上并行完成,每个任务都有开始时间和结束时间(开始和结束时间都包括 在任务执行时间内)的要求 任务名称 开始时间 结束时间 a 1 7 b 8 9 c 2 5 d 7 11 e 3 6 f 7 9 g 10 13 则最少需要使用的机器数目为 (C)

A1B2C3D4

解析:所有任务开始到结束的时间为1~13,时间点1上执行的任务数目为1,时间点2上执行的任务数目为2,时间点3~5执行的任务数目为3时间点上执行的任务数目最大为3,所以需要3台机器。

10、在设计一个操作系统时,哪项不是必须考虑的(C)

A 设备管理模块 B 文件系统模块 C 用户管理模块 D 进程管理模块

解析:操作系统的功能:文件管理、设备管理、处理机(进程)管理、存储管理以及提供与用户的接口

11、正整数序列 Q 中的每个元素都至少能被正整数 a 和 b 中的一个整除,现给定 a 和 b,需要计算出 Q 中的前几项, 例如,当 a=3,b=5,N=6 时,序列为 3,5,6,9,10,12

(1)设计一个函数 void generate(int a,int b,int N ,int * Q)计算 Q 的前几项

(2)设计测试数据来验证函数程序在各种输入下的正确性

2、有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在答谢字母的前面(大写 或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法 c 语言函数原型 void proc (char *str) 也可以采用你自己熟悉的语言

3、 已知一颗无向无环连通图 T 的所有顶点和边的信息,现需要将其转换为一棵树,要求树的深度最小,请设计 一个算法找到所有满足要求的树的根结点,并分析时空复杂度(描述算法即可,无需代码)  

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

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

相关推荐