JavaScript is required
Danh sách đề

300+ câu hỏi trắc nghiệm Lập trình mạng có đáp án kèm giải thích - Đề 5

50 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 50
Nếu biến chr có kiểu dữ liệu char (Character) thì câu lệnh if nào sau đây đúng cú pháp?
A.

if (chr = "a")

B.

if (chr = 'a')

C.

if (chr == "a")

D.

if (chr == 'a')

Đáp án
Đáp án đúng: D
Câu hỏi kiểm tra kiến thức về cú pháp câu lệnh `if` trong ngôn ngữ lập trình C/C++ (hoặc các ngôn ngữ tương tự) khi so sánh biến kiểu `char`.

* Kiểu dữ liệu `char`: Kiểu `char` dùng để lưu trữ một ký tự duy nhất. Ký tự được đặt trong cặp dấu nháy đơn (`'...'`).
* So sánh bằng: Để so sánh hai giá trị bằng nhau, ta dùng toán tử `==`.
* Gán giá trị: Toán tử `=` dùng để gán giá trị.
* Dấu nháy đơn và nháy kép: Dấu nháy đơn (`'...'`) dùng cho ký tự, dấu nháy kép (`"..."`) dùng cho chuỗi.

Phân tích các đáp án:

* A. `if (chr = "a")`: Sai. Sử dụng toán tử gán `=` thay vì toán tử so sánh `==`. Ngoài ra, `"a"` là một chuỗi (string), không phải là một ký tự (character). Vì `chr` là kiểu `char`, nên so sánh với chuỗi là sai.
* B. `if (chr = 'a')`: Sai. Sử dụng toán tử gán `=` thay vì toán tử so sánh `==`. Câu lệnh này sẽ gán giá trị 'a' cho `chr` và biểu thức điều kiện sẽ đánh giá thành giá trị của `chr` (khác 0 nên thường được coi là true), chứ không thực hiện so sánh.
* C. `if (chr == "a")`: Sai. Sử dụng toán tử so sánh `==` là đúng, nhưng `"a"` là một chuỗi (string), không phải là một ký tự (character). Do đó không thể so sánh `chr` kiểu `char` với một chuỗi.
* D. `if (chr == 'a')`: Đúng. Sử dụng toán tử so sánh `==` để so sánh `chr` (kiểu `char`) với ký tự `'a'` (kiểu `char`). Đây là cách so sánh đúng cú pháp và ngữ nghĩa.

Vậy đáp án đúng là D.

Danh sách câu hỏi:

Lời giải:
Đáp án đúng: D
Câu hỏi kiểm tra kiến thức về cú pháp câu lệnh `if` trong ngôn ngữ lập trình C/C++ (hoặc các ngôn ngữ tương tự) khi so sánh biến kiểu `char`.

* Kiểu dữ liệu `char`: Kiểu `char` dùng để lưu trữ một ký tự duy nhất. Ký tự được đặt trong cặp dấu nháy đơn (`'...'`).
* So sánh bằng: Để so sánh hai giá trị bằng nhau, ta dùng toán tử `==`.
* Gán giá trị: Toán tử `=` dùng để gán giá trị.
* Dấu nháy đơn và nháy kép: Dấu nháy đơn (`'...'`) dùng cho ký tự, dấu nháy kép (`"..."`) dùng cho chuỗi.

Phân tích các đáp án:

