Cho thuật toán:
Procedure Test (n:integer);
Begin
If (n>0) and (n<10) then Write(n)
If n>=10 then begin
Write(n mod 10);
Test (n div 10);
End;
End;
Với n=151. Kết quả nào đúng trong số những kết quả dưới đây?
Trả lời:
Đáp án đúng: C
Thuật toán `Test(n)` in ra các chữ số của `n` theo thứ tự ngược lại.
- Khi `n = 151`, vì `n >= 10`, nên thuật toán in ra `n mod 10 = 151 mod 10 = 1`.
- Sau đó, thuật toán gọi đệ quy `Test(n div 10) = Test(151 div 10) = Test(15)`.
- Trong `Test(15)`, vì `n >= 10`, nên thuật toán in ra `n mod 10 = 15 mod 10 = 5`.
- Sau đó, thuật toán gọi đệ quy `Test(n div 10) = Test(15 div 10) = Test(1)`.
- Trong `Test(1)`, vì `(n > 0) and (n < 10)` là đúng, nên thuật toán in ra `n = 1`.
Vậy, kết quả in ra là `151`.
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