为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
包小龙虾 2018-08-04 21:07:56
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


查看完整回答
1 反对 回复 2018-08-04
?
onemoo

TA贡献883条经验 获得超454个赞

我假定你已经看过了我对“表达式有值”的讲解。那么在理解了这点之后,我们来看下这个代码的执行。

n 的初值为 5

在 if 语句的条件判断部分里,判断的是“n++ 表达式”和 6 的关系。还记得吧,“n++ 表达式”的值就是 n 自增前的值,也就是 5。那么 5 不大于等于 6,所以条件为否,执行流程进入 else 中。

注意,if 的条件判断结束时也是序列点,所以能够确定在进入分支时,n 肯定自增为 6 了。

else 中只有一个 printf 语句,再次注意,printf 打印的是“++n 表达式”的值。 前置自增表达式的值就是操作数自增之后的值。 那么“++n 表达式”的值就是 7。

查看完整回答
1 反对 回复 2018-08-09
  • 2 回答
  • 0 关注
  • 1014 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信