Cách khai báo mảng nào sau đây là đúng?
Trả lời:
Đáp án đúng: D
Trong Java, có hai cách khai báo mảng phổ biến và hợp lệ. Cả hai cách này đều được trình biên dịch Java chấp nhận.
int[] a;
: Cách này khai báo một biếna
là một mảng các số nguyên.int a[];
: Cách này cũng khai báo một biếna
là một mảng các số nguyên. Về mặt ngữ nghĩa, nó tương đương với cách trên.
Tuy nhiên, int a[] = new int;
là một khai báo sai. Khi khởi tạo một mảng trong Java, bạn cần chỉ định kích thước của mảng, ví dụ: int a[] = new int[10];
Vì vậy, đáp án D là đúng vì nó bao gồm cả hai cách khai báo mảng hợp lệ.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Đoạn mã Java này có lỗi biên dịch. Dòng đầu tiên `String[] students = new String;` cố gắng khởi tạo một mảng String nhưng không chỉ định kích thước của mảng. Điều này gây ra lỗi biên dịch. Giả sử dòng này được sửa thành `String[] students = new String[1];` thì phân tích như sau:
1. `String[] students = new String[1];` Khởi tạo một mảng `students` có kích thước 1. `students` là một tham chiếu đến đối tượng mảng.
2. `String studentName = “Peter Parker”;` Khởi tạo một biến `studentName` và gán cho nó chuỗi “Peter Parker”. `studentName` là một tham chiếu đến đối tượng chuỗi “Peter Parker”.
3. `students = studentName;` Gán tham chiếu của `studentName` (đến chuỗi “Peter Parker”) cho `students`. Bây giờ, `students` cũng tham chiếu đến chuỗi “Peter Parker”. Đối tượng mảng ban đầu được tạo ở bước 1 sẽ không còn được tham chiếu đến nữa (nó có thể được garbage collector thu hồi).
4. `studentName = null;` Gán `null` cho `studentName`. `studentName` không còn tham chiếu đến đối tượng chuỗi “Peter Parker” nữa.
Sau khi thực hiện đoạn mã (đã sửa lỗi), chỉ có một đối tượng chuỗi “Peter Parker” và biến `students` đang tham chiếu đến nó. Mảng ban đầu (nếu được khởi tạo đúng) không còn được tham chiếu đến. Vì vậy, chỉ có 1 đối tượng được tham chiếu.
Tuy nhiên, vì đoạn mã gốc bị lỗi, nên không có đáp án nào đúng hoàn toàn. Nếu bỏ qua lỗi biên dịch và xem xét đoạn mã đã sửa, đáp án A là hợp lý nhất.
1. `String[] students = new String[1];` Khởi tạo một mảng `students` có kích thước 1. `students` là một tham chiếu đến đối tượng mảng.
2. `String studentName = “Peter Parker”;` Khởi tạo một biến `studentName` và gán cho nó chuỗi “Peter Parker”. `studentName` là một tham chiếu đến đối tượng chuỗi “Peter Parker”.
3. `students = studentName;` Gán tham chiếu của `studentName` (đến chuỗi “Peter Parker”) cho `students`. Bây giờ, `students` cũng tham chiếu đến chuỗi “Peter Parker”. Đối tượng mảng ban đầu được tạo ở bước 1 sẽ không còn được tham chiếu đến nữa (nó có thể được garbage collector thu hồi).
4. `studentName = null;` Gán `null` cho `studentName`. `studentName` không còn tham chiếu đến đối tượng chuỗi “Peter Parker” nữa.
Sau khi thực hiện đoạn mã (đã sửa lỗi), chỉ có một đối tượng chuỗi “Peter Parker” và biến `students` đang tham chiếu đến nó. Mảng ban đầu (nếu được khởi tạo đúng) không còn được tham chiếu đến. Vì vậy, chỉ có 1 đối tượng được tham chiếu.
Tuy nhiên, vì đoạn mã gốc bị lỗi, nên không có đáp án nào đúng hoàn toàn. Nếu bỏ qua lỗi biên dịch và xem xét đoạn mã đã sửa, đáp án A là hợp lý nhất.
Lời giải:
Đáp án đúng: A
Câu lệnh `if CONDITION { Khối lệnh }` là một cấu trúc điều khiển trong lập trình. Nó hoạt động như sau: Đầu tiên, `CONDITION` được kiểm tra. Nếu `CONDITION` là đúng (true), thì `Khối lệnh` bên trong dấu ngoặc nhọn `{}` sẽ được thực thi. Nếu `CONDITION` là sai (false), thì `Khối lệnh` sẽ bị bỏ qua và chương trình sẽ tiếp tục thực hiện các lệnh tiếp theo sau khối `if`. Như vậy, đáp án A mô tả chính xác hoạt động của câu lệnh `if`.
Lời giải:
Đáp án đúng: D
Đầu tiên, ta xét dòng lệnh `expletive.substring(1,3)`. Phương thức `substring(int beginIndex, int endIndex)` trích xuất một chuỗi con từ chuỗi gốc, bắt đầu từ vị trí `beginIndex` (bao gồm) đến vị trí `endIndex` (không bao gồm). Trong trường hợp này, `expletive` là "Expletive", `beginIndex` là 1 và `endIndex` là 3. Do đó, chuỗi con được trích xuất là các ký tự ở vị trí 1 và 2, tức là "xp".
Tiếp theo, ta xét dòng lệnh `message = expletive.substring(1,3) + PG13`. Phép toán `+` ở đây thực hiện phép nối chuỗi. Như vậy, `message` sẽ là "xp" nối với "deleted", tức là "xpdeleted".
Vậy đáp án đúng là D. xpldeleted
Tiếp theo, ta xét dòng lệnh `message = expletive.substring(1,3) + PG13`. Phép toán `+` ở đây thực hiện phép nối chuỗi. Như vậy, `message` sẽ là "xp" nối với "deleted", tức là "xpdeleted".
Vậy đáp án đúng là D. xpldeleted
Lời giải:
Đáp án đúng: C
Đoạn code trên có lỗi về mặt logic thụt lề. Theo như đoạn code được viết, mệnh đề `else System.out.println(-b/a);` được hiểu là thuộc về `if (a == 0)` chứ không phải là trường hợp ngược lại. Tuy nhiên, nếu chúng ta giả sử rằng ý định của người viết code là `else` này thuộc về `if (a == 0)` thì chương trình sẽ hoạt động như sau:
1. `double a, b;`: Khai báo hai biến `a` và `b` kiểu `double`.
2. `a = 5; b = 8;`: Gán giá trị `a = 5` và `b = 8`.
3. `if (a == 0)`: Kiểm tra nếu `a` bằng 0. Trong trường hợp này, `a = 5` nên điều kiện này sai.
4. `else System.out.println(-b/a);`: Vì điều kiện `a == 0` sai, chương trình sẽ thực hiện lệnh `else`. Tính `-b/a = -8/5 = -1.6` và in ra giá trị này.
Vậy đáp án đúng là -1.6.
*Lưu ý*: Nếu đoạn code được viết đúng cú pháp thụt lề và `else` thuộc về `if (a == 0)`, chương trình sẽ chạy như sau:
1. `double a, b;`: Khai báo hai biến `a` và `b` kiểu `double`.
2. `a = 5; b = 8;`: Gán giá trị `a = 5` và `b = 8`.
3. `if (a == 0)`: Kiểm tra nếu `a` bằng 0. Trong trường hợp này, `a = 5` nên điều kiện này sai.
4. Chương trình không thực hiện bất kỳ lệnh nào vì không có `else` tương ứng với `if (b != 0)`.
Trong trường hợp này, không có output nào được in ra. Tuy nhiên, dựa trên các đáp án được đưa ra, ta có thể kết luận rằng người ra đề muốn `else` thuộc về `if (a == 0)`.
1. `double a, b;`: Khai báo hai biến `a` và `b` kiểu `double`.
2. `a = 5; b = 8;`: Gán giá trị `a = 5` và `b = 8`.
3. `if (a == 0)`: Kiểm tra nếu `a` bằng 0. Trong trường hợp này, `a = 5` nên điều kiện này sai.
4. `else System.out.println(-b/a);`: Vì điều kiện `a == 0` sai, chương trình sẽ thực hiện lệnh `else`. Tính `-b/a = -8/5 = -1.6` và in ra giá trị này.
Vậy đáp án đúng là -1.6.
*Lưu ý*: Nếu đoạn code được viết đúng cú pháp thụt lề và `else` thuộc về `if (a == 0)`, chương trình sẽ chạy như sau:
1. `double a, b;`: Khai báo hai biến `a` và `b` kiểu `double`.
2. `a = 5; b = 8;`: Gán giá trị `a = 5` và `b = 8`.
3. `if (a == 0)`: Kiểm tra nếu `a` bằng 0. Trong trường hợp này, `a = 5` nên điều kiện này sai.
4. Chương trình không thực hiện bất kỳ lệnh nào vì không có `else` tương ứng với `if (b != 0)`.
Trong trường hợp này, không có output nào được in ra. Tuy nhiên, dựa trên các đáp án được đưa ra, ta có thể kết luận rằng người ra đề muốn `else` thuộc về `if (a == 0)`.
Lời giải:
Đáp án đúng: B
Đề bài yêu cầu xác định kết quả in ra màn hình của đoạn code `System.out.printf(“%,.2f”, 10000.0 / 3.0);`. Đoạn code này sử dụng phương thức `printf` để định dạng và in ra một số thực.
Phân tích chuỗi định dạng `“%,.2f”`:
- `%`: Bắt đầu một đặc tả định dạng.
- `,`: Thêm dấu phẩy vào số để phân tách hàng nghìn (ví dụ: 1,000).
- `.2`: Chỉ định rằng số sẽ được làm tròn đến hai chữ số thập phân.
- `f`: Chỉ định rằng đầu vào là một số thực dấu phẩy động (float hoặc double).
Biểu thức `10000.0 / 3.0` có kết quả là `3333.3333333...`. Khi áp dụng định dạng `%,.2f`, số này sẽ được định dạng như sau:
1. Làm tròn đến hai chữ số thập phân: `3333.33`
2. Thêm dấu phẩy phân tách hàng nghìn: `3,333.33`
Vậy, đáp án đúng là "C. 3,333.33".
Phân tích chuỗi định dạng `“%,.2f”`:
- `%`: Bắt đầu một đặc tả định dạng.
- `,`: Thêm dấu phẩy vào số để phân tách hàng nghìn (ví dụ: 1,000).
- `.2`: Chỉ định rằng số sẽ được làm tròn đến hai chữ số thập phân.
- `f`: Chỉ định rằng đầu vào là một số thực dấu phẩy động (float hoặc double).
Biểu thức `10000.0 / 3.0` có kết quả là `3333.3333333...`. Khi áp dụng định dạng `%,.2f`, số này sẽ được định dạng như sau:
1. Làm tròn đến hai chữ số thập phân: `3333.33`
2. Thêm dấu phẩy phân tách hàng nghìn: `3,333.33`
Vậy, đáp án đúng là "C. 3,333.33".
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng