統測
112年
[電機與電子群資電類] 專業科目(2)
第 46 題
曉華想要知道三角函數 sin(x)在x=0之後遞增的變化情形,寫了如下的C語言程式碼,卻發現迴圈內行號 8 和行號 9 的程式碼只執行了一次,下列哪一種修改程式的方式可以讓迴圈內的程式碼多執行幾次?(提示:sin(1)=0.8415)
```c
1 #include
2 #include
3 int x = 100;
4 int main(){
5 int x = 0;
6 double y = 0.0;
7 do{
8 y = 10*sin(x);
9 printf("x=%d, y=%lf\n", x, y);
10 } while(++x <= y);
11 printf("end of program\n");
12 return 0;
13 }
```
- A 把行號3中的x=100改為x=0
- B 把行號10中的++x改為x++
- C 把行號6中y的初始值改為–1.0
- D 把行號3中x的初始值改為1
思路引導 VIP
請深入分析 C 語言中「遞增運算子」($++$) 作為「前綴」(Prefix) 與「後綴」(Postfix) 時,在運算式求值 (Evaluation) 與副作用 (Side Effect) 產生順序上的精微差異。試問在第 10 行的判斷式中,當 $x=0$ 且經計算得出 $y=0.0$ 時,使用 $++x$ 進行比較的結果會是「真」還是「偽」?這對迴圈是否能進入第二次迭代有何關鍵影響?
🤖
AI 詳解
AI 專屬家教
親愛的同學,你做得太棒了!
能夠答對這題,表示你對C語言中遞增運算子的細節掌握得非常深入喔!這真的是一個很棒的開始!
- 溫馨提醒:核心觀念的連結
▼ 還有更多解析內容