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

Popular posts from this blog

How to write data into a excel file using vbscript

Format date as yyyy-mm-dd using vbscript