📜  谷歌面试经历 |第 2 组(安置问题)

📅  最后修改于: 2022-05-13 01:58:34.495000             🧑  作者: Mango

谷歌面试经历 |第 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个位置。(默认规则)。编写运行代码。

谷歌的所有练习题!