VB問題,這種問題不會每次都遇到,希望盡可能詳細的解釋,並給出點!!

發布 健康 2024-05-12
5個回答
  1. 匿名使用者2024-02-10

    您在這裡對 sun1 進行了兩次呼叫,靜態 i 作為整數是第乙個。

    二、第三......呼叫子過程時,i 值不會更改為初始值 0 並繼續執行。

    首先,call(x,x,z),x 傳遞給 a,a=1,以同樣的方式傳遞給 a,a=3,i=1+3+0=4,a=3*3+4=13,b=10,c=24。 因為 call(x,x,z), a=b,即有乙個隱式執行語句 a=b=10,所以最後一行列印 10 10 24。

    call(x,y,y) 後,因為是按位址傳遞的,x=10,y=2,即 a=10,b=2,c=2。 因為是靜態的,i 仍然等於 4,並且初始值 0 沒有被賦值,i = 10 + 2 + 4 = 16,a = 22,b = 20,c = 58(同樣,隱式 b = c = 58),所以最後一行列印 22 58 58。 由於值傳遞,x=22,y=58,z=24,即第三行列印 22 58 24

  2. 匿名使用者2024-02-09

    重點放在靜態變數上。 (靜態變數,執行程序後不會清除變數的值,下次呼叫時上次儲存的變數的值不會重新初始化為 0)。

    記住這一點後,在做這個問題的時候,需要單獨記錄靜態變數的值,在執行一行的時候更新一次。

    作為我的標題:

    第一次執行sun1(1,1,3),i=0,執行i=a+c+i=1+3+0=4,i=4記錄在紙上

    第二次執行sun1(1,2,2),i=4,執行i=a+c+i=1+2+4=7,i=7記錄在紙上

  3. 匿名使用者2024-02-08

    第一次呼叫 sun1(x,x,z),x=1; x=1;z=3 帶來 a、b、c,即 a=1; b=1;c=3;

    函式開始計算:

    靜態 i 初始化,i=0;

    i=a+c+i=1+3+0=4;

    a=3*c+i=3*3+4=13;返回引數 x,即 x=13;sun1(13,x,z)

    b=2*c+i=2*3+4=10;返回引數 x,即 x=10;sun1(10,10,z) ps:由於 x 使用相同的位址來儲存值,因此 y 的值應該相同,這裡 x 的值被賦值為 10,所以兩個 x 引數變為 10

    c=a+b+i=10+10+4=24;返回引數 x,即 z=24;sun1(10,10,24)

    列印輸出 A、B 和 C 是輸出"10 10 24";

    第二個呼叫 sun1(x,y,y), x=10; y=2;y=2 帶來 a、b、c,即 a=10、b=2、c=2

    由於靜態 i 是靜態變數,系統為 i 分配乙個記憶體儲存位址,該位址儲存上次呼叫 sun1() 分配給 i 的值,即 i=4;

    函式開始計算:

    i=a+c+i=10+2+4=16;

    a=3*c+i=3*2+16=22;返回引數 x,即 x=22;sun1(22,y,y)

    b=2*c+i=2*2+16=20;回到實數引數 y,即 y=20;sun1(22,20,y)

    c=a+b+i=22+20+16=58;回到實數引數 y,即 y=58;sun1(22,58,58) ps:由於 y 使用的值儲存在同一位址中,因此 y 的值應該相同,並且 y 的值被賦值為 58,因此兩個 y 引數變為 58

    列印輸出 A、B 和 C 是輸出"22 58 58";

  4. 匿名使用者2024-02-07

    這種題目不是解題解題,而是需要從頭開始,努力學習!

    那麼多朋友的解釋,無非就是書裡的內容!

  5. 匿名使用者2024-02-06

    看看VB的基本書籍你就會明白,簡單的解釋是沒有用的。

相關回答
12個回答2024-05-12

有人回覆一次,他們就會再次成為第一名!

21個回答2024-05-12

張曼玉一生的“死敵”是章子怡。 >>>More

14個回答2024-05-12

隨著汽車數量的增加,路況變得更加複雜。 很容易誤撞別人的車,有時很難分辨。 特別是對於一些專門研究瓷器的人來說,事情會變得更加複雜。 >>>More

11個回答2024-05-12

其實,運氣也是一種力量。 他可以偷懶,什麼都不知道,這是他的運氣,但能找到乙份工作是他的運氣,但是如果他真正工作的時候無事可做,而且他也非常懶惰,不願意學習,那其實是很危險的。 <>

3個回答2024-05-12

這個測試不是很重要,不應該放在心上。

要晚了,我們該走了。 >>>More