问题标题:
【关于c语言的问题请各位看一下这两个简单的c语言问题:1)已知a=4,b=7,c=5.d=(a>b)||(++a==5)&&(c>b--),求d,a,b,c的值,还麻烦说一下整么算的?(答案给的是d=1,a=4,b=7,c=5)2)已知a=10,b=】
问题描述:

关于c语言的问题

请各位看一下这两个简单的c语言问题:

1)已知a=4,b=7,c=5.d=(a>b)||(++a==5)&&(c>b--),求d,a,b,c的值,还麻烦说一下整么算的?(答案给的是d=1,a=4,b=7,c=5)

2)已知a=10,b=15,c=14,temp=!a+b*c-b/a&&b-a*!(c-a)的temp的值。(答案是1)

吉明回答:
  首先要说明一下,在逻辑表达式中,只有真假两个值,真就是非0的数,假即为0。   第1题,d=(a>b)||(++a==5)&&(c>b--)。   首先看(a>b),由a=4,b=7,可知,(a>b)为假,也就是说,值为0。   然后看(++a==5),先计算++a,由a=4,得++a的值为5,所以(++a==5)为真,值为1。   此时a=5。   再看(cb--)的值,经过之前的计算可以知道,该式值为真。   所以(a>b)||(++a==5)&&(c>b--)等于(a>b)||1,也为真。于是d=1。如果此时再输出a,b,c,d的结果的话,应为a=5,b=6,c=5,d=1。   第2题temp=!a+b*c-b/a&&b-a*!(c-a)。   先看(!a),由a=10即a为真,可知(!a)为假,值为0。   由(b*c-b/a)可知,(15*14-15/10)不可能为0,所以为真,值为1。   再看(b-a*!(c-a)),(c-a)=4,为真,所以!(c-a)为假,值为0,   a*!(c-a)=a*0=0,b-a*!(c-a)=b-0=b=15,由b=15可知,值为真。   由(b*c-b/a)=1,(b-a*!(c-a))=1,可知(b*c-b/a)&&(b-a*!(c-a))=1。   由(!a)可知,(!a)+(b*c-b/a)&&(b-a*!(c-a))=1,所以temp=1
查看更多
其它推荐
热门其它推荐