C语言中关于return语句

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:30:44
有如下程序:
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,为什么不是D?

按流程讲吧
int a=10;
printf("%d\n",sub(a));

n是10,if(n<5) return 0;不符合,转下条语句
else if(n>12) return 3;不符合,转下条语句
return 1;
返回后程序不会再执行int sub(int n)这个函数里的其他语句了,除非有循环什么的,所以结果是1

因为n的数值为10,不在(n<5) return 0;
和(n>12) return 3; ,所以运行return 1;