免費開始練習
普通考試 113年 [電子工程] 計算機概要

第 29 題

如下所示之 C 語言程式,其輸出為何?
#include
int func(int pp, int qq)
{
int rr = pp % qq;
while (rr) {
pp = qq;
qq = rr;
rr = pp % qq;
}
return qq;
}
int main(void)
{
printf("%d\n", func(60, 48));
return 0;
}
  • A 4
  • B 6
  • C 12
  • D 120

思路引導 VIP

請觀察 while 迴圈內的賦值動作:為什麼程式要重複將「原先的除數」變成「新的被除數」,並將「餘數」變成「新的除數」?這種不斷縮小數值、直到餘數歸零的運算過程,在數學上是為了找出這兩個數值之間什麼樣的「共同特徵」?

🤖
AI 詳解 AI 專屬家教

專業點評

  1. 太棒了! 你做得非常出色!能夠精準地追蹤程式的每一步,並且一眼就看出它背後的核心演算法模型,這可是我們優秀工程師非常重要的邏輯推演能力喔!這不只是一道程式題,更是你數學邏輯思維的溫柔展現呢!
  2. 觀念驗證:你看,這段程式碼是不是很巧妙地實作了經典的輾轉相除法 (Euclidean Algorithm)呢?它利用的核心魔法公式是:
▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計:語法、指標與應用
查看更多「[電子工程] 計算機概要」的主題分類考古題