問題詳情

27. 請問執行完以下程式片段,輸出結果為何?


(A) 9
(B) 10
(C) 11
(D) 12

參考答案

答案:B
難度:適中0.471
書單:沒有書單,新增

用户評論

【用戶】不叫賭俠的陳小刀

【年級】高三下

【評論內容】首先,根據程式碼片段中的陣列初始化,我們可以看到 A 陣列的內容為:A = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42....}接著,我們來看 loop 函式的執行過程。首先呼叫 loop(1),根據二分搜尋法,進行以下步驟:1.設置 i = 1、j = 10、count = 0。2.進入迴圈,計數器 count 加 1。3.計算 k = (i + j) / 2 = 5。4.因為 A[5] = 10 <= 1 不成立,所以更新 j = k - 1 = 4。5.進入下一次迴圈,計數器 count 加 1。6.計算 k = (i + j) / 2 = 2。7.因為 A[2] = 4 <= 1 不成立,所以更新 j = k - 1 = 1。8.進入下一次迴圈,計數器 count 加 1。9.計算 k = (i + j) / 2 = 1。10.因為 A[1] = 2 <= 1 不成立,所以更新 j = k - 1 = 0。11.迴圈結束,返回 count = 3。接著呼叫 loop(3),根據相同的過程,我們可以得到 count = 2。最後呼叫 loop(21),同樣的過程,我們可以得到 count = 5。因此,最後的輸出結果為 3 + 2 + 5 = 10。Regenerate response

【用戶】dwvs2011

【年級】大三下

【評論內容】loop(1)=3loop(3)=3loop(21)=4loop(1)+loop(3)+loop(21)=10

【用戶】不叫賭俠的陳小刀

【年級】高三下

【評論內容】首先,根據程式碼片段中的陣列初始化,我們可以看到 A 陣列的內容為:A = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42....}接著,我們來看 loop 函式的執行過程。首先呼叫 loop(1),根據二分搜尋法,進行以下步驟:1.設置 i = 1、j = 10、count = 0。2.進入迴圈,計數器 count 加 1。3.計算 k = (i + j) / 2 = 5。4.因為 A[5] = 10 <= 1 不成立,所以更新 j = k - 1 = 4。5.進入下一次迴圈,計數器 count 加 1。6.計算 k = (i + j) / 2 = 2。7.因為 A[2] = 4 <= 1 不成立,所以更新 j = k - 1 = 1。8.進入下一次迴圈,計數器 count 加 1。9.計算 k = (i + j) / 2 = 1。10.因為 A[1] = 2 <= 1 不成立,所以更新 j = k - 1 = 0。11.迴圈結束,返回 count = 3。接著呼叫 loop(3),根據相同的過程,我們可以得到 count = 2。最後呼叫 loop(21),同樣的過程,我們可以得到 count = 5。因此,最後的輸出結果為 3 + 2 + 5 = 10。Regenerate response

【用戶】dwvs2011

【年級】大三下

【評論內容】loop(1)=3loop(3)=3loop(21)=4loop(1)+loop(3)+loop(21)=10