作业帮 > 综合 > 作业

C语言题,给出结果、给出解释 .

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/05 12:33:54
C语言题,给出结果、给出解释 .
1 设int x=4,y=2; 表达式x
1.x<y
4<2不成立,所以取x++结果4(但x=5,此处要注意)

2.x=x-2=1while(!0) //非0则为真,所以继续x=x-2=-1while(!-2)=while(!(!0)) //假,所以结束循环结果-2
附:针对条件表达式
条件表达式由条件运算符构成,并常用条件表达式构成一个赋值语句,其一般形式如下:x=<表达式1>?<表达式2>:<表达式3>其意义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x.若为0(假),则求解表达式3,将表达式3的值赋给x.  口诀:前真后假.例如:min=(a<b)?a:b效果是将a、b中较小的那个赋给min.若有多个条件表达式像这样连在一起:x=<表达式1>?<表达式2>:<表达式3>?<表达式4>:<表达式5>···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性.例如: a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为:1
针对循环http://wenku.baidu.com/view/4d13146db84ae45c3b358c02.html
再问: (第一题...) ++的运算符,不是比条件运算符的优先级高吗?为什么不是先计算x++
再答: 你把语句肢解了,自加运算是套在条件表达式里的。这句可以等价于if循环。如果化作下列形式或许你就懂了。 if(x