一道VB题——窗体上有text1、text2两个文本框和一个命令按钮command1,编写下列程序:
窗体上有text1、text2两个文本框和一个命令按钮command1,编写下列程序:dimyasintegerprivatesubcommand1_click()dim...
窗体上有text1、text2两个文本框和一个命令按钮command1,编写下列程序:
dim y as integer
private sub command1_click()
dim x as integer
x=2
text1.text=fun2(fun1(x),y)
text2.text=fun1(x)
end sub
private function fun1(x as integer) as integer
x=x+y:y=x+y
fun1=x+y
end function
private function fun2(x as integer,y as integer) as integer
fun2=2*x+y
end function
当单击一次和单击两次命令按钮后,文本框text1和text2内的值分别是?
卷子上的答案是 (c) 10 10
58 58
这道题我怎么算也算不对,跟卷子上的答案不一样,那问朋友算出给我说下过程,谢谢! 展开
dim y as integer
private sub command1_click()
dim x as integer
x=2
text1.text=fun2(fun1(x),y)
text2.text=fun1(x)
end sub
private function fun1(x as integer) as integer
x=x+y:y=x+y
fun1=x+y
end function
private function fun2(x as integer,y as integer) as integer
fun2=2*x+y
end function
当单击一次和单击两次命令按钮后,文本框text1和text2内的值分别是?
卷子上的答案是 (c) 10 10
58 58
这道题我怎么算也算不对,跟卷子上的答案不一样,那问朋友算出给我说下过程,谢谢! 展开
3个回答
2013-07-10
展开全部
这题其实很容易理解的,关键是要理解全局变量和局部变量的不同,还有函数参数按地址传递的作用。y是个全局变量,x是个局部变量,2个函数的参数都是按地址传递的。
第1次单击的时候,y的初值是0,x的初值是2。执行text1.text=fun2(fun1(x),y)时,先是用x作为实参调用fun1。在执行x=x+y:y=x+y后,x的值是2,y的值也是2。函数返回x+y的值4。然后再把fun1的返回值4和y作为参数调用fun2,结果是10。执行text2.text=fun1(x)时,用x作为参数调用fun1。在执行x=x+y:y=x+y后,x的值是4,y的值是6。函数返回x+y的值10。
第2次单击的时候,y的初值是6,x的初值是2。执行text1.text=fun2(fun1(x),y)时,先是用x作为实参调用fun1。在执行x=x+y:y=x+y后,x的值是8,y的值是14。函数返回x+y的值22。然后再把fun1的返回值22和y作为参数调用fun2,结果是58。执行text2.text=fun1(x)时,用x作为参数调用fun1。在执行x=x+y:y=x+y后,x的值是22,y的值是36。函数返回x+y的值58。
第1次单击的时候,y的初值是0,x的初值是2。执行text1.text=fun2(fun1(x),y)时,先是用x作为实参调用fun1。在执行x=x+y:y=x+y后,x的值是2,y的值也是2。函数返回x+y的值4。然后再把fun1的返回值4和y作为参数调用fun2,结果是10。执行text2.text=fun1(x)时,用x作为参数调用fun1。在执行x=x+y:y=x+y后,x的值是4,y的值是6。函数返回x+y的值10。
第2次单击的时候,y的初值是6,x的初值是2。执行text1.text=fun2(fun1(x),y)时,先是用x作为实参调用fun1。在执行x=x+y:y=x+y后,x的值是8,y的值是14。函数返回x+y的值22。然后再把fun1的返回值22和y作为参数调用fun2,结果是58。执行text2.text=fun1(x)时,用x作为参数调用fun1。在执行x=x+y:y=x+y后,x的值是22,y的值是36。函数返回x+y的值58。
2013-07-10
展开全部
第一个是10 text1.text=fun2(fun1(x),y) 中,经过FUN1(X)得出为4然后代入FUN2 2*4+2=10喽
第二个看不出来``
第二个看不出来``
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-10
展开全部
我算出的第一问的答案是10,第二问是58
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询