​72. 以下程序的运行结果是( )。麻烦会的大神详细解析下,谢谢

72. 以下程序的运行结果是( )。
void main( )
{ int n=5;
if(n++>=6)
printf("%d\n",n);
else
printf("%d\n",++n);
}
A. 4
B. 5
C. 6
D. 7

包小龙虾
浏览 1106回答 2
2回答

Eric_温水之蛙

Dif (n++ >=6)     //此时n++是在执行这句判断语句后再做自增操作,此时n=5,所以判断语句进入else. //进入else语句后,n自增,n=6 printf("%d\n",++n);  //此时++n是先执行自增操作后进行print,此时n=6,进行自增操作后,n=7. //然后执行print操作,打印出7

onemoo

我假定你已经看过了我对“表达式有值”的讲解。那么在理解了这点之后,我们来看下这个代码的执行。n 的初值为 5在 if 语句的条件判断部分里,判断的是“n++ 表达式”和 6 的关系。还记得吧,“n++ 表达式”的值就是 n 自增前的值,也就是 5。那么 5 不大于等于 6,所以条件为否,执行流程进入 else 中。注意,if 的条件判断结束时也是序列点,所以能够确定在进入分支时,n 肯定自增为 6 了。else 中只有一个 printf 语句,再次注意,printf 打印的是“++n 表达式”的值。 前置自增表达式的值就是操作数自增之后的值。 那么“++n 表达式”的值就是 7。
打开App,查看更多内容
随时随地看视频慕课网APP