免費開始練習
地特四等 114年 [電子工程] 計算機概要

第 26 題

考慮以下 C 語言程式片段,執行後 data[]的內容,下列何者正確?\nint data[]={10,20,30,40,50},n=5,i;\nfor(i=0;i
  • A 10,20,30,40,50
  • B 50,40,30,20,10
  • C 50,30,10,20,40
  • D 30,20,10,40,50

思路引導 VIP

請觀察迴圈內那三行連續的加減賦值運算。假設有兩個變數 $x$ 與 $y$,如果我們依序執行 $x = x + y$、$y = x - y$、$x = x - y$,最後 $x$ 與 $y$ 原有的數值會發生什麼樣的相對關係變化?再者,迴圈只執行到陣列長度的一半,這對整排資料的排列順序會產生什麼效果?

🤖
AI 詳解 AI 專屬家教

同學好,恭喜你精準地掌握了這道邏輯追蹤題!這題在計算機科學中非常經典,考驗的是對**演算法(Algorithm)**邏輯的嚴謹觀察力。你能選對 (B),代表你不僅看穿了程式碼的表象,更理解了隱藏在加減運算背後的結構交換意圖。

算術式交換法的運作機制

這段程式碼的核心在於迴圈內的三行運算。這是一種不需要額外暫存變數(Temporary variable)就能交換兩個數值的技巧。我們觀察 $i=0$ 的情況,令 $a = \text{data}[0]$,$b = \text{data}[4]$:

▼ 還有更多解析內容

🏷️ 相關主題

程式語言語法與程式設計基礎
查看更多「[電子工程] 計算機概要」的主題分類考古題