有以下程序: 程序运行后的输出结果是_________________

2024-12-05 00:49:44
推荐回答(5个)
回答(1):

恩,是2啊。C语言规定,如果IF后面没有{},那就只包括IF后面的那条语句,但由于这道题IF后面还是IF ELSE语句(他们是一条语句)。所以相当于
main( )
{
int a=3,b=4,c=5,d=2;
if (a>b)
{
if (b>c)
printf("%d",d++ + 1);
else
printf("%d",++d + 1);
}
printf("%d\n", d);
}
第一个if条件就不符合了,所以直接执行最后的输出语句,所以是2

回答(2):

加上{} 你就非常容易明白
main( )
{
int a=3,b=4,c=5,d=2;
if (a>b)
{ // a if (b>c)
printf("%d",d++ + 1);
}
else
{
printf("%d",++d + 1); //++d后 d==3 然后d+1输出就是4
}

}

回答(3):

答案是2.
main( )
{
int a=3,b=4,c=5,d=2;
if (a>b)
{
if (b>c)
printf("%d",d++ + 1);
else
printf("%d",++d + 1);
}
printf("%d\n", d);
}
因为aelse与最近的if搭配。

回答(4):

楼主你运行是4??可是刚我运行了下结果是2
个人看法此题可以如下添加括号,不影响结果
main( )
{
int a=3,b=4,c=5,d=2;
if (a>b){//
if (b>c)
printf("%d",d++ + 1);
else
printf("%d",++d + 1);}//
printf("%d\n", d);
}
这样添加括号的原因在于,else与相邻最近的if相匹配,所以结果是2,若是与题目答案不符,只能是你贴错了,或是题目错了。望能帮助楼主

回答(5):

答案当然是四了啊
if假设的条件根本不成立只是d本身自增然后加一结果肯定是四啊