几道vb题求详解

有几道题不太明白求高手详解~越详细越好~感激~~~1、PrivateSubCommand1_Click()Dimaa=Array(1,2,3,4,5,6,7)Fori=L... 有几道题不太明白求高手详解~越详细越好~感激~~~
1、
Private Sub Command1_Click()
Dim a
a = Array(1, 2, 3, 4, 5, 6, 7)
For i = LBound(a) To UBound(a)
a(i) = a(i) * a(i)
Next i
Print a(i)
End Sub
运行后为什么会出现“下标越界”?
2、
option base 1
Private Sub Form_Click()
Dim arr(3) As Integer
For i = 1 To 3
For j = 1 To 3
arr(j) = arr(i) + 1
Next j
Next i
Print arr(3)
End Sub

结果是多少?没有给出arr(3)的数值怎能计算
3、
private x as integer
private sub command1-click()
x=5:y=3
call proc(x,y)
label1.caption= x
label2.caption= y
end sub
private sub proc(byval a as integer,byval b as integer)
x=a*a
y=b+b
end sub
不太明白按值传递和按地址传递,能不能解释一下为什么结果不是5和3 ?
展开
 我来答
远风的梦想家
2010-07-11 · TA获得超过2550个赞
知道大有可为答主
回答量:1389
采纳率:0%
帮助的人:0
展开全部
1、
Private Sub Command1_Click()
Dim a
a = Array(1, 2, 3, 4, 5, 6, 7)
For i = LBound(a) To UBound(a)'for循环每次对i加1加到Ubound(a)为止,当加到这个值的时候,
a(i) = a(i) * a(i)
Next i
Print a(i)'循环结束i还会再加1,这个时候i的值是Ubound(a)+1已经超过数组范围了,所以就越界了
End Sub

2、
option base 1
Private Sub Form_Click()
Dim arr(3) As Integer'没有给初始值的情况下默认值就是0
For i = 1 To 3
For j = 1 To 3
arr(j) = arr(i) + 1
Next j
Next i
'这两层循环执行操春春帆作是:
'a(1) = a(1) + 1 此时a(1) = 1
'a(2) = a(1) + 1 此时a(2) = 2
'a(3) = a(1) + 1 此时a(3) = 2
'a(1) = a(2) + 1 此时a(1) = 3
'a(2) = a(2) + 1 此时a(2) = 3
'a(3) = a(2) + 1 此时a(3) = 4
'a(1) = a(3) + 1 此时a(1) = 5
'a(2) = a(3) + 1 此时a(2) = 5
'a(3) = a(3) + 1 此时a(3) = 5

Print arr(3)'所以输出结果是5
End Sub

3、
private x as integer
private sub command1-click()
x=5:y=3
call proc(x,y)
label1.caption= x
label2.caption= y
end sub
private sub proc(byval a as integer,byval b as integer)'按值传递的简单理解就是这个过程里怎么操作都不影响调用它的过程里的变量,也就是说这里的对x y赋值不影响调用森森它的值,但是因为x 已经声明为模块级的全局变量了(声明的语句在外面就可以理解为全局变量),那么对x的修改是会影响到外面的x的值的
x=a*a'a 的值调用扒雹的时候传入的是5,所以x=5×5=25
y=b+b'y不是全局变量怎么修改都没关系,所以最终输出25 3
end sub
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
百度网友2032eaa
2010-07-10 · TA获得超过809个赞
知道大有可为答主
回答量:2149
采纳率:100%
帮助的人:1814万
展开全部
1、每循环一次 i的值加1 所以循环结束后 i的值为7 因此越界

2、arr定义为整形数组 因此对应项的默认值是0

3、按如稿值传递差森:原值渣庆孝不改变

按地址传递:原值可以改变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e42a559
2010-07-11 · 超过14用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:41.9万
展开全部
(1)、
Next i
Print a(i)这两句调换一下位置!
(2)、
VB里毕握不一样手渗庆的地方就是定义的变量的初始植为0
(3)、
按植传递的话,内存为形参和实参分配了不同的地址,形参的改变不影响实参的植,而按地址传递的话,实参和形参公用同一个地址,所以形参一改喊凯变,实参也跟着改变!!
不知道我这样讲你是否能明白!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式