JavaScript is required

Cho B = { 1, 0, 1, 0, 1, 0, 1, 1, 1, 0}, n=10. Kết quả nào đúng trong số những kết quả dưới đây sau khi thực hiện thuật toán:

Type Mang= array[1..10] of Integer;

Function Test(B:mang; n:integer): mang;

Var i:integer;

Begin

i:=n-1;

While (i>=0) and (B[i]=1) do

Begin B[i]:=0; i:=i-1; End;

B[i]:= 1;

End;

A.

Test(B,n) = { 1, 0, 1, 0, 1, 1, 0, 0, 0, 1(0)}

B.

Test(B,n) = { 1, 0, 1, 0, 1, 0, 1, 1, 1, 1}

C.

Test(B,n) = { 0, 1, 1, 0, 1, 0, 1, 1, 1, 0}

D.

Test(B,n) = { 1, 1, 1, 0, 1, 0, 1, 1, 1, 0}

Trả lời:

Đáp án đúng: A


Đề bài cho một mảng B gồm các số nguyên 0 và 1, và yêu cầu thực hiện một thuật toán. Thuật toán này có vẻ như đang thực hiện phép cộng 1 vào một số nhị phân được biểu diễn bởi mảng B. Ban đầu, B = {1, 0, 1, 0, 1, 0, 1, 1, 1, 0} và n = 10. Đoạn code `i:=n-1;` khởi tạo i = 9 (chỉ số cuối cùng của mảng). Vòng lặp `While (i>=0) and (B[i]=1) do` sẽ duyệt từ cuối mảng về đầu, và nếu gặp giá trị 1 thì sẽ đổi thành 0 và giảm i. Vòng lặp dừng khi gặp giá trị 0 hoặc khi i < 0. Trong trường hợp này, vòng lặp bắt đầu tại B[9] = 0. Vì điều kiện `B[i]=1` không thỏa mãn, vòng lặp không chạy. Sau đó, `B[i]:= 1;` sẽ gán B[9] = 1. Do đó, B trở thành {1, 0, 1, 0, 1, 0, 1, 1, 1, 1}. Vậy, Test(B,n) = {1, 0, 1, 0, 1, 0, 1, 1, 1, 1}.

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