本次考试c语言考得最多的就是判断表达式的值。
今天我们先来一个专题:赋值语句
如:若有语句int a=6;,则执行语句a+=a-=a*a;后a的值为
首先观察这里面有几个运算符,他们的优先级和结合性是怎么样的。
从以上表中我们不难得出:优先级排列顺序(优先级就是先算什么后算什么)
括号>单目运算符(包括正负号,++,——)>算术运算符(乘除模除加减)>关系运算符(<、>、==等)>逻辑运算符(&&、||、!)>赋值运算符>逗号运算符。
在本题中,有两个复合赋值运算符+=和-=,和一个算术运算符*。
我们应该先算a*a=36,
因为复合赋值的结合方式(同样的优先级的运算符是先算左还是算右)是从右向左,所以我们先算a-=a*a,等价于a=a-a*a=6-36=-30。
到这儿,a就是-30了。
a=a+a=-60
所以答案是-60.
另外,一个合法的赋值语句,它的左侧不能为表达式。
赋值语句的格式即为变量=表达式。
答案选C,这是逗号表达式的表达形式。
参照课本。