考虑以下用于过程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值。这个问题的测验