📜  门| GATE MOCK 2017 |问题30

📅  最后修改于: 2021-06-28 20:26:25             🧑  作者: Mango

考虑以下用于过程P1和P2的C代码。 a = 4,b = 0,c = 0(初始化)

P1                      P2
  if (a < 0)                b = 10;    
    c = b-a;                a = -3;
  else
    c = b+a;

如果进程P1和P2同时执行(共享变量a,b和c),则在两个进程完成之后,下列哪个值不能是’c’的值?

(A) 4
(B) 7
(C) 10
(D) 13答案: (C)
解释:

P1:1、3、4-> c = 0 + 4 = 4 {因此,选项a}
P2:i,ii和P1:1、2-> c = 10-(-3)= 13 {因此,选项d}
P1:1,P2:i,ii和P1:3、4-> c = 10 +(-3)= 7 {因此,选项b}
因此10不能是c值。这个问题的测验