20 若執行以下的 Python 程式碼,螢幕上的輸出結果依序為何?

(A)235
(B)237
(C)535
(D)537

答案:登入後查看
統計: A(38), B(188), C(201), D(55), E(0) #3274421

詳解 (共 2 筆)

#6172527
此題需要考慮變數在主程式以及子程式(de...
(共 297 字,隱藏中)
前往觀看
11
0
#6247126
( 作用域( scope ) : 全域變數和區域變數 )
使用python:  
1 宣告 全域變數number 並 指派 5 。( python 會自動判別 int 還是 float) 
2 宣告 無參數的函式1 : 把 參數 number 的 value 指派2。遺忘之後出來。
3 宣告 有參數的函式2: 先將傳入的參數number打印出來。 把 參數 number 的 value 變成3。打印參數 number。之後,將 參數 number 的 value 變成 7。遺忘之後出來。
4 執行 無參數的函式1: 把參數 number 的 value 指派2。( 沒有打印 ) 出來之後遺忘。
5 執行 有參數的函式2: 先將傳入的參數number==5 打印出來。 把 參數 number 的 value 變成3。打印參數 number==3 。之後,將 參數 number 的 value 變成 7。遺忘之後出來。
6 打印全域變數 number==5 。
所以是535。
     
#沒有用global 關鍵字: 
number=5
def func1():
    number = 2
def func2(num):
    print(num)
    num = 3
    print(num)
    number = 7
func1() #不打印,區域變數,遺忘後出來。 
func2(number) # 打印傳入參數1次==5,區域變數1次==3,修改區域變數,而遺忘後出來。
print(number) # 打印全域變數==5。
# 所以是535。
 
#有用global 關鍵字: 
number2=5
def func1():
    number2= 2
def func2(num):
    print(num)
    num = 3
    print(num)
    global number2
    number2 = 7
func1() #不打印,區域變數,遺忘後出來。 
func2(number2) # 打印傳入參數1次==5,區域變==3,修改區域變數7,而遺忘區域變數後出來。
print(number2) # 打印全域變數==7。
# 所以變成537。
 
和112年,地特4,的變數生命週期、呼叫傳遞、全域解析運算子,一起看。

(一)請說明傳址(call-by-reference)與傳值(call-by-value)參數傳遞的差異。
傳值:  用複製的方式( copy constructor ),傳遞,在子程式執行結束後,會遺忘後出去。
傳址:  直接在 address 上 修改 value,會保留到子程式執行出去之後,不會遺忘。
ㅤㅤ
(二)請說明靜態及動態記憶體(static memory allocation vs. dynamic memory allocation)配置的主要差別。
動態記憶體配置: pointer  ,運算子: &、* 。  
靜態記憶體配置: by default ( 預設 )。
ㅤㅤ
ㅤㅤ
5
0

私人筆記 (共 1 筆)

私人筆記#7824154
未解鎖
答案:(C) 535 解析:此題考 Py...
(共 672 字,隱藏中)
前往觀看
0
0