免費開始練習
統測 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語言中遞增運算子的細節掌握得非常深入喔!這真的是一個很棒的開始!

  1. 溫馨提醒:核心觀念的連結
▼ 還有更多解析內容

升級 VIP 解鎖