若整型变量a=5,b=4,c=3,m=1,n=1

来源:百度知道 编辑:UC知道 时间:2024/06/02 06:50:30
若整型变量a=5,b=4,c=3,m=1,n=1
则语句y=(m=a<b&&n=b<c);执行完毕后,y,m,n的值分别为( )
A 1,0,1 B 0,0,1 C 1,0,0 D 0,1,1

y=0,m=0,n=1

hgmgmhfm,jh,jh,j,jh

只有 傻X出这种题

b&&n不能做左值,搞不好连编译都过不了

中国的考试就爱出这样的题,也是中国落后的原因,光会扣字眼,现代的孔乙己,一点使用价值都没有。奉劝你不要做这样的题,编程要注重方法的积累。我也知道出题的人是想让你理解各个运算符的优先级,其实没有必要,真正编写程序时多加几个括号就可以避免,要真的想知道优先级的时候,编写个验证程序试验下就知道,记住这个完全没必要。就是这些出题的把人们的注意力引到错误的方向,中国教育的悲哀!说实话我也不知道这道题的答案,但是我编写的时候我会用这样的语句y=((m=(a<b))&&(n=(b<c)));不要抓细节,注重方法,才是编程的正确方向,不知道的细节可以查的。好的程序员也不一定能通过那些无聊的人出的考题,同样,考试过关不等于你就会编程。

同意楼上几位的观点,既然楼主提出来了,还是解答下吧:

m=a<b&&n=b<c,注意这里面出现运算符的优先级,关系运算符"<",">",和逻辑运算符"&&",赋值运算符"=",三者的运算优先级是依次降低的.

那么题目正确就按照

m=((a<b)&&n)=(b<c),可这里出现了问题((a<b)&&n)不能做左值,即不能被赋值.

我个人认为题目有问题.

1