当前位置: 代码迷 >> Oracle认证考试 >> Oracle Graduate Trainee测试题,该怎么处理
  详细解决方案

Oracle Graduate Trainee测试题,该怎么处理

热度:6220   发布时间:2013-02-26 00:00:00.0
Oracle Graduate Trainee测试题
题目如下:
In a programming language with only two levels of operator precedence — unary binding tighter than binary — and left-to-right evaluation, what is the value of the following expression?
– 7 – – 5 * – 4 + 3 * 2
A. 4
 
B. 22
 
C. -21
 
D. -33

翻译下:
某种编程语言只有两种运算符优先级,一元运算符比二元运算符有更强的结合性,并且运算顺序从左到右,下面表达式的计算结果是什么?
A. 4
 
B. 22
 
C. -21
 
D. -33

我有两种运算符优先级,但是也没指明乘法和除法优先级高于加减法啊,所以不知道怎么下手,求指点
------最佳解决方案--------------------------------------------------------
我选B,– 7 – – 5 * – 4 + 3 * 2
一元运算优先于二元运算,得到
(– 7) – (– 5 )* (– 4) + 3 * 2
按照从左往右计算(加减乘除运算优先级一样)
1. -7-(-5)=-2
2. -2*(-4)=8
3. 8+3=11
4. 11*2=22

------其他解决方案--------------------------------------------------------
我同意楼上的
– 7 – (– 5) * (– 4) + (3 * 2) = -7-20+6=-21
------其他解决方案--------------------------------------------------------
C. -21

------其他解决方案--------------------------------------------------------
– 7 – (– 5) * (– 4) + (3 * 2)

– 7 – 
(– 5) * (– 4) +  -- 20
(3 * 2)            -- 6

-7 - 20 + 6 = -21
------其他解决方案--------------------------------------------------------
求答案,答案

------其他解决方案--------------------------------------------------------
不过我还是认为一楼的正确,毕竟没有说明加减运算符和乘除运算符哪组优先级高。
  相关解决方案