有两道VB的题目需要高手指点

来源:百度知道 编辑:UC知道 时间:2024/06/16 11:46:47
1. sub subP(p() as integer)
for i=1 to 4
B(i)=2*i
next i
end sub
private sub command1_click()
dim a(1 to 4) as integer
a(1)=5
a(2)=6
a(3)=7
a(4)=8
subP a()
for i=1 to 4
print a(i)
next i
end sub
运行上面的程序,单击命令按钮,输出结果为:___

2.在窗体上画一个命令按钮和两个标签,名称为command1 label1 label 2
private sub command1_click()
A=0
for i=1 to 10
A=a+1
B=0
for j=1 to 10
A=a+1
B=b+2
next j
next i
label1.caption=str(a)
label2.caption=str(b)
end sub
程序运行后。单击命令按钮,label1和label 2中显示的内容分别是:

注:请高手做好题目后,告诉我到底步骤是怎么样的,最好具体点,我是VB初学者,所以很不精通,希望分析的透彻点,谢谢了
四级的那位高手 你是对的,但我不是要放到VB环境去执行,我要的是解题思路,如果去考VB的笔试旁边可不会提供电脑啊 第一题我要思路,谢谢!

1的结果为
2
4
6
8
提示:数组是按ByRef方式来传传递参数的
2的结果为
label1内容:110
label2内容:20
步骤:把程序复制到窗体代码里,加入相应的控件,F5运行
如果想看每一步的结果,按F8单步执行,把鼠标放到正在运行的程序段上可以看到变量的值

对于第一题,我给了你提示了
sub subP(p() as integer)
for i=1 to 4
p(i)=2*i
next i
end sub
上面这段过程,当数组a作为参数传递时,是将a的地址传递给p,也就是说这时的p就是a,对p的操作就是对a的操作,但假如有下面一段程序
a=5
sub subP(byval p as integer)
p=2
end sub
这时调用subP a,a的结果还是5,因为这时a是把值给了p,对p的操作不会影响a
具体的你应该仔细看看书

1.5 6 7 8
2.110 20

第一题.不知道你程序是否全部打正确了,如果真的正确了,那么答案应该是5,6,7,8(出题太没水平了!)
第二题.

private sub command1_click() '按纽click事件
A=0 '初始A
for i=1 to 10 '进入第一层循环
A=a+1 'A自加
B=0 'B置0
for j=1 to 10 '进第2层循环
A=a+1 'a再自加(假设程序第一次进循环,那么这时A=2,因为前面已经加过一次了)
B=b+2'B自加2,循环10次应该是20,由于在循环前,B始终置0,所以B最后必定为20
next j 'J自加1并跳转到对应for语句处进行循环判断
next i 'I自加1并跳转到对应for语句处进行循环判断
label1.caption=str(a)