
C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
下面程序运行结果是。#include<stdio.h>voidmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(...
下面程序运行结果是 。
#include <stdio.h>
void main()
{
int a,b,c,d,x;
a=c=0;
b=1;d=20;
if(a) d=d-10;
else if(!b)
if(!c)x=15;
else x=25;
printf("%d\n",d);
}
(A)20 (B)25 (C)15 (D)10
答案:A
最后一个else不是对应以上所有吗,为什么不是25? 展开
#include <stdio.h>
void main()
{
int a,b,c,d,x;
a=c=0;
b=1;d=20;
if(a) d=d-10;
else if(!b)
if(!c)x=15;
else x=25;
printf("%d\n",d);
}
(A)20 (B)25 (C)15 (D)10
答案:A
最后一个else不是对应以上所有吗,为什么不是25? 展开
7个回答
展开全部
加上括号你就明白了,按照else与最近的if配合这个规则,这段连续if-else等同如下代码:
if(a){
d=d-10;
}else if(!b){
if(!c){
x=15;
}else{
x=25;
}
}
所以答案是A。
if(a){
d=d-10;
}else if(!b){
if(!c){
x=15;
}else{
x=25;
}
}
所以答案是A。
展开全部
#include <stdio.h>
void main()
{
int a,b,c,d,x;
a=c=0;
b=1;d=20;
if(a) d=d-10;
else if(!b)
if(!c)x=15;
else x=25;
printf("%d\n",d);
}
最简单的,这里面跟打印出来的d有关的就只有一句。
if(a) d=d-10
a=0,所以if(a)不会进去。d的值不会改变。就这么简单,d为初值20
void main()
{
int a,b,c,d,x;
a=c=0;
b=1;d=20;
if(a) d=d-10;
else if(!b)
if(!c)x=15;
else x=25;
printf("%d\n",d);
}
最简单的,这里面跟打印出来的d有关的就只有一句。
if(a) d=d-10
a=0,所以if(a)不会进去。d的值不会改变。就这么简单,d为初值20
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
else是与和它最近的if配对的 所以最后一个else是与最后一个if配对的#include <stdio.h>
int main()
{
int a,b,c,d,x;
a=c=0;
b=1;d=20;
if(a) d=d-10;
else if(!b)
{
if(!c)x=15;
else x=25;//所以这里的大括号加不加都一样的
}
printf("%d\n",d);
}
int main()
{
int a,b,c,d,x;
a=c=0;
b=1;d=20;
if(a) d=d-10;
else if(!b)
{
if(!c)x=15;
else x=25;//所以这里的大括号加不加都一样的
}
printf("%d\n",d);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然不是,第一个else对应第一个if,第二个else对应第二个if 所以相当于d的值没变过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的是d的值,d并没有参加运算,所以这个结果就应该是20跟前面的if嵌套语句无关
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-17
展开全部
结果让输出d,以为第一个if语句不成立,所以不对d的值做改变,而且最后一个else应该与他上面的那if是嵌套的,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |