JavaScript is required

Cho khai báo mảng sau. Lệnh trên in ra cái gì?
String[][] str = {"lap", "trinh", "java"};
System.out.println(str[1][1]);

A.
trinh
B.
java
C.
Lỗi biên dịch ở dòng 1
D.
Không in ra gì
Trả lời:

Đáp án đúng: C


Câu hỏi kiểm tra về cách khai báo và truy cập mảng hai chiều trong Java. Đoạn code khai báo mảng `String[][] str = {"lap", "trinh", "java"};` có một lỗi nghiêm trọng. Trong Java, mảng hai chiều phải được khai báo với số lượng phần tử con (mảng một chiều) và mỗi phần tử con phải là một mảng. Cách khai báo trên không đúng cú pháp cho mảng hai chiều. Nó giống như cố gắng gán một mảng một chiều các chuỗi cho một mảng hai chiều, dẫn đến lỗi biên dịch. Do đó, chương trình sẽ không biên dịch được và không có kết quả nào được in ra. `str[1][1]` sẽ chỉ có ý nghĩa nếu `str` được khai báo và khởi tạo một cách chính xác như một mảng hai chiều, ví dụ: `String[][] str = {{"lap"}, {"trinh"}, {"java"}};`. Khi đó `str[1][1]` sẽ gây ra lỗi ArrayIndexOutOfBoundsException vì `str[1]` chỉ có một phần tử (index 0), không có phần tử index 1. Hoặc ví dụ: `String[][] str = {{"lap", "trinh"}, {"java", "code"}};`. Khi đó `str[1][1]` sẽ in ra "code". Trong trường hợp này, do lỗi khai báo, code không chạy được.

Câu hỏi liên quan