将P1中的3条语句依次编号为1,2...
将P1中的3条语句依次编号为1,2,3,将P2中的3条语句依次编号为4,5,6,则依次执行1,2,3,4,5,6得结果1,依次执行1,2,4,5,6,3得结果2,依次执行4,5,1,2,3,6得结果0.结果-1不可能得出。
为了方便讨论,将每行代码进行编号
load R1, x ① // 取x到寄存器R1中
inc R1 ② // 将R1中的操作数加一
store x, R1 ③ // 将R1的内容存入x
load R2, x ④ // 取x到寄存器R2中
dec R2 ⑤ // 将R2中的操作数减一
store x, R2 ⑥ // 将R2的内容存入x
方法一:枚举所有情况
x为1:例如执行①, ②, ③, ④, ⑤, ⑥,或者执行④, ⑤, ⑥, ①, ②, ③。
x为2:例如执行①, ②, ④, ⑤, ⑥, ③。
x为0:例如执行 ④, ⑤, ①, ②, ③ ⑥。
本题选C。
方法二:排除法
由于P1为加1操作,P2为减1操作,各执行一次,结果在数轴上具有对称性,由共享初值为1的变量x,结果关于1对称,排除D。
由于P1和P2均只执行1次,要得到3需要执行两次P1,得到-1需要执行两次P2,排除A和D。
由于先执行P1后执行P2得到1,正确选项一定包含1,排除A。
由于P1和P2均不是原子操作,排除B。
本题选C。
登录后提交答案