C语言运算问题

设x为整型变量,和表达式"!(!x)"值完全相同的表达式是()A.x==0B.x==1C.x!=0D.x!=1设有语句inga=3;则执行了语句a+=a-=a*a;后变量... 设x为整型变量,和表达式"!(!x)"值完全相同的表达式是()
A.x==0 B.x==1 C.x!=0 D.x!=1
设有语句ing a=3;则执行了语句a+=a-=a*a;后变量a的值是()
A.3 B.0 C.9 D.-12
第一题想不出`第二题在V6上面运行结果是D,但是为什么?
求高手解答!!!2题都能详细说清楚的才给分...
设整型变量m,n,a,b,c,d的值均为0,执行(m=a==b)||(n=c==d)后,m,n的值是(C)
A.0,0 B.0,1 C.1,0 D1,1
设整型变量m,n,a,b的值均为1,执行(m=a>b)&&(n=a>b)后,m,n的值是(B)
A.0,0 B.0,1 C.1,0 D1,1
求高手解答...答案是用V6算出来的..但是为什么呢?希望能详细说明下
展开
 我来答
zerolxl
2010-10-13 · 超过11用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:33.5万
展开全部
第一问 假设x为0 则!x为1,而!(!x)即!(1)所以结果为0,反之,x为1时结果也为1,即 是判断x的值是否为 1等价, 所以应该结果为C,布尔型的话 答案也可以是B

第二问:这是个优先级的问题 += 、-=等符号运算是自右向左运行的,优先级小于加减乘除,运行后赋值,因此a+=a-=a*a 为 1.a-=a*a a为-6 2. a+=a即a=a+a=(-6)+(-6)=-12 所以答案为D

补充问题1:(m=a==b)||(n=c==d) 注意:A||B 这个表达式 当A为1时,即表达式为真 不会再进行B的运算,只有当A=0时 才会进行B的运算,你可以试试将题目中a的初始值设为1 那么 就会执行到n=c==d 这 ,n就会被赋值了; && 与 也是一样的运算顺序

问题2:同上的道理 , A && B 需要是A为1 时才能往下执行 B是否为1,否则直接返回表达式的结果为 0
D調唯美
2010-10-13 · TA获得超过205个赞
知道答主
回答量:96
采纳率:0%
帮助的人:0
展开全部
第一个没想明白,不过第二个倒是可以为你解答。
C语言是遵循右优先的,就是从右面开始运算。
a+=a的意思是说a=a+a,就是说将a+a的值赋给a。
首先运算3*3的9,表达是变成了a+=a-=9.
a-=9相当于a=a-9;a+=a-9相当于a=a+(a-9)
then,看好这一步,到目前为止a的值还是3,a=a+(3-9)得到式子
a=a+(-6)此时a被赋值为-6,then最后一步,a=-6+(-6)=-12;
我说的够清楚了吧?
第一个问题我真的没看明白!我写的可不少啊,纯手打,正好我也在
研究C++顺便帮你回答一下,希望有帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackdavid144
2010-10-13 · TA获得超过350个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:222万
展开全部
第一题 !(!x)是双重否定等同于x,在C语言中,x不为0时表达式x为真,所以第一题选C

第二题 a+=a-=a*a是按照从右到左的顺序
a-=a*a使得a的值由3变成3-3*3=-6,这个表达式的值也就是-6
a+=a-=a*a也就等同于a+=(-6),此时a=-6,所以整个表达式执行完毕后a=-12

第三题
首先看m=a==b
a==b这个表达式很明显值为真,则m=1,m=a==b这个表达式的值也就是m的值为1
那么整个表达式的值也就为真了(或运算“||”满足条件),后面的n=c==d不执行判断,此时m=1,n=0

第四题
首先看m=a>b
a=1且b=1,那么a>b显然不满足,则m=0,同理m=a>b也为0,则整个表达式的值就为假(与运算“&&”满足否定条件),后面的n=a>b系统不执行,此时m=0,n=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kawayi1wewe
2010-10-13
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
1。C 2。D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式