2011年软考程序员模拟试题及答案(2)

来源:微学教育网发布时间:2011-05-21

  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