>是从左往右结合;所以a>b返回1,然后1>c返回0,即false,所以判断((c-1>=d)==1), 由于减号优先级高于>=;所以先计算c-1,返回2 2>=d返回1,1==1结果是true,所以输出d+1=3.
已知int a=5,b=4,c=3,d=2;a>b>c,首先判断a>b,结果为真,即1,再判断(a>b)>c,就替换成判断1 > 3,结果不成立,所以继续判断 else if((c-1>=d) == 1) ;((c-1>=d) 的结果为1,所以,最后输出 printf("%d\n",d+1); 又d=2;所以最后结果为3 ...
先判断A>B 因为成立 所以A>B是正确的 所以A>B的值为 1 (1表示TRUE,0表示FALSE) 然后 就变成 1和C比较了 当然1小于C 所以第一个IF 不满足 满足第二个IF 所以就输出2+1 =3 了
include <stdio.h>void main(){ int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d+1); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2);}[willie@bogon zhidao]$ gcc yunsuan.c -o yunsuan.o [willie@bogon zhidao]$ ./yun...
这个结果应该是33吧,因为上面两个if语句都成立,所以第一次输出的d++ +1=3、第二次输出的d是最后一个printf语句,因为上面d已经自加1了,所以输出d为3,所以两次d输出的都是3
结果是:5,3,4 if(a<b)的运算结果是将a,b中数值大的放在a里面,第一个if结束后a=4,b=3; if(a<c)的运算结果是将a,b中数值大的放在a里面,第二个if结束后a=5,c=4; 最后输出abc是5,3,4
if (a>=b--) ;// 这个条件的真假没有用,真也什么都没执行,假也什么都没执行,但是有个副作用把b减了1,运行完b等于3。if (--b<c++) ++c; // 前--b,导致b等于2;c后++,导致比较的c是3,所以条件2<3成立,然后c等于4,由于条件成立,执行++c,所以完毕后:b=2,c=5 else c...
A B C D 7、当a=2,b=3,c=4,d=5时, 执行下面一段程序后x的值为( )。if(a<b) if(c>d)x=1 ; else if(a>c) if(b<d)x=2 ; else x=3 ; else x=4 ;else x=5 ;本题(1分)A:2B:3C:4D:5 A B C D 8、以下程序的运行结果是( )。void fun(int *n){ static int m=...
1、不是C语言基本数据类型的是( )。A、指针类型 B、整型 C、字符型 D、实型 2、设有:int a=3, b= 4, c= 5,x , y; 表达式(x=a)&&(y=b)&&0的值为( )。A、1 B、0 C、3 D、4 3、设有语句 int a=3 ; 则执行了语句 a+ = a - = a后,...
三目运算符!先用c和d比较,取较大的一个,因为d=4,c=3,所以取d。原试化为a<b?d:b。意思是,若a<b就取d,若a>b就取b,因为a=1,b=2,故a<b。所以,结果是d,答案就是4