* A. `if (chr = "a")`: Sai. Sử dụng toán tử gán `=` thay vì toán tử so sánh `==`. Ngoài ra, `"a"` là một chuỗi (string), không phải là một ký tự (character). Vì `chr` là kiểu `char`, nên so sánh với chuỗi là sai.
* B. `if (chr = 'a')`: Sai. Sử dụng toán tử gán `=` thay vì toán tử so sánh `==`. Câu lệnh này sẽ gán giá trị 'a' cho `chr` và biểu thức điều kiện sẽ đánh giá thành giá trị của `chr` (khác 0 nên thường được coi là true), chứ không thực hiện so sánh.
* C. `if (chr == "a")`: Sai. Sử dụng toán tử so sánh `==` là đúng, nhưng `"a"` là một chuỗi (string), không phải là một ký tự (character). Do đó không thể so sánh `chr` kiểu `char` với một chuỗi.
* D. `if (chr == 'a')`: Đúng. Sử dụng toán tử so sánh `==` để so sánh `chr` (kiểu `char`) với ký tự `'a'` (kiểu `char`). Đây là cách so sánh đúng cú pháp và ngữ nghĩa.

Vậy đáp án đúng là D.
Lời giải:
Đáp án đúng: D
Đoạn mã được thực hiện như sau:

1. `int x = 12, y = 5, z;` Khai báo và khởi tạo các biến x = 12, y = 5. Biến z chưa được khởi tạo.
2. `z = y--;` Gán giá trị của y cho z (z = 5), sau đó giảm y đi 1 (y = 4).
3. `x += z;` Tương đương với x = x + z; x = 12 + 5 = 17.

Vậy sau khi thực hiện xong, x = 17.

Câu 3:

Trong Java, đa kế thừa thực hiện bằng cách nào?
Lời giải:
Đáp án đúng: C
Trong Java, một lớp (class) chỉ có thể kế thừa trực tiếp từ một lớp khác (single inheritance). Tuy nhiên, Java hỗ trợ đa kế thừa thông qua việc sử dụng Interface. Một lớp có thể implements nhiều Interface, và một Interface có thể extends nhiều Interface khác. Do đó, đáp án C là chính xác nhất: Thừa kế từ 1 lớp và 1 hay nhiều Interface.

Câu 4:

Đoạn mã sau sai chỗ nào?

