永发信息网

一道VB题 求解!!!!!!!

答案:4  悬赏:80  手机版
解决时间 2021-02-19 22:32
private sub command1_click()
dim x as integer
x=val(inputbox("请输入一个整数“))
fun(x)
end sub
private sub fun(x as integer)
if x mod 2=o then fun(x/2)
print x;
end sub
执行上述过程输入6,结果是?
不要答案!!!要过程!!!!
最佳答案
这是发生递归调用的程序:
在private sub command1_click()里的fun(x),将x=6作为参数,调用自定义过程fun,进入fun;
执行

if x mod 2=0 then fun(x/2) '应该是0,不是字母o吧?

由于x = 6,所以满足x mod 2=0,执行fun(x/2),用3调用自定义过程fun,这里是在过程fun中再一次去调用自定义过程fun,即自己调用自己,叫做递归调用。进入fun;
执行
if x mod 2=0 then fun(x/2)

这次不满足,就执行输出,3
然后要返回调用它的地点,就是返回上一次的 fun处,执行调用语句的下一条语句,就是输出语句,所以输出6。
所以,在窗体上看到的是
3 6

补充语句,关于递归,你可以搜索以下主题:
在VB程序中执行递归调用的执行原理以及过程说明:
看看我的文章。
全部回答
这是因为递归过程调用的结果,其核心语句就是fun(6)。 Private Sub command1_click() Dim x As Integer x = Val(InputBox("请输入一个整数:")) fun (x) End Sub Private Sub fun(x As Integer) If x Mod 2 = 0 Then fun (x / 2) Print x; End Sub 调用时,因为6能被2整除,所以就递归调用fun(3); 3不能被2整除,所以就首次打印 3 ,然后返回。返回后又遇到打印语句,本次打印的是 6 ,再次返回就结束了command1_click()的调用。 所以,总的输出就是: 3 6
i的循环为1,2 j的循环为1,2,3,4 当j为奇数时做a=a-1;然后做a=a+1 所以 i=1:j=1:a=a+1 >>a=1 i=1:j=2:a=a-1:a=a+1 >>a=1 i=1:j=3:a=a+1 >>a=2 i=1:j=4:a=a-1:a=a+1 >>a=2 i=2:j=1:a=a+1 >>a=3 i=2:j=2:a=a-1:a=a+1 >>a=3 i=2:j=3:a=a+1 >>a=4 i=2:j=4:a=a-1:a=a+1 >>a=4 所以最后的结果时4
1、当点击按钮1的时候 先运行定义语句:dim x as integer,定义x为一个整型变量。 然后运行:x=val(inputbox("请输入一个整数“)),会弹出一个窗口,让你输入,你就输入6,程序会把6赋值给x。 fun(x)的意思是调用这个函数。因为x=6,即:fun(6) 2、if x mod 2=o then fun(x/2),如果x能被2整除,那么就调用fun(x/2),因为6刚好能被2整除,所以就调用fun(x/2),这时x/2=6/2,所以调用的是fun(3),因为3不能被2整除,所以,到下一步,在窗体输出3,完成后,没有结束,前面if x mod 2=o then fun(x/2)时,后面还有一句print x,于是再次在窗体输出6,结束。 3、总之,这道题答案是先在窗体输出的3,再输出6。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
防晒霜会不会很油堵塞毛孔呢?
宝马320i显示屏显示无信号怎么搞
金立手机为什么图库的快捷方式不见了
zcuzn25al6fe3mn4是什么材质?
新宏驰汽配地址有知道的么?有点事想过去
怎样制作七年级上册英语手抄报,是关于书中的
为什么说:幼师待遇低,影响最大的其实不是幼
妈妈中韩混血 爸爸纯中 他们孩子也算是混血儿
明能加什么偏旁
加贝购物俱乐部莼湖连锁店在哪里啊,我有事要
在外面租房子,怎样选择出租房?
非道路交通事故过失致人死亡罪发生后民事赔偿
我的世界手机版怎么自己制作材质包和皮肤
hello world 怎么读?
丹阳市计划生育指导站皇塘分站地址在什么地方
推荐资讯
金算盘6F财务软件工作站怎么安装?有加密狗的
被鱼刺卡着,有什么办法可以弄出来
—Who’s ,Tom or Tim? —Tom is A. quieter
梦想世界2蛮王殿天赋是??
请问谁知道济南天桥区实验小学的具体地址呀?
瑞迈特呼吸机上的service required是什么意思
三个“大”叠起来 念什么啊?
49.98除以0.058保留两位小数这么列竖式
天涯明月刀ol神刀怎么样职业排名
吴江达盛净化设备厂在哪里啊,我有事要去这个
节奏紧张的电影有推荐的吗
员工辞职结算工资,会计分录怎么做?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?