wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

TN LTM code

Total questions: 28

Worksheet time: 14mins

Name
Class
Date
1.

Đoạn code sau làm gì?

PipedInputStream in = new PipedInputStream();

PipedOutputStream out = new PipedOutputStream();

in.connect(out);

out.write("Hello".getBytes());

byte[] buffer = new byte[5];

in.read(buffer);

System.out.println(new String(buffer));

a)

In ra "Hello"

b)

Gây lỗi IOException

c)

Không in gì do chưa đóng ống dẫn

d)

In ra ký tự rỗng

2.

Lỗi trong đoạn code sau là gì?

try {

PipedOutputStream out = new PipedOutputStream();

out.write("Test".getBytes()); }

catch (IOException e) {

System.out.println("Lỗi I/O");

}

a)

Thiếu import java.io.*

b)

Chưa kết nối PipedOutputStream với PipedInputStream

c)

Sai phương thức write()

d)

Không có lỗi

3.

Kết quả của đoạn code sau là gì?

Thread thread = new Thread(() -> { System.out.print("X"); });

thread.start();

System.out.print("Y");

a)

Luôn in "XY"

b)

Luôn in "YX"

c)

Có thể in "XY" hoặc "YX" tùy lần chạy

d)

Lỗi biên dịch

4.

Đoạn code sau thiếu gì để đọc dữ liệu từ bàn phím?

BufferedReader reader = new BufferedReader(new InputStreamReader(_______));

String input = reader.readLine();

a)

System.out

b)

System.in

c)

FileInputStream

d)

PipedInputStream

5.

Phương thức nào sau đây đóng cả PipedInputStream và PipedOutputStream?

void closePipe(PipedInputStream in, PipedOutputStream out)

{ // Chọn phương thức phù hợp }

a)

in.close(); out.close();

b)

try (in; out) { ... } (Java 9+)

c)

Pipe.closeAll(in, out);

d)

Không cần đóng

6.

Đoạn code sau có gì sai?

PipedInputStream in = new PipedInputStream();

PipedOutputStream out = new PipedOutputStream();

out.connect(in);

// Dòng này out.write(65);

a)

Sai thứ tự kết nối (phải là in.connect(out))

b)

Thiếu import

c)

Không bắt IOException

d)

Không có lỗi

7.

Kết quả của đoạn code sau?

try {

int x = 10 / 0;

} catch (ArithmeticException e) {

System.out.print("A");

} catch (Exception e) {

System.out.print("B");

} finally {

System.out.print("C");

}

a)

AC

b)

BC

c)

A

d)

Lỗi biên dịch

8.

Đâu là cách đúng để khởi tạo một luồng?

a)

new Thread().run();

b)

new Thread(() -> {}).start();

c)

Thread.execute(() -> {});

d)

Thread.start();

9.

Code sau in ra gì nếu nhập "5" từ bàn phím? BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(reader.readLine()); System.out.print(num * 2);

a)

10

b)

55

c)

Lỗi nếu nhập không phải số

d)

Không in gì

10.

Lớp nào dùng để ghi dữ liệu dạng văn bản vào file?

a)

FileOutputStream

b)

PrintWriter

c)

DataOutputStream

d)

PipedOutputStream

11.

PipedInputStream in = new PipedInputStream(); PipedOutputStream out = new PipedOutputStream(in); out.write("ABC".getBytes()); int x = in.read(); System.out.println((char)x);

x sẽ là:

a)

A

b)

B

c)

C

d)

Lỗi

12.

Socket socket = new Socket("localhost", 9090); OutputStream os = socket.getOutputStream(); os.write(72); socket.close();

a)

Gửi ký tự 'H' qua TCP

b)

In 'H'

c)

Lỗi

d)

Không gửi gì

13.

ServerSocket server = new ServerSocket(9000); Socket client = server.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream())); System.out.println(br.readLine());

Đoạn code này thực hiện việc gì ?

a)

Đọc dữ liệu từ client TCP

b)

Đọc từ bàn phím

c)

Lỗi kết nối

d)

Không làm gì

14.

DatagramSocket socket = new DatagramSocket(); byte[] buf = "UDP".getBytes(); DatagramPacket p = new DatagramPacket(buf, buf.length, InetAddress.getLocalHost(), 1234); socket.send(p);

Doạn code này thực hiện việc gì?

a)

Gửi gói UDP

b)

Gửi TCP

c)

Lỗi runtime

d)

Không làm gì

15.

PipedOutputStream out = new PipedOutputStream(); PipedInputStream in = new PipedInputStream(out); new Thread(() -> { try {

out.write("X".getBytes());

} catch (Exception e) {} }

).start();

System.out.println((char)in.read());

Kết quả của đoạn code:

a)

X

b)

Lỗi

c)

Không in gì

d)

null

16.