public class Question {
public static void main(String[] args) {
Boolean b = new Boolean("TRUE");
if (b) {
for (Integer i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
}

Lời giải:
Đáp án đúng: D
Đoạn mã trên có hai lỗi:

1. Lỗi 1: Trong Java, khi sử dụng `Boolean` (đối tượng) trong câu lệnh `if`, Java sẽ tự động unboxing (chuyển đổi từ `Boolean` về `boolean`). Tuy nhiên, giá trị của `Boolean b` được khởi tạo bằng chuỗi "TRUE". Trong Java, `new Boolean(String)` chỉ trả về `true` nếu chuỗi truyền vào (không phân biệt hoa thường) là "true". Nếu không, nó sẽ trả về `false`. Như vậy, trong trường hợp này, `b` sẽ có giá trị `false`, và khối mã trong `if` sẽ không được thực thi.

2. Lỗi 2: Tương tự như trên, khi sử dụng `Integer` trong vòng lặp `for`, Java cũng thực hiện unboxing để chuyển đổi `Integer` về `int`. Điều này hoàn toàn hợp lệ và không gây ra lỗi.

Vì vậy, lỗi chính nằm ở việc sử dụng `Boolean` trong câu lệnh `if` và giá trị khởi tạo của nó, dẫn đến điều kiện `if` luôn sai. Câu lệnh `for` sử dụng `Integer` không gây ra lỗi.

Do đó, đáp án đúng nhất là B, vì lỗi nằm ở cách sử dụng `Boolean` trong câu lệnh `if` và giá trị khởi tạo của nó.

Cụ thể:

- `Boolean b = new Boolean("TRUE");` sẽ gán `false` cho `b` vì chuỗi truyền vào không phải là "true" (chú ý phân biệt hoa thường).
- `if (b)` sẽ tương đương với `if (false)`, dẫn đến khối mã bên trong `if` không được thực thi.

Câu C sai vì việc sử dụng `Integer` trong vòng lặp `for` là hợp lệ do unboxing.

Câu D sai vì chỉ có câu B đúng, còn câu C sai.
Lời giải:
Đáp án đúng: C
Đoạn chương trình Java này liên quan đến việc khởi tạo đối tượng và thứ tự gọi constructor trong quan hệ kế thừa.

1. `public class S1`: Định nghĩa một lớp tên là `S1`.
2. `public static void main(String[] args)`: Phương thức `main` là điểm bắt đầu của chương trình. Bên trong `main`, một đối tượng của lớp `S2` được tạo ra: `new S2();`.
3. `S1() { System.out.print("S1"); }`: Đây là constructor của lớp `S1`. Khi một đối tượng của `S1` (hoặc một lớp con của `S1`) được tạo, constructor này sẽ in ra "S1".
4. `class S2 extends S1`: Lớp `S2` kế thừa từ lớp `S1`.
5. `S2() { System.out.print("S2"); }`: Đây là constructor của lớp `S2`. Khi một đối tượng của `S2` được tạo, constructor này sẽ in ra "S2".

Khi `new S2()` được gọi, các bước sau xảy ra:

- Đầu tiên, constructor của lớp cha (`S1`) được gọi một cách ngầm định trước khi constructor của lớp con (`S2`) được thực thi. Điều này đảm bảo rằng các thuộc tính và trạng thái của lớp cha được khởi tạo trước khi lớp con thực hiện việc khởi tạo của riêng nó.
- Do đó, "S1" được in ra từ constructor của `S1`.
- Tiếp theo, constructor của `S2` được thực thi và in ra "S2".

Kết quả là, chương trình in ra "S1S2".

Câu 7:

Chọn khai báo đúng cho phương thức main
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

Câu 8:

Miền giá trị của biến kiểu Short là:
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

Câu 9:

Chọn câu phát biểu đúng:
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

Câu 11:

UDP được gọi là giao thức:

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

Câu 12:

Cho đoạn mã:

String m = "Hello";

S.Send(Encoding.ASCII.GetBytes(m));

Để đoạn mã trên thực thi đúng, thì biến S phải đảm bảo điều gì?

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

Câu 13:

Trong lập mô hình Client/Server concurrent, số process tạo ở Server:

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

Câu 15:

Trong mô hình lập trình TCP client/server, thì:

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

Câu 17:

DNS là gì?

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

Câu 18:

Máy tính đang được điều khiển qua mạng được gọi là:

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

Câu 19:

Cho đoạn mã sau:

Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,

ProtocolType.Udp);

IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 9050);

server.Bind(localEP);

Các mệnh đề nào sau đây là đúng?

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

Câu 20:

Cho câu lệnh:

Socket S2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Chọn câu đúng nhất trong những câu sau:

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

Câu 22:

Cho đoạn lệnh:

byte[] d = new byte[100]

int s = socket.Receive(d);

Những mệnh đề nào sau đây là đúng? (chọn một hoặc nhiều)

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

Câu 26:

Muốn khai báo hằng số PI trong Java thì dùng câu lệnh nào sau đây?
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
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
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

Câu 38:

Phương thức receive() của lớp DatagramSocket có thể gây ra Exception nào?
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

Câu 40:

Chọn các component có phát sinh action event
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

Câu 42:

Chọn phương thức dùng để xác định vị trí và kích thước của các component
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

Câu 45:

Socket là gì?
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

Câu 46:

Phương thức accept() của lớp ServerSocket có tác dụng gì?
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

Câu 47:

UDP sử dụng mô hình mạng nào?
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

Câu 48:

Trước khi gởi một DatagramPacket đi, ta có thể đặt cổng quá trình nhận trênDatagramPacket này bằng phương thức?
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

Câu 49:

Trong lớp DatagramSocket phương thức khởi dựng để tạo kết nối UDP là?
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

Câu 50:

Một nhóm multicast là một tập hợp các host cùng chia sẻ một địa chỉ multicast. Để tạo một nhóm multicast ta làm như thế nào?
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