鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
圖解法解閱讀程序?qū)懡Y(jié)果題一則

圖解法解閱讀程序?qū)懡Y(jié)果題一則——順答yiyibushe提問

                                       曹蘇群 http://caosuqun.bokee.com

題目(By yiyibushe):

Dim x As Integer, y As Integer

Private Sub form_click()

    Dim a As Integer, b As Integer

    a = 5: b = 3

    Call sub1(a, b)

    Print x, y

End Sub

Private Sub sub1(ByVal m As Integer, n As Integer)

    Dim y As Integer

    x = m + n: y = m - n

    m = fun1(x, y)

    n = fun1(y, x)

End Sub

Private Function fun1(a As Integer, b As Integer)

    x = a + b: y = a - b

    Print x, y

    fun1 = x + y

End Function

解答:

  本題主要考察過程調(diào)用、參數(shù)傳遞以及變量作用域等知識(shí)點(diǎn),對(duì)于此類題型,建議使用圖解法來解。

  由第一句:Dim x As Integer, y As Integer 知,xy為模塊變量,可以被這三個(gè)過程所訪問;sub1過程中,有:Dim y As Integer,此處y為過程級(jí)變量,因此,在sub1過程中,訪問的是過程級(jí)變量y而非模塊變量y;而在fun1中訪問的y是模塊變量y而非過程級(jí)變量y!

  為此,我們可以圖解如下:

    1 將模塊變量用單列的圖來表示,以表示可以為該模塊中各個(gè)過程所訪問,而將過程級(jí)變量圖示限定在對(duì)應(yīng)過程中。

    2 留意參數(shù)傳遞方式,若按地址傳遞,則形參和實(shí)參圖示時(shí)指向同一內(nèi)存單元,若按值傳遞,則形參和實(shí)參圖示時(shí)各有各的內(nèi)存單元,僅僅復(fù)制值而已。

  給出如下圖解圖示:

 圖解法

 

  圖中藍(lán)色線條說明該內(nèi)存單元均指向sub1中過程級(jí)變量y;綠色線條說明該內(nèi)存單元均指向模塊變量x;紅色塊表示第一次輸出結(jié)果,即第一次調(diào)用fun1執(zhí)行Print x, y;黃色塊表示第二次輸出結(jié)果,即第二次調(diào)用fun1執(zhí)行Print x, y;最后一次輸出結(jié)果,即form_click中執(zhí)行Print x, y恰好與黃色塊一樣。

  請(qǐng)按照?qǐng)?zhí)行流程,對(duì)照這個(gè)圖,仔細(xì)推敲