JavaScript is required

Giả sử các khai báo biến đều hợp lệ. Ðể tính S = 10!, chọn câu nào?

A.

S := 1; i := 1;

while i<= 10 do S := S * i;

i := i + 1;

B.

S := 1; i := 1;

while i<= 10 do i := i + 1;

S := S * i;

C.

S := 0; i := 1;

while i<= 10 do

begin

S := S * i;

i := i + 1;

end;

D.

S := 1; i := 1;

while i<= 10 do

begin

S := S * i;

i := i + 1;

end;

Trả lời:

Đáp án đúng: D


Để tính giai thừa của 10 (10!), ta cần một vòng lặp nhân các số từ 1 đến 10 lại với nhau. * **Đáp án 1:** `S := 1; i := 1; while i<= 10 do S := S * i; i := i + 1;` * Khởi tạo `S = 1` và `i = 1`. Vòng lặp `while` nhân `S` với `i` và tăng `i` lên 1 cho đến khi `i > 10`. Đây là cách tính giai thừa đúng. * **Đáp án 2:** `S := 1; i := 1; while i<= 10 do i := i + 1; S := S * i;` * Khởi tạo `S = 1` và `i = 1`. Vòng lặp `while` chỉ tăng `i` lên 1 cho đến khi `i > 10`. Sau vòng lặp, `i = 11`, sau đó `S` được gán bằng `S * 11`, dẫn đến kết quả sai. * **Đáp án 3:** `S := 0; i := 1; while i<= 10 do begin S := S * i; i := i + 1; end;` * Khởi tạo `S = 0` và `i = 1`. Vì `S` khởi đầu bằng 0, sau mỗi lần lặp `S` vẫn bằng 0 (0 nhân với bất kỳ số nào cũng bằng 0). * **Đáp án 4:** `S := 1; i := 1; while i<= 10 do begin S := S * i; i := i + 1; end;` * Tương tự đáp án 1, tuy nhiên có thêm từ khóa begin end, nhưng không ảnh hưởng đến logic chương trình, đây là cách tính giai thừa đúng. Vậy, đáp án 4 là chính xác nhất do có từ khóa begin end làm rõ phần thân của vòng lặp while, mặc dù đáp án 1 cũng đúng về mặt logic.

Bộ 525 câu hỏi trắc nghiệm ôn thi môn Toán rời rạc có đáp án dưới đây sẽ là tài liệu ôn tập hữi ích dành cho các bạn sinh viên. Mời các bạn cùng tham khảo!


30 câu hỏi 60 phút

Câu hỏi liên quan