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]);
String[][] str = {"lap", "trinh", "java"};
System.out.println(str[1][1]);
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
