VB问题 单击一次命令按钮Command1后

 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
网海1书生
科技发烧友

2017-01-18 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26234

向TA提问 私信TA
展开全部
这里面有两个关键点要注意:
1、P(I)、P(I + 1)、P(I + 2)这三次调用中,P(I)的参数是变量,所以是传址调用,函数里面对形参N的修改,会直接改变实参I的值(会变为4),而P(I + 1)和P(I + 2)的参数是表达式,所以是传值调用,N的值不会改变I的值。因此,P(I)运行完毕,I=4,而P(I + 1)运行完毕,I仍然是4;
2、Sum是静态变量,它的值会保持上一次运行后的值,不会被初始化。
因此:
S = P(I) + P(I + 1) + P(I + 2)
= P(1) + P(I + 1) + P(I + 2)
= 6 + P(5) + P(I + 2)
= 6 + 12 + P(6)
= 6 + 12 + 18
= 36
所以最终结果是36

补充说明,由于在函数P中,N始终都是从1循环到3,所以作为参数的N是没有起到任何作用的,也就是说不管传入什么参数,最终结果都是不变的,比如:
S = P(I + 10) + P(I + 100) + P(I + 1000) = 36
S = P(10) + P(1234) + P(3) = 36
S = P(0) + P(1) + P(2) = 36
……
换句话说P的值只跟它的运行次数有关,第一次6,第二次12,第三次18……,比如:
S = P(1) = 6
S = P(1) + P(1) = 6 + 12 = 18
S = P(1) + P(1) + P(1) = 6 + 12 + 18 = 36
……
因此尽管我上面说的第一个关键点看起来很烧脑,但其实并没什么卵用,真正起作用的是第二点。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式