下列程序段输出的结果是__A____。 int a=5,b=4,c=3; if(a>b) a=

下列程序段输出的结果是__A____。

int a=5,b=4,c=3;
if(a>b) a=b+c,b=2*c;

else a=b-c,b=3*c;a=b+c;
printf("%d %d",a,b);

A. 9 6
B. 7 3

C. 1 9
D. 4 2

答案选A。将程序写清晰如下,注意最后还有一句 a=b+c;
int a=5,b=4,c=3;
if(a>b) {
//程序会进入此
a=b+c, // 执行完此句,a = 7
b=2*c; // 执行完此句,b = 6
}else {
//程序不会进入此
a=b-c,
b=3*c;
}
a=b+c; // 执行完此句,a = 9
printf("%d %d",a,b);追问

为什么a不是10?最后a=b+c不是应该为10吗?

追答

a=b+c, // 执行完此句,a = 7
b=2*c; // 执行完此句,b = 6
执行完这两句后,b 的值已经是6 了啊。

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

下列程序段输出的结果是__A___。 int a=5,b=4,c=3; if(a>b) a=...
答案选A。将程序写清晰如下,注意最后还有一句 a=b+c;int a=5,b=4,c=3;if(a>b) { \/\/程序会进入此 a=b+c, \/\/ 执行完此句,a = 7 b=2*c; \/\/ 执行完此句,b = 6 }else { \/\/程序不会进入此 a=b-c,b=3*c;} a=b+c; \/\/ 执行完此句,a = 9 printf("...

以下程序段的输出结果是( )。 int a=1234: printf('一\\n',a);_百度...
【答案】:C 由于输出项中没有格式字符(即%字符),所以不会输出变量a的值,只会将字符'一'原样输出。

int a=5,b=4,c=3,d=2;if(a>b>c) printf("%d",d);else if((c-1>=d...
程序输出3 >是从左往右结合;所以a>b返回1,然后1>c返回0,即false,所以判断((c-1>=d)==1), 由于减号优先级高于>=;所以先计算c-1,返回2 2>=d返回1,1==1结果是true,所以输出d+1=3.

void main() {int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\\n",d...
先判断A>B 因为成立 所以A>B是正确的 所以A>B的值为 1 (1表示TRUE,0表示FALSE) 然后 就变成 1和C比较了 当然1小于C 所以第一个IF 不满足 满足第二个IF 所以就输出2+1 =3 了

main(){ int a=5,b=4,c=3,d=2; if(a>b>c) printf(“%d
C语言中不能用 a > b > c 这样的表达式来判断a, b, c 之间的大小。正确的表达式应为: if (a > b && b > c)具体可以找一本C语言基础的书籍看看

...程序段的输出结果是___3,5,5___3___。 int a=3
第一个if不满足条件.然后执行c=a; ,即c=3.然后第二个if也不满足条件.所以直接输出. 3,5,3 也就是俩个if后面的语句 a=b;和c=b;都不执行.

int a=5,b=4,c=3,y;表达式y=a>b>c值为多少?说说为什么!
先判断a>b,得到的是5>4结果为真,也就是用值1表示,然后判断(a>b)>c,也就是1>3,结果为假,用值0表示,最后把这个假赋值给y,所以y的值为0。

...main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\\n",d); }...
0 关键是a>b>c,你应该看成(a>b)>c,先计算a>b,结果是真实的,也就是1,接着计算1>c,结果是false,也就是0,所以d=0,这是考察编程中的运算符,蛮基础的~~

...main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\\n",d); }...
a>b>c是从左向右计算的:(a>b)>c,先计算a>b结果为真,也就是1,再用这个结果计算1>c,结果为假。

...main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d",d);}输出...
a>b为真,所以这个表达式的值是1 然后这个表达式的值(1)和c比较,1>c为假,所以表达式a>b>c的值是0 所以d=0 有问题继续 谢谢采纳

相似回答