Cho đoạn mã sau đây. Hãy cho biết kết quả khi thực thi
final int i = 100;
byte b = i;
System.out.println(b);
final int i = 100;
byte b = i;
System.out.println(b);
byte b = i;
System.out.println(b);
Trả lời:
Đáp án đúng: C
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Đoạn code trên thực hiện một vòng lặp `while` với biến `i` khởi tạo bằng 5 và `sum` khởi tạo bằng 0. Vòng lặp tiếp tục cho đến khi `i` không còn lớn hơn 0. Trong mỗi lần lặp, `i` giảm đi 1 và giá trị mới của `i` được cộng vào `sum`.
Các bước thực hiện:
1. `i = 5`, `sum = 0`
2. `i > 0` (5 > 0) là đúng. `i` giảm thành 4, `sum = 0 + 4 = 4`
3. `i > 0` (4 > 0) là đúng. `i` giảm thành 3, `sum = 4 + 3 = 7`
4. `i > 0` (3 > 0) là đúng. `i` giảm thành 2, `sum = 7 + 2 = 9`
5. `i > 0` (2 > 0) là đúng. `i` giảm thành 1, `sum = 9 + 1 = 10`
6. `i > 0` (1 > 0) là đúng. `i` giảm thành 0, `sum = 10 + 0 = 10`
7. `i > 0` (0 > 0) là sai. Vòng lặp kết thúc.
Vậy giá trị cuối cùng của `sum` là 10.
Các bước thực hiện:
1. `i = 5`, `sum = 0`
2. `i > 0` (5 > 0) là đúng. `i` giảm thành 4, `sum = 0 + 4 = 4`
3. `i > 0` (4 > 0) là đúng. `i` giảm thành 3, `sum = 4 + 3 = 7`
4. `i > 0` (3 > 0) là đúng. `i` giảm thành 2, `sum = 7 + 2 = 9`
5. `i > 0` (2 > 0) là đúng. `i` giảm thành 1, `sum = 9 + 1 = 10`
6. `i > 0` (1 > 0) là đúng. `i` giảm thành 0, `sum = 10 + 0 = 10`
7. `i > 0` (0 > 0) là sai. Vòng lặp kết thúc.
Vậy giá trị cuối cùng của `sum` là 10.
Lời giải:
Đáp án đúng: B
Đoạn chương trình Java này liên quan đến việc truyền tham chiếu đối tượng và ảnh hưởng của nó đến các biến.
Hàm `first()`:
1. Khởi tạo `i = 5` (biến cục bộ).
2. Tạo một đối tượng `Value` và gán `v.i = 25`.
3. Gọi hàm `second(v, i)`.
4. Sau khi `second()` thực thi, in ra giá trị của `v.i`.
Hàm `second(Value v, int i)`:
1. Gán `i = 0` (chỉ ảnh hưởng đến bản sao cục bộ của `i`).
2. Gán `v.i = 20` (thay đổi giá trị của thuộc tính `i` của đối tượng `Value` được tham chiếu bởi `v`).
3. Tạo một đối tượng `Value` mới và gán tham chiếu của đối tượng mới này cho `v`. Lúc này `v` không còn trỏ đến đối tượng `Value` ban đầu được truyền vào nữa. Vì vậy lệnh `System.out.print(v.i + " " + i);` in ra `15 0` (giá trị mặc định của `i` trong class `Value` và giá trị của biến `i` trong hàm `second`)
Vì vậy, hàm `second` in ra "15 0".
Sau khi `second` thực thi, hàm `first` in ra giá trị `v.i`. Vì trong hàm `second`, biến `v` đã bị thay đổi để tham chiếu đến một đối tượng `Value` mới, nên đối tượng `Value` ban đầu được tạo trong hàm `first`, mà `v` tham chiếu đến, đã bị thay đổi giá trị `i` thành 20. Do đó, hàm `first` in ra "20".
Vậy kết quả in ra màn hình là: 15 0 20
Hàm `first()`:
1. Khởi tạo `i = 5` (biến cục bộ).
2. Tạo một đối tượng `Value` và gán `v.i = 25`.
3. Gọi hàm `second(v, i)`.
4. Sau khi `second()` thực thi, in ra giá trị của `v.i`.
Hàm `second(Value v, int i)`:
1. Gán `i = 0` (chỉ ảnh hưởng đến bản sao cục bộ của `i`).
2. Gán `v.i = 20` (thay đổi giá trị của thuộc tính `i` của đối tượng `Value` được tham chiếu bởi `v`).
3. Tạo một đối tượng `Value` mới và gán tham chiếu của đối tượng mới này cho `v`. Lúc này `v` không còn trỏ đến đối tượng `Value` ban đầu được truyền vào nữa. Vì vậy lệnh `System.out.print(v.i + " " + i);` in ra `15 0` (giá trị mặc định của `i` trong class `Value` và giá trị của biến `i` trong hàm `second`)
Vì vậy, hàm `second` in ra "15 0".
Sau khi `second` thực thi, hàm `first` in ra giá trị `v.i`. Vì trong hàm `second`, biến `v` đã bị thay đổi để tham chiếu đến một đối tượng `Value` mới, nên đối tượng `Value` ban đầu được tạo trong hàm `first`, mà `v` tham chiếu đến, đã bị thay đổi giá trị `i` thành 20. Do đó, hàm `first` in ra "20".
Vậy kết quả in ra màn hình là: 15 0 20
Lời giải:
Đáp án đúng: C
Đoạn chương trình bị lỗi do luồng nhập `buf.readLine()` có thể gây ra ngoại lệ `IOException`, nhưng nó không được xử lý trong khối `try...catch`. Lỗi này có thể xảy ra nếu có vấn đề với luồng nhập, ví dụ như luồng bị đóng hoặc bị gián đoạn. Để khắc phục, cần đưa cả thao tác đọc từ luồng vào khối `try...catch`.
Các phương án khác không đúng vì:
- Biến `m` và `x` được khai báo bên trong phương thức `main` là hoàn toàn hợp lệ.
- Việc khai báo biến `m` và `x` là static không liên quan đến lỗi trong đoạn chương trình này.
Các phương án khác không đúng vì:
- Biến `m` và `x` được khai báo bên trong phương thức `main` là hoàn toàn hợp lệ.
- Việc khai báo biến `m` và `x` là static không liên quan đến lỗi trong đoạn chương trình này.
Lời giải:
Đáp án đúng: B
Trong lập trình Socket sử dụng giao thức UDP/IP, cả chương trình client và server đều sử dụng `DatagramSocket` để giao tiếp.
* DatagramSocket: Được sử dụng cho giao tiếp không kết nối (connectionless) dựa trên giao thức UDP. Client tạo `DatagramSocket` để gửi và nhận các datagram (gói tin) đến server.
* Socket: Là một lớp cơ bản, thường được sử dụng với giao thức TCP (giao tiếp có kết nối).
* ServerSocket: Được sử dụng bởi server trong giao tiếp TCP để lắng nghe các kết nối đến từ client, không phù hợp với UDP.
* UDPSocket: Không phải là một lớp chuẩn trong Java Socket API. Tên lớp chính xác là `DatagramSocket`.
Do đó, đáp án đúng là B.
* DatagramSocket: Được sử dụng cho giao tiếp không kết nối (connectionless) dựa trên giao thức UDP. Client tạo `DatagramSocket` để gửi và nhận các datagram (gói tin) đến server.
* Socket: Là một lớp cơ bản, thường được sử dụng với giao thức TCP (giao tiếp có kết nối).
* ServerSocket: Được sử dụng bởi server trong giao tiếp TCP để lắng nghe các kết nối đến từ client, không phù hợp với UDP.
* UDPSocket: Không phải là một lớp chuẩn trong Java Socket API. Tên lớp chính xác là `DatagramSocket`.
Do đó, đáp án đúng là B.
Lời giải:
Đáp án đúng: A
Phương thức `getAddress()` của lớp `DatagramPacket` trong Java trả về một đối tượng thuộc lớp `InetAddress`. Đối tượng `InetAddress` này đại diện cho địa chỉ IP của máy gửi gói tin datagram đến. Các lựa chọn khác không đúng vì:
- `DatagramSocket` là lớp đại diện cho socket để gửi và nhận các gói datagram.
- `String` chứa địa chỉ IP hoặc tên miền không phải là kiểu dữ liệu mà phương thức `getAddress()` trả về, nó trả về một đối tượng `InetAddress`.
Vì vậy, đáp án chính xác là A.
- `DatagramSocket` là lớp đại diện cho socket để gửi và nhận các gói datagram.
- `String` chứa địa chỉ IP hoặc tên miền không phải là kiểu dữ liệu mà phương thức `getAddress()` trả về, nó trả về một đối tượng `InetAddress`.
Vì vậy, đáp án chính xác là A.
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