继续VB 题求解 输出的结果是 第一行5 第二行7 第三行12 第四行12 第五行 13 第六行 25 想知道二三行怎么来
OptionExplicitPrivateSubCommand1_Click()DimiAsInteger,sAsIntegerFori=1To9Step3s=fun((...
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, s As Integer
For i = 1 To 9 Step 3
s = fun((i)) + fun(i)
Print s
Next i
End Sub
Private Function fun(m As Integer) As Integer
Static a As Integer
If m Mod 2 = 0 Then
a = a + 1
m = m + 1
Else
a = a + 2
m = m + 2
End If
fun = a + m
Print fun
End Function分享到:
检举 | 今天 17:17 满意回答 显示超过3行是因为每次循环时主过程Command1_Click中运行1次Print s,s = fun((i)) + fun(i)
中调用fun函数运行2次Print fun。
fun((i))中(i)是表达式,其值是i的值,fun函数的参数m是按地址传递,fun函数运行时会改变参数m的值,fun((i))中是通过表达式(i)传递i的值给fun函数,运行是不会改变i的值。fun(i)运行是会改变i的值。 展开
Private Sub Command1_Click()
Dim i As Integer, s As Integer
For i = 1 To 9 Step 3
s = fun((i)) + fun(i)
Print s
Next i
End Sub
Private Function fun(m As Integer) As Integer
Static a As Integer
If m Mod 2 = 0 Then
a = a + 1
m = m + 1
Else
a = a + 2
m = m + 2
End If
fun = a + m
Print fun
End Function分享到:
检举 | 今天 17:17 满意回答 显示超过3行是因为每次循环时主过程Command1_Click中运行1次Print s,s = fun((i)) + fun(i)
中调用fun函数运行2次Print fun。
fun((i))中(i)是表达式,其值是i的值,fun函数的参数m是按地址传递,fun函数运行时会改变参数m的值,fun((i))中是通过表达式(i)传递i的值给fun函数,运行是不会改变i的值。fun(i)运行是会改变i的值。 展开
2个回答
展开全部
第一行:
a=a+2=2
m=m+2=1+2=3
fun=a+m=2+3=5
所以第一行是5
第二行:
a=a+2=2+2=4
m=m+2=1+2=3
fun=a+m=4+3=7
所以第二行是7
第三行:
s = fun((i)) + fun(i) = 5+7=12
所以第三行是12
第四行:
a=a+1=4+1=5
m=m+1=6+1=7 '这是因为上面第二行中是按址传递,所以i变为3,再递增3后就是6了
fun=a+m=5+7=12
所以第四行是12
第五行:
a=a+1=5+1=6
m=m+1=6+1=7
fun=a+m=6+7=13
所以第五行是13
第六行:
s = fun((i)) + fun(i) = 12+13=25
所以第六行是25
第七行:
没有了,由于上面第五行中i已被改为7,再递增3的话就变为10,超出循环上限9,所以退出了
a=a+2=2
m=m+2=1+2=3
fun=a+m=2+3=5
所以第一行是5
第二行:
a=a+2=2+2=4
m=m+2=1+2=3
fun=a+m=4+3=7
所以第二行是7
第三行:
s = fun((i)) + fun(i) = 5+7=12
所以第三行是12
第四行:
a=a+1=4+1=5
m=m+1=6+1=7 '这是因为上面第二行中是按址传递,所以i变为3,再递增3后就是6了
fun=a+m=5+7=12
所以第四行是12
第五行:
a=a+1=5+1=6
m=m+1=6+1=7
fun=a+m=6+7=13
所以第五行是13
第六行:
s = fun((i)) + fun(i) = 12+13=25
所以第六行是25
第七行:
没有了,由于上面第五行中i已被改为7,再递增3的话就变为10,超出循环上限9,所以退出了
2012-10-05
展开全部
i=1时,执行语句s=fun((i))+fun(i)时,会输出 第一行5 第二行7,执行该语句后m=3
执行语句Print s会输出第三行12
执行next i 语句后i变为6
i=6时,执行语句s=fun((i))+fun(i)时,会输出 第四行12第五行13,执行该语句后m=7
执行语句Print s会输出第六行25
执行next i 语句后i变为10,超过9,循环结束
执行语句Print s会输出第三行12
执行next i 语句后i变为6
i=6时,执行语句s=fun((i))+fun(i)时,会输出 第四行12第五行13,执行该语句后m=7
执行语句Print s会输出第六行25
执行next i 语句后i变为10,超过9,循环结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询