GATE 2017 CS 组 1

2024年08月30日 | 阅读 8 分钟

9) 当使用流水线进位加法器对两个以2的补码表示的8位数字 A7 .... A0 和 B7 .... B0 (其中 A0 和 B0 是最低有效位) 进行相加时,得到的和位为 S7 .... S0,进位位为 C7 .... C0。当发生溢出时

  1. 进位位 C7 为 1
  2. 所有进位位 (C7, .... , C0 ) 都为 1
  3. (A7 . B7 . S7' + A7' . B7' . S7) 为 1
  4. (A0 . B0 . S0' + A0' . B0' . S0) 为 1

答案:C

说明

当两个正数(即1)相加结果为负数,或两个负数(即0)相加结果为正数时,会发生溢出。否则,和没有溢出。

                                                                                          C6 C5 C4 C3 C2 C1 C0

A7 A6 A5 A4 A3 A2 A1 A0 + B7 B6 B5 B4 B3 B2 B1 B0 = C7 S7 S6 S5 S4 S3 S2 S1 S0 (结果)

如果 A7 和 B7 都为 1,那么 C7 为 1,S7 为 0,这意味着 C6 为 0,因此是 C7.C6'

如果 A7 和 B7 都为 0,那么 C7 为 0,S7 为 1,这意味着 C6 为 1,因此是 C7'.C6

现在,将两者合并得到:C7.C6' + C7'.C6

因此,A7. B7. S7' + A7'. B7'.S7 = 1

所以,选项(C)是正确答案。


10) 考虑以下关于字母表 ∑ = {a, b, c} 的上下文无关文法,其中 S 为起始符号

S → abScT | abcT
T → bT | b

下列哪个选项表示该文法生成的语言?

  1. {(ab)n(cb)n | n >= 1 }
  2. {(abncbm1cbm2...cbmn | n, m1, m2, ....... mn >= 1 }
  3. {(ab)n(cbm)n | n >= 1 }
  4. {(ab)n(cbn)m | m, n >= 1 }

答案: B

说明

从给定的文法生成一个字符串,我们得到

S → abScT

   → ab abScT cT

   → abab abcT cTcT

   → abababc bT cTcT

    → abababcbb bT cTcT

   → abababcbb bT cTcT

   → abababcbbbb cTcT

   → abababcbbbbc b cT

   → abababcbbbbcbc bT

   → abababcbbbbcbcbb

现在,分析这个字符串后,我们得到,

→ {(abncbm1cbm2......cbmn | n, m1, m2, ........, mn >= 1 }

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


11) 考虑下面定义的 C 结构体

student 的基地址可在寄存器 R1 中获得。字段 student.grade 可以使用以下哪种方式高效访问?

  1. 后增量寻址模式。(R1)+
  2. 前减量寻址模式, -(R1)
  3. 寄存器直接寻址模式, R1
  4. 索引寻址模式, X(R1),其中 X 是以2的补码16位表示的偏移量。

答案: D

说明

student grade 的地址只能通过 student 的基地址访问。

选项(A):后增量寻址模式。(R1)+ -> 此模式将给出下一个地址。

选项(B):前减量寻址模式, -(R1) -> 此模式将给出上一个地址。

选项(C):寄存器直接寻址模式, R1: 在此模式下,操作数地址嵌入在指令代码中。

选项(D):索引寻址模式:此模式通过使用位移模式在基地址上加位移来访问下一个地址。基寄存器包含指向内存位置的指针。基地址的位移也称为整数(常量)。因此,操作数的地址是通过将基寄存器的内容加上整数(常量)获得的。

因此,字段 student.grade 可以使用索引寻址模式高效访问。


12) 考虑以下中间程序,使用三地址码

p = a - b
q = p * c
p = u * v
q = p + q

上述代码 A 的静态单赋值形式是什么?

  1. p1 = a - b
    q1 = p1 * c
    p1 = u * v
    q1 = p1 + q1
  2. p3 = a - b
    q4 = p3 * c
    p4 = u * v
    q5 = p4 + q4
  3. p1 = a - b
    q1 = p2 * c
    p3 = u * v
    q2 = p4 + q3
  4. p1 = a - b
    q1 = p * c
    p2 = u * v
    q2 = p + q

答案: B

说明

根据静态单赋值

     1. 左侧的每个赋值都应被赋予一个唯一的名称。
     2. 变量不能被使用超过一次。

现在看给出的选项

选项 A 是错误的,因为 p1 被初始化了两次。

选项 C 是错误的,因为语句 p2, p4, q3 没有被初始化。

选项 D 是错误的,因为 q2 = p + q 在没有移到寄存器的情况下是错误的。

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


13) 考虑以下 C 代码

