loop exam questions
迴圈考題
int c=1;請問下列迴圈內 A 的指令會個別執行幾次
int c=1;請問下列迴圈內 A 的指令會個別執行幾次?(每小題 5 分,共 15 分)
(一)while (c = 100) {A; c++;}
(二)for(; c++ < 100; c++) A;
(三)for(; ++c < 100; c+=2) A;
我的回答
(一) c=1, while(1=100)
因為1不等於100所以不會執行迴圈裡面的語句(statement),所以A一次也不會執行。
(二)for(; c++ < 100; c++) A;注意c++為先使用再做加法運算
迴圈初始值, 迴圈遞增值, 中止判斷式
1, 2, 2<100
3, 4, 4<100
5, 6, 6<100
...
97,98,98<100
99,100,100<100
A會執行98/2=49次
(三)for(; ++c < 100; c+=2) A;注意++c為先做加法運算再使用
迴圈初始值, 迴圈遞增值, 中止判斷式
1, 3, 4<100
4, 6, 7<100
7, 9, 10<100
...
97,99,100<100
A會執行99/3=33次,最後一次沒有做,所以是32次
下面為chatgpt回答
(一) `while (c = 100) {A; c++;}` 中的指令会一次也不执行,因为条件 `c = 100` 总是为假。`c` 被赋值为 100,而 `while` 循环要求条件为真才会执行。
(二) `for(; c++ < 100; c++) A;` 中的 `for` 循环会执行 100 次。循环开始时 `c` 的值为 1,它会先执行 A,然后 `c` 增加,循环条件被检查,当 `c` 达到 100 时,循环停止。
(三) `for(; ++c < 100; c+=2) A;` 中的 `for` 循环会执行 50 次。循环开始时 `c` 的值为 2,然后 `c` 增加到 4,6,依此类推,直到 `c` 增加到 100 之前。所以循环内的 A 语句执行了 50 次。
Comments
Post a Comment