main() { int w=4,x=3,y=2,z=1; printf(“%d\n”,(w<x ? w : z<y ? z : x)); } 输出结果详解

如题所述

难点在这句:

(w<x ? w : z<y ? z : x)

首先要知道?这个写法 

条件 ? 成立:不成立

再分析

w<x ? 成立:不成立

因为w = 4   x = 3 所以 w > x 条件不成立!

进入后面的语句分析

z<y ? z : x

因为 z = 1  y = 2 , 条件成立, 取z 值

即 1


最后打印出来是  1

温馨提示:内容为网友见解,仅供参考
无其他回答

int w=4,x=3,y=2,z=1; printf("%d\\n",(w<x? w:z<y? z:x));
w<x ? 成立:不成立因为w = 4 x = 3 所以 w > x 条件不成立!进入后面的语句分析 z<y ? z : x因为 z = 1 y = 2 , 条件成立, 取z 值 即 1

...main() { int w=4,x=3,y=2,z=1; printf("%d",(w<x?9w:z<y?z:x...
void main(){ int w=4,x=3,y=2,z=1;printf("%d",(w<x?9*w:z<y?z:x));\/\/9与w之间应该有 } 程序执行结果为:1

...main() {int w=4,x=3,y=2,z=1: printf ("%d\\n",(w<x?w:z<y?z:x...
w=4,x=3,y=2,z=1 w<x?w:z<y?z:x 时一个嵌套的三目运算符 w<x 4<3 为假,执行 z<y 1<2 真 ,所以结果就是z ,就是 1 结果为1 科普:表达式1?表达式2:表达式3 表达式1 为真 ,结果就是表达式2 表达式1 为假 ,结果就是表达式3 ...

#include<stdio.h> main() {int x=3,y=
自增与自减运算符可在变量的左边(前缀)与右边(后缀),运算规则教材上有的,手机打字很麻烦

我这有C语言的题,哪位大侠能解决一下,必有重谢!
{ int w=4,x=3,y=2,z=1; if(x>y&&!(z==w)) printf("%d\\n",(w<x?w:z<y?z:x)); else printf("%d\\n", (w>x?w:z>y?z:x)); }本题(1分)A:1B:2C:3D:4 A B C D 39、在下列语句选项中,只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的...

...y=3,x=3,z=1; printf(“%d %d\\n”,(++x,y++),z+2); } 运行该程序的...
逗号符,表示对这两个表达式执行逗号运算…(x,y)这个表达式的值为y的值 ++x就是将x的值+1后赋给表达式,y++就是先将y拿去计算,在讲y加1 ,

...main() { int x,y=2,z; scanf("%d\\n",&x); if(x<=0) { z=x+y...
scanf("%d\\n",&x); 后没有 \\n 改为scanf("%d",&x);\\n 是作换行用的,用在输出语句中。

...int x=03,y=02,z=01;那么语句printf("%d",x|y&~Z)的执行结果是...
答案是C 首先计算~Z得到结果后再和y进行与运算,这时结果为2 最后再与x进行或运算,3|2=3

...y=3,x=3,z=1; printf("%d %d\\n",(++x,y++),z+2); } 答案为什么是3...
输出的值分别是(++x,y++)和z+2 (++x,y++)这个是一个逗号表达式,返回值为最右边表达式的值。所以返回的值为y。z+2就是3 所以输出为3 3 这个主要考的是逗号表达式返回值

main() { int x,y,z; x=3;y=z=4; printf("%d,",(z>=y>=z)? 1:0...
z>=y>=z的值,从左向右运算 z>=y结果是true,然后计算true>=y,true转换为int值为1,所以z>=y>=z的值为false printf("%d,",(z>=y>=z)? 1:0); 打印0 z>=y&&y>=x,分别计算z>=y与y>=x,二者均为true,所以结果为true,转换为int值为1 printf("%d\\n",z>=y&&y>=x); ...

相似回答