谷歌面试经历 |第 2 组(安置问题)
MCQ 问题:20(+4,-1)
主观问题:1
1)给定四个矩阵
P = 20×10
Q = 10×5
R = 5×10
S = 10×10
找到最小编号。 PxQxRxS 所需的乘法?
一)4000
b) 2500
c) 3000
d) 这些都不是
2)给出了两个 n 尺寸的数组。 n1 按降序排列,n2 按升序排列。如果 c1 是使用快速排序的 n1 的时间复杂度,而 c2 是使用快速排序的 n2 的时间复杂度。然后 -
a) c1 > c2
b) c1 < c2 c) c1 = c2 d) 这些都不是3)如果有一个 N 排序数组,那么找到总和小于 1000 的 2 个数组的时间复杂度是多少。
一)O(1)
b) O(n^2)
c) O(n)
d) O(logn)
4)有一些过程。在哪个调度算法中 CPU 利用率最低。如果 I/O 突发时间是 90 毫秒,CPU 突发时间是 10 毫秒。(问题很长要记住)
5)
int func(int x, int *y, int **z)
{
int p, q;
x += 2;
p = *y++;
q = **z++;
q = **z++; //Not a repeated line.
}
void main()
{
int a = 5, *b, **c;
b = &a;
c = &b;
printf(“%d”,a);
}
6)找出 2^3*google 的最低有效位,其中 google=10^100。
a2
b) 4
c) 6
d) 8
7)令 w(n) 和 A(n) 分别表示在大小为 n 的输入上执行的算法的最坏情况和平均情况运行时间。以下哪项总是正确的?
a) A(n) = 欧米茄(W(n))
b) A(n) = Theta(W(n))
c) A(n) = O(W(n))
d) A(n) = o(W(n))
8)考虑一个具有顶点集 {0, 1, 2, 3, 4} 的完整无向图。下面矩阵 W 中的项 Wij 是边 {i, j} 的权重。
0 1 8 1 4
1 0 12 4 9
W = 8 12 0 7 3
1 4 7 0 2
4 9 3 2 0
在此图中,如果顶点 0 是树 T 中的叶节点,生成树 T 的最小可能权重是多少?
一)7
b) 8
c) 9
d) 10
9)在问题 8 给出的图中,在该图中从顶点 1 到顶点 2 的路径 P 的最小可能权重是多少,使得 P 最多包含 3 条边?
一)7
b) 8
c) 9
d) 10
10)长度为 10 的散列表使用散列函数h(k)=k mod 10 和线性探测的开放寻址。将6个值插入一个空的哈希表后,表如下图。
|0| |
|1| |
|2| 42|
|3| 23|
|4| 34|
|5| 52|
|6| 46|
|7| 33|
|8| |
|9| |
以下哪一项选择给出了可能将键值插入表中的顺序?
a) 46、42、34、52、23、33
b) 34、42、23、52、33、46
c) 46、34、42、23、52、33
d) 42、46、33、23、34、52
11)使用第10题的相同散列函数和线性探测,有多少个不同的键值插入序列会产生如上所示的散列表?
一)10
b) 20
c) 30
d) 40
12)捕获具有 n 个圆盘的 Hanoi 塔问题的最佳时间的递归关系是
a) T(n) = 2T(n – 2) + 2
b) T(n) = 2T(n – 1) + n
c) T(n) = 2T(n/2) + 1
d) T(n) = 2T(n – 1) + 1
13)给定三个信号量,S0、S1 和 S2 初始化为 S0=1、S1=0、S2=0 并处理 P0、P1 和 P2。
P0 : while(true)
P0, P1 and P2.
P0 : while(true)
{
wait(S0);
printf(“ 0 “);
Release(S1);
Release(S2);
}
P1: while(true)
{
Wait(S1);
Release(S2);
}
P2: while(true)
{
Wait(S2);
Release(S0);
}
找出进程 P0 执行 printf 语句的次数。
a) 至少两次
b) 恰好一次
c) 正好两次
d) 正好三次
14)给定以下程序结构
{
if ( a == b ) { S1; exit(); }
else if ( c==d ) { S2; }
else { S3; exit(); }
S4;
}
给定 4 个测试用例,找出以下哪一个涵盖了所有 4 个语句
T1:a、b、c、d 相同。
T2:a、b、c 和 d 都是不同的。
T3:a == b 和 c != d。
T4:a != b 和 c==d。
a) T1、T2 和 T3;
b) T1、T4。
c) T2、T4。
d) T1、T2 和 T4。
15)以下哪些陈述是正确的?
一、剩余时间最短优先调度可能导致饿死
二、抢占式调度可能导致饥饿
三、 Round robin 在响应时间方面优于 FCFS
a) 我只
b) 仅 I 和 III
c) 仅限 II 和 III
d) I、II 和 III
16)逻辑页访问顺序:
1 2 3 2 4 1 3 2 4 1
实现了 Optimal、LRU、FIFO 页面替换技术。
那就不要。中的页面错误:
a) 最优 < LRU < FIFO b) 最优 < FIFO < LRU c) 最优 = FIFO d) 无17)找出编号。在给定的问题序列中,优化页面替换技术的页面错误数。 16.
一)5
b) 6
c) 7
d) 8
18)给定一个由 6 个节点组成的简单图(注意,它是一个简单图),然后判断以下哪一个是一组有效的图度数。
a) 4,4,1,1,1,1
b) 4,4,2,1,1,1
c) 4,4,2,2,1,1
d) 无
19)
gcd(n,m)
{
if (n%m == 0)
return n;
n = n%m;
return gcd ( m, n);
}
在最坏的情况下计算 gcd(n, m) 的复杂性是多少?
a) O(lgn)
b) O(1gm)
c) O(lg(lgn))
d) O(lg(lgm))
20)
void f(char * x)
{
x++;
*x = 'a';
}
int main()
{
char * str = "hello";
f(str);
cout << str;
system("pause");
return 0;
}
a) 你好
b) 你好
c) 同盟
d) 空字符串
B 部分——主观问题
骑士之旅是一个骑士在棋盘上的一系列移动,这样骑士恰好访问每个方格一次。查找放置在 NxN 棋盘 (x,y) 上的骑士的所有不同路线。
X,Y骑士可以去8个位置。(默认规则)。编写运行代码。