程式設計基礎(虛擬碼追蹤)

下列程式在雙重迴圈中有條件分支。執行後 c 的值為下列何者?

整數型: c ← 0
for (i 從 1 到 4 每次加 1)
  for (j 從 1 到 i 每次加 1)
    if (j mod 2 = 1)
      c ← c + 1
    endif
  endfor
endfor
  1. A4
  2. B6
  3. C10
查看答案與解析

正確答案:B. 6

內層迴圈為 j = 1〜i,只有 j 為奇數時才使 c 增加。i = 1 時為 j = 1 的1次,i = 2 時為 j = 1 的1次,i = 3 時為 j = 1、3 的2次,i = 4 時為 j = 1、3 的2次,合計 1 + 1 + 2 + 2 = 6。內層的處理總共執行 1 + 2 + 3 + 4 = 10 次,其中滿足條件的是6次。這是在重複中放入條件分支的控制結構的基本組合。

  • A. 這是計算 j 為偶數的次數。j mod 2 = 1 在 j 為奇數時為真。
  • B. 正確。1 + 1 + 2 + 2 = 6 次。
  • C. 這是忽略 if 條件、計算內層處理執行次數 1 + 2 + 3 + 4 的值。
練習這個領域 前往領域頁面

相關計算工具

程式設計基礎(虛擬碼追蹤)的其他題目

  1. 為了求陣列 a 所有元素的總和而寫了下列程式。陣列的元素編號從1開始。執行後 s 的值為下列何者?
  2. 陣列的元素編號從1開始。下列程式尋找最大的元素。執行後 m 的值為下列何者?
  3. 為了把陣列 a 的元素反轉順序而寫了下列程式。陣列的元素編號從1開始。執行後 a 的內容為下列何者?
  4. 陣列的元素編號從1開始。執行下列程式後,陣列 a 的內容為下列何者?
  5. 陣列的元素編號從1開始。下列程式比較相鄰的元素。執行後 c 的值為下列何者?