下列程序段输出的结果是__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 了啊。

温馨提示:答案为网友推荐,仅供参考
相似回答