解释C程序题

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:22:55
main ( )
{ int a,b=1,c=0;
if(b!=0) a=5;
printf (“a=%d\t”,a);
if (b==0) a=3;
else a=5;
printf (“a=%d\t\n”,a);
a=1;
if (c<0)
if(b<0) a=3;
else a=5;
printf(“a=%d\t\n”,a);
if (c=b<0) a=3;
else if (b==0) a=5;
else a=7;
printf (“a=%d\t”,a);
printf(“c=%d\t\n”,c);
if (a=c=b) a=3;
printf (“a=%d\t”,a);
printf(“c=%d\t\n”,c);
}
我怎么算出来得:
a=5 a=5
a=5
a=7 c=1
a=3 c=3
我就是不知道它是怎么搞的啊?请问一下那位高手能详解一下这个程序题吗?我在这儿谢谢了啊!
a=5 a=5
a=1
a=7 c=0
a=3 c=1
这是正确答案!

main ( )
{
int a,b=1,c=0;
if(b!=0)
{a=5;}
printf (“a=%d\t”,a);//输出a=5
if (b==0)
{a=3;}
else
{a=5;}
printf (“a=%d\t\n”,a); //输出a=5
a=1;
if (c<0) //因为此时c=0,由于是内嵌if,所以下面的if和else都不做
if(b<0)
{a=3;}
else
{a=5;}
printf(“a=%d\t\n”,a); //输出a=1
if (c=b<0) //因为<优先级高于=,所以可以理解为c=(b<0),即不成立
{a=3;}
else if (b==0)
{a=5;}
else
{a=7;}
printf (“a=%d\t”,a); //输出a=7
printf(“c=%d\t\n”,c); //输出c=0
if (a=c=b) //是=而不是==
{a=3;}
printf (“a=%d\t”,a); //输出a=3
printf(“c=%d\t\n”,c); //输出C=1
好了,我把一楼的写错的2个地方改过来了!这就是正确答案咯!

main ( )
{
int a,b=1,c=0;
if(b!=0)
{a=5;}
printf (“a=%d\t”,a);//输出a=5
if (b==0)
{a=3;}
else
{a=5;}
printf (“a=%d\t\n”,a); //输出a=