JavaScript is required

Cho C = {2, 4, 5, 6, 7, 8}, k = 6, n=9. 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 Test(C, k, n): 

Function Test(C:array[1..10] of integer; k,n:integer); 

Var i,j: integer; 

Begin 

i:=k; While (i>0) and (c[i]=n-k+i) do i:=i-1;

If i> 0 then

Begin c[i]:= c[i] +1;

For j:= i+1 to k do c[j]:=c[i] + j-1;

End;

End;

A.

C= {2, 4, 5, 6, 7, 9}

B.

C= {4, 5, 6, 7, 8, 9}

C.

C= {3, 4, 5, 6, 7, 8}

D.

C= {3, 5, 6, 7, 8, 9}

Trả lời:

Đáp án đúng: A


Đề bài cho mảng C = {2, 4, 5, 6, 7, 8}, k = 6, n = 9. Ta sẽ thực hiện thuật toán Test(C, k, n) theo từng bước: 1. **Khởi tạo:** i = k = 6. 2. **Vòng lặp while:** - Điều kiện lặp: (i > 0) and (C[i] = n - k + i). - Lần 1: i = 6, C[6] = 8, n - k + i = 9 - 6 + 6 = 9. Điều kiện C[i] = n - k + i (8 = 9) là sai. Vòng lặp dừng. 3. **Kiểm tra điều kiện if:** i > 0 (6 > 0) là đúng. 4. **Thực hiện thân lệnh if:** - C[i] = C[6] + 1 = 8 + 1 = 9. Vậy C[6] = 9. - Vòng lặp for: j chạy từ i+1 = 7 đến k = 6. Vòng lặp này không được thực hiện vì điều kiện j <= k không thỏa mãn (7 <= 6 là sai). Vậy sau khi thực hiện thuật toán, mảng C trở thành {2, 4, 5, 6, 7, 9}.

Câu hỏi liên quan