阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 普通考試_資訊處理:程式設計概要#109801
科目:程式設計
年份:111年
排序:0

題組內容

一、以下是完整的 C#程式碼,請回答以下各小題執行的結果為何? 

申論題內容

(二)62dde9f84264b.jpg

詳解 (共 2 筆)

詳解 提供者:WJ

Rate: 2.5, Amount: 250

這題應該是在考兩種不同參數傳送方式
rate是pass by value,所以值不變
amount 應該是pass by reference,amt與amount實際上是同一個記憶體位置,所以在函式中的更動會影響到amount的值

詳解 提供者:hchungw

這段C#代碼定義了一個Main方法和一個computing方法。Main方法中設置了rate為2.5f和amount為10f,然後呼叫computing方法,並通過引用(ref)關鍵字傳遞amount。在computing方法中,rate被乘以10,但由於rate是按值傳遞的,所以這個變更不會反映回Main方法。amount則是按引用傳遞的,所以當它被乘以rate的新值後,變更會反映回Main方法。
因此,rate在computing方法中從2.5f變為25.0f,但這個改變只在computing方法的範圍內有效。amount則是被更新為原來的值乘以rate的新值,即10f * 25.0f = 250f。
所以執行結果將會是:
yaml
Copy code
Rate: 2.5, Amount: 250