tzkr.net
当前位置:首页 >> C语言 设A=1, B=2, C=3,D=4,则表达式A<B?A:C<D?A:... >>

C语言 设A=1, B=2, C=3,D=4,则表达式A<B?A:C<D?A:...

这个是C语言中的条件运算符(?:)它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个. <表达式1>?<表达式2>:<表达式3> 在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值.你这个表达式中,a<b 视为表达式1 为真 则返回 表达式2 即 a的值1 ,后面的表达式3就根本没用.你的表达式可以视为:(a<b)?a:((c<d)?a:d).表达式1为 a<b,表达式2为a,表达式3为 c<d?a:d.

d:1

表达式:a>b?a:c>d?a:d的结果为4.解析:1、由于C语言的相同优先级运算符运算规则为从左至右依次运算,而条件运算符具有右结合性,所以表达式:a>b?a:c>d?a:d优先运算c>d?a:d,得出的结果为4;2、再运输a>b?a:4,得出的结果为4.所

if(a<b) return a; else if(c<d) return a; else return d;

答案是1.a<b?a:c<d?c:d 就是(a<b)?a:((c<d)?c:d) z=(a<b)?a:((c<d)?c:d); 就是 if(a<b) { z=a; } else { if(c<d) z=c; else z=d; } a=1, b=2,a<b 是 1 所以z是 a, 也就是1

三目运算 ?:相当于 if ( a++<b ) //此句相当于 if( a<b , a=a+1 ) a=1,b=2,so a<b为真 return a; //此时 a=2 else 这后面的不用考虑了 if (c<d) return (--a); else return (--d);

答案是1.首先你要知道a?b:c表达式的意义是如果a不为0,则等于b,如果a为0,则等于c1、a<b也就是4<3是错的,为0,执行冒号后面的2、c<d也就是2<1是错的,为0,结果为冒号后面的d,也就是1

1、D a<b?a:c<d?a:d 是个条件表达式的语句 ? :(a<b) ? a:(c<d ? a:d ) 功能类似于 if 就 a<b 成立的话, 表达式的值返回 a ,否则 返回 c<d ? a:d --》 如果 c<d 成立 则返回 a,否则返回 d,此处 a<b 成立 返回 a2、x=(y=4,z=16,k=32) 括号内部是 逗号运算符,他的运算规则为 从左到右进行运算,并且返回 最后一个 位置的 值 即 返回 32 ,就是 x=32 了3、 x+=y;y=x-y;y=x-y;x-=y; 分别可以写成一下 x=x+y; y=x-y; y=x-y; x=x-y; 建议 多看看C语言的基础知识

这个题,由于a=1、b=2,a++

答案是d,因为a<b条件成立,就返回a的值

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.tzkr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com