C语言,两个答案,麻烦帮忙解释一下,谢谢

在C语言中,以下逻辑表达式的值为0的是:( )。(选择两项)
a) !(9= =0) || (9= =0) && (3>1)
b) 9%5= =4
c) (9= =0)&&(9.0/5 = =1)
d) !(2>2)&&(2>’1’)

  答案:C项和D项

  语句成立就为真(1),不成立就为假(0),

  解释:A项:先判断9是否等于0,9不等于0,为假(即是0),又有一个!(非)就是真(即是1),然后是||(或),或的意思是先判断前一表达式是否为真,为真则不需要判断后一个表达式,反之,前一表达式为假的话就判断后一表达式。接下来就是&&(与),3>1为真,所以真个表达式就为真(1)。

  B项:%(求余),意思是9除以5之后余了多少,再判断余数是否等于5,发现等于5,表达式就为真(1)了

  C项:第一个表达式就为假(0)了,&&(与)只有前面表达式为真才判断后面表达式,否则,不必判断后面的表达式。整个表达式就为假(0)了.

  D项:前一个表达式就为真(1)了,上述,2>'1','1'为字符,值为49,不成立,为假(1),整个表达式就假了。

  不懂可以追问。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-12
c 9==0 为0 9.0/5==1 为0 0&&0结果=0
d !(2>2) 为1 2>'1' 为0 1&&0 结果=0
第2个回答  2013-06-12
&& 是二者只要有一个不成立,就不成立
 C. (9= =0)&&(9.0/5 = =1) // 9 ==0不成立,所以,为0
D.  !(2>2)&&(2>’1’)  //'1' 是字符所以要看ASCLL码, 为49 所以,2 > 49 不成立,为0

第3个回答  2013-06-12
CD
相似回答