GATE 2016 CS 组 2

17 Mar 2025 | 6 分钟阅读

41) 考虑一个具有 64 个寄存器和大小为 12 的指令集的处理器。每个指令有五个不同的字段,即操作码、两个源寄存器标识符、一个目标寄存器标识符和一个 12 位立即值。每个指令都必须以字节对齐的方式存储在内存中。如果一个程序有 100 条指令,该程序文本消耗的内存量(以字节为单位)是 ______________。

  1. 490
  2. 500
  3. 550
  4. 600

答案: B

说明

根据问题,
寄存器数量 = 64
用于寻址寄存器的位数 = [log264]= 6 位
指令数量 = 12
操作码大小 =[log212] = 4
寄存器源 = 2 (每个 6 位)
因此,将它们全部相加,我们得到:
4 + 6 + 6 + 6 + 12 = 34 位 = 34/8 字节 = 4.25 字节 ==5 字节
指令总数 = 100
总大小 = 指令数量 * 指令大小
= 100×5 = 500 字节
因此,选项 (B) 是正确答案。


42) 机器上物理地址的宽度是 40 位。512 KB 8 路组相联缓存中标签字段的宽度是 ______________ 位。

  1. 64
  2. 32
  3. 16
  4. 24

答案: D

说明

已知,
物理地址 = 40 B
缓存大小 = 512 KB
物理地址 = 标签 + 组号 + 块偏移
T + S + B =40 ------------- (1)
我们知道:
缓存大小 = 组数 * 每组的块数 * 块大小
512 KB = 组数 * 8 * 块大小
组数 * 块大小 = 512/8 KB = 64 KB
S + B = 16 ------------- (2)
从 (1) 和 (2) 中,我们得到
T + 16 = 40
或 T = 40-16 = 24B

因此,选项 (B) 是正确答案。


43) 考虑一个 3 GHz(千兆赫)处理器,具有三级流水线和级延迟 τ1 , τ2, 和 τ3,使得

Gate 2016 CS Set 2

如果最长的流水线级被分成两个相等的延迟的流水线级,新的频率是 ______________ GHz,忽略流水线寄存器中的延迟。

  1. 3
  2. 3.8
  3. 4
  4. 6

答案:C

说明

τ1 = 3τ2/4 = 2τ3 = k
τ1 = k
τ2 = 4k/3
τ3 = k/2
从上面可以看出,最长的延迟 = 4k/3
由于频率 = 3GHz,这意味着处理器将以 (1/3Giga) 秒执行 1 个时钟周期。但我们知道流水线中最大级的级延迟限制了 1 个时钟周期的时间。因此
4k/3 = 1/3Ghz
或 k = 1/4G
现在,我们将最大级(第 2 级)分成两个相等的级,即 2k/3 和 2k/3。新的处理器有 4 个级 -
(k) --> (2k/3) --> (2k/3) --> (k/2)
现在,最大的级时间是 k。因此,在 1 秒内执行 1/V 个时钟周期
但 V = 1/4G
因此,在 1 秒内执行 4 Ghz。
因此,选项 (C) 是正确答案。


44) 通过精确地包含 [1, 1023] 中的每个整数一次,可以制作一个完整的二叉最小堆。堆中节点的深度是从堆的根到该节点的路径的长度。因此,根的深度为 0。整数 9 可以出现的深度最大值为 ______________。

  1. 7
  2. 8
  3. 9
  4. 10

答案: B

说明

这里,整数为 1 的节点将位于根。现在,可以采用以下排列方式来获得树的最大深度。以左偏方式添加 2,3,4,5,6,7,8,9,其余元素可以相应添加。这种完全二叉树的排列将遵循最小堆的属性。因此,共有 9 个级别,那么 9 将出现在深度 8 处。因此,选项 (B) 是正确的答案。


45) 以下函数计算正整数 X 和 Y 的 XY

