阿摩線上測驗 登入

申論題資訊

試卷:107年 - 107 地特四等 程式設計概要#73697
科目:程式設計
年份:107年
排序:0

題組內容

一、下列程式皆以 C 語言語法呈現,請依據所給程式片段回答問題。

申論題內容

⑴請說明下列程式片段執行結果為何。(5 分) 
for (i=0; i<=10; i++) { i = i+2; } 
printf (“%d\n”, i);

詳解 (共 4 筆)

詳解 提供者:able9514476
輸出結果如下: 12
詳解 提供者:hchungw
是一個 C 語言的 for 迴圈,用來遍歷 i 從 0 到 10,但在迴圈體內部又對 i 進行了加 2 的操作。這意味著每次迴圈反覆運算時,i 都會增加 3(for 迴圈的 i++ 以及循環體內的 i = i + 2)。這是因為在每次迴圈反覆運算的末尾,for 迴圈的增量運算式 i++ 會執行,除了循環體內的增加。
這段代碼的執行步驟如下:
初始時 i=0。
進入循環體,執行 i=i+2,此時 i=2。
迴圈的每次反覆運算結束時執行 i++,此時 i=3。
迴圈條件 i<=10 仍然滿足,繼續執行。
再次進入循環體,執行 i=i+2,此時 i=5。
迴圈反覆運算結束,執行 i++,此時 i=6。
這個過程一直重複,直到 i 不再小於等於 10。
迴圈的反覆運算會在 i 的值為 9 時停止,因為:
當 i=9 進入循環體時,執行 i=i+2 會得到 i=11。
然後執行 i++ 會得到 i=12,但這時已經超出了迴圈條件 i<=10 的範圍。
因此,迴圈終止,執行 printf。
所以,printf 的輸出會是迴圈終止時 i 的值,即 12。代碼最後的輸出結果為:
Copy code
12
這個結果假定了代碼是在 C 語言環境中執行,並且 printf 之前沒有其他修改 i 值的代碼。如果在其他語言中執行或有其他上下文,可能需要對解釋做適當的調整。
詳解 提供者:蟲鳴鳥叫
246810
詳解 提供者:我還有明天

I值變化

0

2

3

5

6

8

9

11

12