在窗體中添加一個(gè)名稱為Command1的命令按鈕,然后編寫如下程序: Private Sub f(ByVal x As Intege
在窗體中添加一個(gè)名稱為Command1的命令按鈕,然后編寫如下程序:
Private Sub f(ByVal x As Integer)
x=x+4
End Sub
Private Sub Command1_Click()
i=3
Call f(i)
If i>4 Then i=i*2
End Sub
窗體打開運(yùn)行后,單擊命令按鈕,則消息框的輸出結(jié)果為( )。
正確答案:33 解析: 本題考查VBA中參數(shù)傳遞的知識(shí)。在VBA的過程調(diào)用時(shí),參數(shù)有兩種傳遞方式:傳址傳遞和傳值傳遞。如果在過程聲明時(shí)形參用ByVal聲明,說明此參數(shù)為傳值調(diào)用;若用ByRef聲明,說明此參數(shù)為傳址調(diào)用;沒有說明傳遞類型,則默認(rèn)為傳址傳遞。本題中在定義子過程f的時(shí)候用ByVal聲明了形參x,說明為傳值調(diào)用,此時(shí)對(duì)x的任何更改不會(huì)影響調(diào)用它的實(shí)參i,所以執(zhí)行完callf(i)這條語句后i的值不變?nèi)詾?,當(dāng)然也不滿足If語句的條件,故此最后輸出結(jié)果為3。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。