JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

1: for(int i=0;i<2;i ++)

2: for(int j=0;j<3;j ++){

3: if(i==j) continue;

6: cout << “i = “ << i << “ j = “ << j << endl;

7: }

A.

i = 0 j = 0

B.

i = 2 j = 1

C.

i = 0 j = 2

D.

Lỗi biên dịch.

Trả lời:

Đáp án đúng: C


Đoạn code này có hai vòng lặp `for` lồng nhau. Vòng lặp bên ngoài chạy từ `i = 0` đến `i = 1`. Vòng lặp bên trong chạy từ `j = 0` đến `j = 2`. Câu lệnh `if (i == j) continue;` sẽ bỏ qua các lần lặp khi `i` bằng `j`. Do đó, khi `i = 0`, vòng lặp trong sẽ bỏ qua `j = 0`. Khi `i = 1`, vòng lặp trong sẽ bỏ qua `j = 1`. Các giá trị của `i` và `j` được in ra sẽ là: - Khi `i = 0`: `j = 1`, `j = 2` - Khi `i = 1`: `j = 0`, `j = 2` Như vậy, đáp án C không xuất hiện trong kết quả, do đó đáp án C sai. Các đáp án A, B, D cũng không đúng. Tuy nhiên, không có đáp án nào liệt kê đầy đủ các trường hợp. Đoạn code sẽ in ra: i = 0 j = 1 i = 0 j = 2 i = 1 j = 0 i = 1 j = 2 Vì không có đáp án nào đúng hoàn toàn, ta chọn đáp án gần đúng nhất theo các lần lặp được in ra. Tuy nhiên, câu hỏi yêu cầu chỉ ra kết quả của đoạn lệnh, nên việc không có đáp án đúng là một vấn đề. Vì vậy, câu hỏi này không có đáp án chính xác.

Câu hỏi liên quan