72. 以下程序的运行结果是( )。void main( ){ int n=5;if(n++>=6)printf("%d\n",n);elseprintf("%d\n",++n);}A. 4B. 5C. 6D. 7
2 回答
已采纳
Eric_温水之蛙
TA贡献8条经验 获得超3个赞
D
if (n++ >=6) //此时n++是在执行这句判断语句后再做自增操作,此时n=5,所以判断语句进入else. //进入else语句后,n自增,n=6 printf("%d\n",++n); //此时++n是先执行自增操作后进行print,此时n=6,进行自增操作后,n=7. //然后执行print操作,打印出7
onemoo
TA贡献883条经验 获得超454个赞
我假定你已经看过了我对“表达式有值”的讲解。那么在理解了这点之后,我们来看下这个代码的执行。
n 的初值为 5
在 if 语句的条件判断部分里,判断的是“n++ 表达式”和 6 的关系。还记得吧,“n++ 表达式”的值就是 n 自增前的值,也就是 5。那么 5 不大于等于 6,所以条件为否,执行流程进入 else 中。
注意,if 的条件判断结束时也是序列点,所以能够确定在进入分支时,n 肯定自增为 6 了。
else 中只有一个 printf 语句,再次注意,printf 打印的是“++n 表达式”的值。 前置自增表达式的值就是操作数自增之后的值。 那么“++n 表达式”的值就是 7。
- 2 回答
- 0 关注
- 1104 浏览
添加回答
举报
0/150
提交
取消