關於VB的題目,(3)(4)答案分別是D C,但是不知道是什麼原理,求詳細解答

時間 2022-04-06 14:45:09

1樓:寒信

函式傳遞變數引數是預設是按位址傳遞,系統將實參x的位址傳遞給形參a ,即x 和a 被分配到同乙個儲存單元。可以理解為a就是x ,x就是a 。

(3)題,form_click 裡x+2, proc1裡a+2,相當於x加了兩次2,所以每點選一次窗體,x就加4

(4)當引數是表示式x+2時,傳遞的不是變數x位址,而是表示式 x+2的值,這時候a與x就一分錢關係都沒有了,a改變不會影響到x,因此只有在form_click裡x=x+2改變了x的值,也就是每點選一次窗體,x就加2

2樓:聽不清啊

(3)選答案b。因為x雖是全域性變數,但在proc1中有同名的區域性變數x,其初始值預設為0,所以在proc1內部,全域性變數x被「遮蔽」了。每次呼叫call proc1(x) 時,採用的是「傳址」,即x的值就是形參a的值。

因a = x+ 2的值每次均為0+2=2,所以形式變數a的值為2,也就是全域性變數 x 的值為2。

(4) 其它**不變,僅將程式中的語句(1)改為call proc1(x+2),單擊窗體兩次後,窗體上顯示的內容是什麼?

選答案c。

因為此時call proc1(x+2)中呼叫引數是乙個表示式,所以呼叫時是「傳值」而不再是「傳址」。所以全域性變數x的值在第一次x = x+ 2後保留為2,在第二次x = x+ 2後,x的值即為4。所以第一次、第二次的輸出就分別是2和4。

3樓:匿名使用者

vb的過程引數預設為傳址方式,說通俗一點就是過程被呼叫時,虛參就是實參本身在參與運算,所以對虛參的改變也會改變實參。

3)中 x 是全域性變數,所以 a=x+2 實質等於 x=x+2 ,所以第一次會被變為 4,第二次會被變為 8

4)中 區域性變數優先,不過這點對結果沒啥影響,因為傳送過去的實參是 x+2,僅僅使用了x其值,而並沒有改變它,所以只輸出 x=x+2 的結果 2和4

aa 杯 a 杯b杯 c杯 d杯 3 4杯分別是多大的胸部還

這是個 男,想男扮 的a罩杯 b罩杯 c罩杯 d罩杯 e罩杯的尺碼分別是多少? 有寵一族 舉例70a,是你的胸圍70公分,胸的大小為a杯即你的上下胸圍差小於等於10 上下胸圍差與罩杯的關係 小於等於7 5釐米 aa 小於等於10釐米 a 小於等於12 5釐米 b 小於等於15釐米 c 小於等於17 ...

頭文字D中高橋兄弟兩開的FD和FC分別是哪款車子

兩者都是馬自達rx 7,不過fd是fc的下一代,你可以看到造型更流線型和圓潤。我覺得是吉利美日,或者是富康,不知道對不對 頭文字d裡涼介的fc和啟介的fd各是什麼車 啟介的fd mazda efini rx 7 fd 3s 涼介的fc mazda rx 7 fc 3s 動漫頭文字d裡面高橋兄弟開的兩...

關於十道簡便計算的題目,並且攜帶正確答案

愛軍 1 2.64 1.7 2.64 0.7 2.64 1.7 0.7 2.64 1 2.64 2 31.5 1.07 3.15 0.7 3.15 10.7 3.15 0.7 3.15 10.7 0.7 3.15 10 31.5 3 2.7 5.7 2.7 5.3 2.7 2.7 5.7 1 5.3...