16.设整型变量m,n,a,b,c,d均为1,执行“( m=a>b)&&(n=a>b)"后m,n的值是( )
A.0,0
B.0,l
C.1,0
D.1,l
【解析】表达式(m=a >b)&&(n=a >b)是一个逻辑表达式,它的计算过程是先计算逻辑与的左分量(m=a>b,其中又是先计算a>b。因a>b不成立,结果为0,将0赋给变量m,最后逻辑与的左分量结果为0。由于逻辑运算采用特别的优化计算规则,当逻辑与的左分量结果为0时,不再计算逻辑与的右分量,而直接以0为逻辑与的结果。所以,上述表达式计算使m的值变为0,而n的值没有变,依旧为l。所以解答是B。
【参考答案】B
17. 设有代码“int a=3;”,则执行了语句“a+=a-= a*a;”后,变量a的值是( )
A.3
B. 0
C. 9
D. -12
【解析】由于赋值运算符的结合性自右至左,语句“a+=a-=a*a;”的执行是先计算a*a,得到值 9,再计算 a-=a*a,使 a的值为-6,接着计算 a+=a,使 a的值为-12。所以解答是D。
【参考答案】D
18.在以下一组运算符中,优先级最高的运算符是( )
A.<=
B.=
C.%
D.&&
【解析】常规运算符的优先级自高到低的排列顺序是算术运算符、移位运算符、关系运算符。按位运算符、逻辑运算符、条件运算符、赋值运算符、逗号运算符。所以问题所给的四个运算符按优先级自高到低的排列顺序是%,<=,&&,=。所以解答是C。
【参考答案】C