早教吧作业答案频道 -->其他-->
请教一道VB的程序阅读题执行下面的程序,第一行结果是;第二行结果是;第三行结果是。PrivateSubFormLoad()test1EndSubPrivateSubtext(xAsInteger)x=x*x+1Ifx<6ThenCalltest(x)
题目详情
请教一道VB的程序阅读题
执行下面的程序,第一行结果是____;第二行结果是____;第三行结果是_____。
Private Sub Form_Load()
test1
End Sub
Private Sub text(x As Integer)
x = x * x + 1
If x < 6 Then Call test(x)
x = x * 2 + 1
Form1.Print x
End Sub
问题:答案是53、107、215
我想要具体的解题过程
执行下面的程序,第一行结果是____;第二行结果是____;第三行结果是_____。
Private Sub Form_Load()
test1
End Sub
Private Sub text(x As Integer)
x = x * x + 1
If x < 6 Then Call test(x)
x = x * 2 + 1
Form1.Print x
End Sub
问题:答案是53、107、215
我想要具体的解题过程
▼优质解答
答案和解析
首先, test1应写做test 1,中间加个空格。其次,test 1函数调用不应该在form_load中使用,因为form_load在执行时窗口还并未创建完成,此时的显示输出会在窗口创建完成后被窗口重绘刷新掉。所以可以在窗口中添加一个按钮,在按钮中执行 test 1
再次,Private Sub text(x As Integer) 函数定义名称写错,应该改写成Private Sub test(x As Integer)
下面,我们说明一下执行test1 1的运行过程。
1. x=x*x+1 此时x=1 所以执行后x=1*1+1=2
2. 执行if语句时,因为 2<6 所以执行调用call test(2),程序进入递归调用,第一次压栈
3. 再次执行x=x*x+1 此时x=2 ,所以 执行后 x=x*x+1=5
4. 执行if语句时,因为 5<6 所以执行调用call test(5),程序进入递归调用,第二次压栈
5. 再次执行x=x*x+1 此时x=5 ,所以 执行后 x=x*x+1=26
6. 执行if语句时,因为 26>6 程序继续下行执行 x=x*2+1 ,此时x=26,执行后x=53
7. 在窗口中输出53
8. 递归返回,第一次退栈
9. 再次执行x=x*2+1语句,此时x=53,执行后x=107
10. 在窗口中输出107
11. 递归返回,第二次退栈, 此时堆栈已完全退栈到栈底
12. 再次执行x=x*2+1语句,此时x=107,执行后x=215
13. 在窗口中输出215
14. 因为堆栈已回到栈底,递归完成,所以程序执行完毕
若满意答案,请及时采纳,谢谢
再次,Private Sub text(x As Integer) 函数定义名称写错,应该改写成Private Sub test(x As Integer)
下面,我们说明一下执行test1 1的运行过程。
1. x=x*x+1 此时x=1 所以执行后x=1*1+1=2
2. 执行if语句时,因为 2<6 所以执行调用call test(2),程序进入递归调用,第一次压栈
3. 再次执行x=x*x+1 此时x=2 ,所以 执行后 x=x*x+1=5
4. 执行if语句时,因为 5<6 所以执行调用call test(5),程序进入递归调用,第二次压栈
5. 再次执行x=x*x+1 此时x=5 ,所以 执行后 x=x*x+1=26
6. 执行if语句时,因为 26>6 程序继续下行执行 x=x*2+1 ,此时x=26,执行后x=53
7. 在窗口中输出53
8. 递归返回,第一次退栈
9. 再次执行x=x*2+1语句,此时x=53,执行后x=107
10. 在窗口中输出107
11. 递归返回,第二次退栈, 此时堆栈已完全退栈到栈底
12. 再次执行x=x*2+1语句,此时x=107,执行后x=215
13. 在窗口中输出215
14. 因为堆栈已回到栈底,递归完成,所以程序执行完毕
若满意答案,请及时采纳,谢谢
看了 请教一道VB的程序阅读题执行...的网友还看了以下:
1234……第一行2345……第二行3456……第三行请问第15行与第20行的交叉点的数是?请问第 2020-05-23 …
请教一道VB的程序阅读题执行下面的程序,第一行结果是;第二行结果是;第三行结果是。PrivateS 2020-06-12 …
请专家用vba帮忙按大小排序情形一:原表排序后表A列A列第1行120第1行012第2行210第2行 2020-07-18 …
正整数按下图的规律排列,请写出20行21列数字第一列第二列第三列第四列第五列第一行1251017. 2020-07-25 …
第1列第2列第3列第4列第5列第1行2468第2行16141210第3行18202224第4行……2 2020-10-30 …
请高手解决数学题数字呈金字塔形,第一行-1,第二行从左至右为:2,-3,4,第三行:-5,6,-7, 2020-11-20 …
请各位帮帮忙写一首诗,七言七句律诗,第一行第五个字是“此”,第二行第二个字是“生”,第三行第一个.. 2020-11-27 …
数字趣味题(初中),请告知计算过程将数字1,-1/2,1/3,-1/4,1/5……,按照下列方式排列 2020-11-27 …
请写出第45行第46列的数字.第一行1.2.5.10.17第二行4.3.6.11.18第三行9.8. 2020-12-15 …
第一列第二列第三列第四列第五列第六列第一行129102526第二行438112427第三行56712 2020-12-15 …