执行该程序后,k的值?

img

a<b?b:a 如果前面为true 则返回b值 如果为false 返回a值 由题可知a=1 b=2 a<b为true 返回b值为2 k赋值为返回值=2
第二块 k=k>c?c:k 先看后面的部分 k>c?c:k 首先由上面一步知道了k为2 题目上c=3 k>c为false 返回k的值也就是2 k=返回值等于2

?:是条件运算符又叫三目运算符,语法格式为:(表达式1?表达式2:表达式3),当表达式1为真时取表达式2的值,否则取表达式3的值
a=1,b=2,a<b为真,所以a<b?b:a的值为b,k=b=2
k=2,c=3,k>c为假,所以k>c?c:k的值为k,k=k=2

int k=0,a =1,b=2,c=3;
k = a<b?b:a;//这里先判断a是否小于b,如果a小于b,k就等于b,否则k就等于a,这里a=1,b=2,a<b成立,所以k=b=2;
k=k>c?c:k;//这里先判断k是否大于c,如果k大于c,k就等于c,否则k就等于k(就是值不变),这里k=2,c=3,k>c不成立,所以k=k,也就是k的值不变。k=2