二级C语言-4 送分

来源:百度知道 编辑:UC知道 时间:2024/05/29 16:38:43
19.若变量已经正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b;c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出的结果是
A)程序段有语法错 B)3,4,3 C)3,5,5 D)3,5,7

为什么答案是选B,谢谢
关键是B也不能等于4啊

这个程序本身就不是很规范
int a=3,b=5,c=7;
if(a>b)
{
a=b;
}
c=a;
if(c!=a)
{
c=b;
}
printf("%d,%d,%d\n",a,b,c); 这样的输出结果是3 5 3

int a=3,b=5,c=7;
if(a>b)
{
a=b;
c=a;
}
if(c!=a)
{
c=b;
}
printf("%d,%d,%d\n",a,b,c); 而这样的结果则是3 5 5

if(a>b) a=b;c=a;
注意没有大括号,C=A必定会执行

int a=3,b=5,c=7;
if(a>b)//a<b
a=b;//不走
c=a;//c=a=3
if(c!=a) //c==a
c=b;//不走
printf("%d,%d,%d\n",a,b,c); //所以a=3,b=5,c=3