Socket s = new Socket("localhost", 8000); PrintWriter pw = new PrintWriter(s.getOutputStream()); pw.print("Hello"); pw.flush();

Kết quả của đoạn code:

a)

Gửi "Hello" qua TCP

b)

In "Hello"

c)

Lỗi biên dịch

d)

Không gửi gì

17.

DatagramSocket s = new DatagramSocket(9999); byte[] buf = new byte[10]; DatagramPacket p = new DatagramPacket(buf, buf.length); s.receive(p); System.out.println(new String(p.getData()).trim());
Đoạn code này dùng để làm gì?

a)

Nhận dữ liệu từ UDP

b)

Gửi dữ liệu

c)

Đọc từ file

d)

In lỗi

18.

Socket s = new Socket("localhost", 5000); ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream()); oos.writeObject("Java");

Kết quả của đoạn code:

a)

Gửi chuỗi "Java" dạng object qua TCP

b)

Lỗi vì không serializable

c)

Không gửi gì

d)

Gửi byte

19.

ServerSocket ss = new ServerSocket(4000); Socket s = ss.accept(); ObjectInputStream ois = new ObjectInputStream(s.getInputStream()); String msg = (String) ois.readObject(); System.out.println(msg);
Kết quả của đoạn code:

a)

Nhận object qua TCP

b)

Lỗi runtime

c)

Nhận text UDP

d)

Không in gì

20.

Registry registry = LocateRegistry.createRegistry(1099); registry.rebind("echo", new RemoteImpl());

Đoạn code này dùng để làm gì ?

a)

Đăng ký RMI object

b)

Tạo pipe

c)

Gửi TCP

d)

Lỗi

21.

Socket s = new Socket("localhost", 3000); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); System.out.println(br.readLine());

Đoạn code này dùng để:

a)

Nhận dòng từ TCP

b)

Gửi dữ liệu

c)

Đọc file

d)

Lỗi socket

22.

PipedInputStream in = new PipedInputStream(); PipedOutputStream out = new PipedOutputStream(in); new Thread(() -> { try { out.write("Data".getBytes()); out.close(); } catch (Exception e) {} }).start(); int b; while ((b = in.read()) != -1) System.out.print((char) b);

a)

In ra dữ liệu

b)

Không có gì xảy ra

c)

Lỗi runtime

d)

Gửi dữ liệu

23.

DatagramSocket ds = new DatagramSocket(); byte[] buf = new byte[0]; DatagramPacket dp = new DatagramPacket(buf, 0, InetAddress.getByName("127.0.0.1"), 1234); ds.send(dp);

a)

Gửi gói rỗng UDP

b)

Lỗi kích thước

c)

Không thể nối kết UDP

d)

Không gửi

24.

DatagramSocket ds = new DatagramSocket(8888); byte[] b = new byte[100]; DatagramPacket p = new DatagramPacket(b, b.length); ds.receive(p); System.out.println(new String(b).trim());

a)

Nhận và in nội dung UDP

b)

Gửi TCP

c)

In IP người gửi

d)

Lỗi

25.

Socket s = new Socket("localhost", 2222); DataInputStream dis = new DataInputStream(s.getInputStream()); int x = dis.readInt(); System.out.println(x);

a)

Nhận số nguyên qua TCP

b)

Lỗi vì readInt

c)

Không in gì

d)

Gửi dữ liệu

26.

DatagramSocket socket = new DatagramSocket();

byte[] data = new byte[1024];

DatagramPacket packet = new DatagramPacket(data, data.length);

socket.receive(packet);

// Lỗi ở đây?

a)

Thiếu khai báo cổng

b)

Chưa chỉ định địa chỉ/port của Server trước khi nhận

c)

Sai kiểu dữ liệu byte[]

d)

Không có lỗi

27.

MulticastSocket socket = new MulticastSocket(9876);

socket.joinGroup(InetAddress.getByName("230.0.0.1"));

byte[] buffer = new byte[1024];

while (true) {

DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

socket.receive(packet); // Điểm chậm

String message = new String(packet.getData(), 0, packet.getLength());

System.out.println(message);

}
Đoạn code Multicast trên tại sao lại chậm ?

a)

Không dùng bộ đệm (buffer) tái sử dụng

b)

Thiếu setSoTimeout()

c)

Không kiểm tra NullPointerException

d)

Lỗi do joinGroup()

28.

byte[] largeData = new byte[65507]; // Kích thước tối đa

DatagramPacket packet = new DatagramPacket(largeData, largeData.length);

socket.send(packet);
Làm sao để hạn chế việc bị mất gói tin khi gửi qua UDP ?

a)

Chia nhỏ dữ liệu thành các packet < 1500 byte

b)

Dùng TCP thay UDP

c)

Tăng kích thước buffer

d)

Dùng hàm khác xử lý