一道VB题 求解答

(8)窗体上有名称为Command1的命令按钮。事件过程及2个函数过程如下:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z
x = 3
y = 5
z = fy(y)
Print fx(fx(x)), y
End Sub
Function fx(ByVal a As Integer)
a = a + a
fx = a
End Function
Function fy(ByRef a As Integer)
a = a + a
fy = a
End Function
运行程序,并单击命令按钮,则窗体上显示的2个值依次是【12】12和【13】10。
我知道第二个空是填10,但第一个空我觉得是3啊,因为传值形式不是不改变实参的大小吗?x不是始终是3吗?

依次是【12】12和【13】10。

这是对的...因为他 Print 的是 fx(fx(x)), y

不是 x, y

x 是 3 没错,但 fx(fx(x)) 是 12
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-09
你只有一个print语句。
输出应该是12和10.
fx(fx(x)),是做两次计算,最里面的括号fx(x)的结果是6,再进行一次fx(),得12.,但计算到最后,x的值也一直没变,始终是3.

不知道你能不能理解。
第2个回答  2010-07-09
我觉得你好像没搞清除function fx 和function fy的意思,function 表示定义函数。如下
Function fx(ByVal a As Integer)
其中ByVal a As Integer表示函数fx中的自变量为a
a = a + a
fx = a
End Function
Command1_Click() 事件中print fx(fx(x)),相当于调用了两次fx函数。
第一次调用,a=x=3,即fx(3)=3+3=6
第二次调用,a=fx(3)=6 ,即fx(6)=6+6=12

其它的不说了,其他人都说的挺好!
第3个回答  2010-07-11
fy(ByRef a As Integer)这个是按地址传植,形参值的改变会影响实参的值!

VB问题,求具体解释
VB在进行运算的过程,需要用存储单元存放中间运算过程,而这个存储单元的类型是根据常数的类型决定的。例如:x = 100 * 2 VB根据100和2决定用整型来存储100*2的积。现在第3题:Print 200 * True * 200 会采用整型来存储 200 * True * 200 的积,所以结果就产生“溢出”。(True转换为-1)对于...

VB计算求解答,要过程,谢谢啦
if k>=1 then a=3 \/\/此时条件满足,a=3 if k>=2 then a=2 \/\/条件满足, a=2 if k>=3 then a=1\/\/条件不满足,a不变,还是a=2 print a \/\/打印a的结果: 2 i=1 to 15 x=2*i-1 if x mod 3=0 then s=s+1 \/\/统计x被3整除的次数 因为i最多循环15次,所以s肯定小于1...

vb题目求详解
一、函数P1有两个参数,第一个是默认寻址(即形参的变化会影响到实参),第二个是寻值(即形参的变化不会影响到实参)。所以,第一次执行P1(a,b)时,b对应的y的改变不会影响b的值;第二次执行P1(b,a)时,a对应的y的改变也不会影响a的值;二、comnand_click() 事件中变量的z,与P1...

关于VB考试的,都是很基础的,但我从来没听过课,求解答!感激不尽,尽快啊...
答案:C,其中QBColor后跟参数应为QBColor(vaule)二、 填空题1 ( 每题10分,共2题,共20分 )16. 设有如下通用过程:Public Sub fun(a() As Integer, x As Integer)For i = 1 To 5 x = x + a(i)Next End Sub 在窗体上画一个名称为Text1的文本框和一个名称为Command1的命...

vb求解释,不只是如何解答的
打个比方:下面是六个乒乓球,按编号从左到右顺序排列:①②③④⑤⑥ 现在要从中取出第1个,那么剩下的乒乓球就变为:②③④⑤⑥ 请注意,这个时候原来的第2个已经变为了第1个,第3个变为了第2个,以此类推(下同)现在要从中取出第2个,那么剩下的乒乓球就变为:②④⑤⑥ 同理,继续取出...

VB 求解答 创建函数过程求约数、因数、素数
约数:设a=1;然后算输入的数除以a,如果不是小数则输出a,然后a+=1,重复,知道a等于输入的数 因数:把textbox里的值设为input,设a=2,然后这个数除以a,如果除尽,则输出a,并且input\/=a,然后再试一遍同样的a,如果又可以除尽,在输出a,input\/=a,直到不能再被a整除,a+=1,重复 素数...

求用VB解答
并设置定时器控件的interval属性为0 Dim t As Integer Private Sub Form_Load()t = 60 Label1.Caption = t Label1.Alignment = 2 Command1.Caption = "开始"Timer1.Interval = 1000 Label1.FontSize = 24 End Sub Private Sub Timer1_Timer()t = t - 1 If t > 0 Then Label1.Caption...

VB题如图,第12题,求过程与解答
循环变量K,循环初值5,循环终值1,步长-1:循环前X=0 第一次循环:K=5,x=k+x*10=5+0*10=5 第2次循环:K=4,X=k+x*10=4+5*10=54 第3次循环:k=3,x=k+x*10=3+54*10=543 第4次循环:k=2,x=2+543*10=5432 第五次循环:k=1,x=1+5432*10=54321 第六次循环:k=0<...

...用VB语言编程解决的实际问题,并介绍解决问题的思路??? 求解答...
子,依次类推。若对某一个整形y经过上述5次迭代都是整数,最后的结果即是所求。于是,x取值从1开始,y取值从5x+1开始,按y*5\/4+1进行5次迭代中若某一次不是整形则返回x曾1,再试,直到5次迭代的y全是整数,打印输出y。。一般地,对n(n>1)个水手,按y*n(n-1)+1进行迭代可得n个水手...

如图,是一道VB程序填空题,求详细解答第二问和第三问。关于数组。_百度...
因为第一句 a(1,1)=1 也只有一个 那么 当i=1时 j等于除1外的其他值时 也没有被赋值 +10 i=2时 a(2,1)=1 a(2,2)=1 for j= 2 to 2-1 起始 大于 终止值 所以不循环 也就是当i=2时 j=0-10中只有1,2有被赋值 +9 i=3时 a(3,1)=1 a(3,3)=1 for j = 2 to 3...

相似回答
大家正在搜