一道C语言选择题

有如下程序:intsub(intn){if(n<5)return0;elseif(n>12)return3;return1;if(n>5)return2;}main(){... 有如下程序:
int sub(int n)
{
if(n<5) return 0;
else if(n>12) return 3;
return 1;
if(n>5) return 2;
}
main()
{
int a=10;
printf("%d\n",sub(a));
}
该程序的输出结果是______。
A.0
B.1
C.2
D.3

书上给的答案是B,想请问高手为什么呢?
展开
 我来答
wanglang002004
2011-03-11 · TA获得超过268个赞
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:106万
展开全部
因为C语言是按照顺序往下执行的,一旦执行return语句,后面的就不会再执行。
在这里,
if(n<5) return 0;//flase不返回
else if(n>12) return 3;//false不返回
return 1;//没有判断条件,直接返回1
if(n>5) return 2;//不执行

因此main()函数的执行结果是1.
德昂当
2011-03-11 · TA获得超过2842个赞
知道大有可为答主
回答量:1074
采纳率:100%
帮助的人:742万
展开全部
if(n<5) return 0;
else if(n>12) return 3;
return 1; //5<n<12 到这里就会返回1,不会再执行下面的一句了.
if(n>5) return 2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lijinyu25775
2011-03-11 · 超过12用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:31.4万
展开全部
int sub(int n)
{ //n=10
if(n<5) return 0; //这句不成立
else if(n>12) return 3; //这句也不成立
return 1; //这句执行即返回1
if(n>5) return 2; //这句永远运行不了
}
main()
{
int a=10;
printf("%d\n",sub(a));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-11
展开全部
sub()的意思是当n小于5,则返回0;大于12返回3;如果既不小于5,也不大于12,就返回3;当执行return语句后,不再执行该函数内下面的语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式