以下哪个条件在循环的每次迭代之前为真?

  1. XY = ab
  2. (res ∗ a)Y = (res∗ X)b
  3. XY = res∗ab
  4. XY = (res∗a)b

答案:C

说明

为了解决这个程序,我们需要检查最后一个迭代的选项,即当 b = 0 时。当 b=0 时,在循环开始时,XY 的值应该在 res 中正确计算。

取 X=10,Y=3

在迭代 3 之前,我们有:res = 10,a = 100,b = 1

作为选项 C : XY = res∗ab

<=> 103 = 10∗1001 = 103

因此,选项 (C) 是正确答案。


46) 考虑以下用于遍历二叉树的新顺序策略

  • 访问根节点;
  • 使用新顺序访问右子树;
  • 使用新顺序访问左子树;

对应于逆波兰表达式 3 4 * 5 - 2 ? 6 7 * 1 + - 的表达式树的新顺序遍历由

  1. + - 1 6 7 * 2 ? 5 - 3 4 *
  2. - + 1 * 6 7 ? 2 - 5 * 3 4
  3. - + 1 * 7 6 ? 2 - 5 * 4 3
  4. 1 7 6 * + 2 5 4 3 * - ? -

答案:C

说明

根据问题,遍历二叉树的新顺序策略: (节点 - 右 - 左)
1) 访问根节点
2) 访问右节点
3) 访问左节点

逆波兰表达式是通过后序派生的:(左 - 右 - 节点)
1) 访问左节点
2) 访问右节点
3) 访问根节点

从上面,我们可以看到,新顺序表达式将与后序的完全相反。因此,
后序遍历:3 4 * 5 - 2 ? 6 7 * 1 + ?
新顺序遍历:? + 1 * 7 6 ^ 2 ? 5 * 4 3
因此,选项 (C) 是正确答案。


47) 考虑以下程序

注意:max(x,y) 返回 x 和 y 的最大值。

这个程序打印的值是 ______________。

  1. 2
  2. 3
  3. 5
  4. 7

答案: B

说明

取:f(a,5)
p, n=5, a[] = {3,5,2,6,4}
max(f(p+1,5-1),3-5) = max(f(p+1,4),-2)

p, n=4, a[] = {5,2,6,4}
max(max(f(p+1,4-1),5-2),-2) = max(max(f(p+1,3),3),-2)

p, n=3, a[] = {2,6,4}
max(max(max(f(p+1,3-1),2-6),3),-2) = max(max(max(f(p+1,2),-4),3),-2)

p, n=2, a[] = {6,4}
max(max(max(max(f(p+1),1),2),-4),3),-2)

n=1 ,return 0
我们得到,
max = 3
因此,选项 (B) 是正确答案。


48) 设 A1、A2、A3 和 A4 是维度分别为 10 × 5、5 × 20、20 × 10 和 10 × 5 的四个矩阵。使用基本矩阵乘法方法找到乘积 A1 A2 A3 A4 所需的最小标量乘法次数是 ______________。

  1. 1400
  2. 1450
  3. 1550
  4. 1500

答案: D

说明

假设矩阵括号:A1((A2A3)A4)
已知,
A1 = 10×5
A2 = 5×20
A3 = 20×10
A4 = 10×5
根据矩阵链乘法,

Gate 2016 CS Set 2

A12 = 10×5×20 = 1000 A23 =5×20×10 = 1000 A34 = 20×10×5 = 1000 A13 = min{A12 + A33 + 5×20×10 = 2000, A11 + A23 + 10×5×10 = 1500} == 1500 类似地,A24 == 1500 A14 == 1500 因此,选项 (D) 是正确的答案。


GATE 2016 CS Set 2-1
GATE 2016 CS Set 2-2
GATE 2016 CS Set 2-3
GATE 2016 CS Set 2-4
GATE 2016 CS Set 2-5
GATE 2016 CS Set 2-7
GATE 2016 CS Set 2-8