int a,b,c;
a=7;b=8;c=9;
if(a>b)
a=b;b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
这个程序段的执行结果是,输出的是a=7 b=9 c=7,正面是验证的运行结果:
分析如下:
因为if(a>b)这个语句后面的执行语句是没有花括号的,所以,实际上它只管一个语句,后面的b=c;和c=a;都是无条件执行的。所以,本题是造势答案B。
应该是选项B, a=7 b=9 c=7,考点是if语句如果没有{ },只管到下面的一句(本例中,a=b;)
简化后: a b c
if(a>b)//不成立 7 8 9
{
a=b;
}
b=c; 7 9 9
c=a; 7 9 7
没了
选B
答案选B
int a,b,c;
a=7;
b=8;
c=9;
if(a>b){
a=b;
}
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
你的程序等同于这个,这样子你看的懂了吗?
if之后条件为真的时候才执行,你这里a>b为假,所以不执行a=b这条语句。
最终输出为7 9 7
b,a