该代码存在以下哪个问题?

  1. 编译器错误,因为 malloc 的返回值没有正确地进行类型转换。
  2. 编译器错误,因为比较应该写成 x==NULL 而不是所示的那样。
  3. 编译成功,但执行可能导致悬空指针。
  4. 编译成功,但执行可能导致内存泄漏。

答案: D

说明

代码将执行并输出 10,因此选项 A 和 B 被排除。

这里,malloc 函数调用了两次。第一次调用时,

     int *x = malloc (sizeof(int));

此语句为 x 分配了一个位置。

第二次调用时,

     int *x = malloc (sizeof(int));

此语句再次为 x 分配了一个新位置,而之前的内存位置丢失了,因为我们不再有对该位置的引用,从而导致内存泄漏。

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


14) 考虑运行在两台不同机器上的 TCP 客户端和 TCP 服务器。在完成数据传输后,TCP 客户端调用 close 来终止连接,并向 TCP 服务器发送一个 FIN 段。服务器端 TCP 通过发送一个 ACK 来响应,该 ACK 被客户端 TCP 接收。根据 TCP 连接状态图(RFC 793),客户端 TCP 连接在哪个状态下等待来自服务器端 TCP 的 FIN?

  1. LAST-ACK
  2. TIME-WAIT
  3. FIN-WAIT-1
  4. FIN-WAIT-2

答案: D

说明

客户端已发送 FIN 段给 TCP 服务器并转到 FIN-WAIT-1,即等待自己的 FIN 段的 ACK。这里有两种可能性

1. 如果客户端收到对其 FIN 的 ACK,则转移到 FIN-WAIT-2,连接的一个方向现已关闭,或者它将等待来自服务器端的匹配 FIN。在收到服务器端的 FIN 且另一端关闭后,客户端将发送 ACK 并转到 TIME-WAIT 状态。

2. 客户端已发送 FIN 段,但未及时收到 ACK。客户端从服务器端收到了 FIN 而不是 ACK。现在它确认这个 FIN 并向 CLOSE 状态移动。在这里,客户端将等待其自身 FIN 的 ACK。当收到 ACK 时,将转到 TIME-WAIT 状态。

这里第一种情况是准确的答案。
因此,选项(D)是正确答案。


15) 发送方 S 将消息 m 发送给接收方 R,该消息由 S 使用其私钥进行数字签名。在此场景下,可能发生以下一项或多项安全违规。

(I) S 可以发起生日攻击,将 m 替换为欺诈性消息。
(II) 第三方攻击者可以发起生日攻击,将 m 替换为欺诈性消息。
(III) R 可以发起生日攻击,将 m 替换为欺诈性消息。

  1. 仅 (I) 和 (II)
  2. 仅 (I)
  3. 仅 (II)
  4. 仅 (II) 和 (III)

答案: B

说明

什么是生日攻击:它是指发送一个具有与原始消息相同的哈希值和数字签名的欺诈性消息。

现在,逐一分析每个选项

在身份验证和保密性中,整个消息首先用发送方的私钥加密,然后用接收方的公钥加密。而在身份验证中,只有消息摘要用发送方的私钥加密。

I) S 可以使用其他消息,用其私钥加密,然后用接收方的公钥加密并发送。所以这是正确的。

II) 在第二个选项中,第三方无法再次加密新消息,因为需要发送方的私钥。所以这是错误的。

III) 在这个选项中,加密消息仍然需要发送方的私钥。所以这是错误的。

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


16) 以下函数依赖关系对关系模式 R{V, W, X, Y, Z} 成立

V → W
VW → X
Y → VX
Y → Z

下列哪个是此函数依赖集的一个不可约等价集?

  1. V → W
    V → X
    Y → V
    Y → Z
  2. V → W
    W → X
    Y → V
    Y → Z
  3. V → W
    V → X
    Y → V
    Y → X
    Y → Z
  4. V → W
    W → X
    Y → V
    Y → X
    Y → Z

答案: A

说明

已知,

     V → W
     VW → X
     Y → VX
     Y → Z

在以下函数依赖(FDs)中,我们可以看到,

给定的 FDs 不蕴含选项 B。W → X,所以这是不正确的

选项 C:Y→X 可以移除,因为它可以被蕴含为 Y→V 和 V→X,因此是冗余的

给定的 FDs 不蕴含选项 D。W → X,所以这是不正确的。

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


GATE 2017 CS 组 1-1
GATE 2017 CS Set 1-3
GATE 2017 CS Set 1-4
GATE 2017 CS Set 1-5
GATE 2017 CS Set 1-6
GATE 2017 CS Set 1-7
GATE 2017 CS Set 1-8

下一个主题GATE 2017 CS Set 1-3