Trong lập trình UDP Socket, muốn gửi dữ liệu từ Server đến Client thì dùng phương thức send() của đối tượng thuộc lớp nào. [A] Socket[r]
Trang 1CÂU HỎI ÔN THI TRẮC NGHIỆM MÔN LẬP TRÌNH MẠNG
Biên Soạn : GV Bùi Tiến Trường
Câu Hỏi Số 001 :
Chọn phát biểu đúng
[A] InputStream và OutputStream là hai luồng dữ liệu kiểu byte
[B] Reader và Writer là hai luồng dữ liệu kiểu character
[B] Sử dụng phương thức createReader() của lớp InputStreamReader
C] Tạo một thể hiện của InputStream rồi truyền vào cho hàm khởi tạo của
[B] (2) Lớp Writer có thể được dùng để ghi các ký tự Unicode ra luồng xuất
[C] (3) Lớp Writer có thể được dùng để ghi giá trị các kiểu dữ liệu cơ sở ra luồng xuấtD] Câu (1) và (2) đúng
Câu Hỏi Số 005 :
Khai báo nào sau đây là khai báo hợp lệ của một lớp abstract?
A] abstract class Vehicle { abstract void display(); }
[B] class Vehicle { abstract void display(); }
[C] abstract class Vehicle { abstract void display( System.out.println("Car"); }
[D] abstract Vehicle { abstract void display(); }
Trang 2Phát biểu nào sau đây SAI về từ khóa static?
[A] Một thuộc tính static được dùng chung bởi tất cả các đối tượng thuộc lớp đó
[B] Một phương thức static có thể được gọi mà không cần khởi tạo đối tượng
[C] Từ khóa static không dùng trong khai báo lớp
D] Một phương thức static có thể sử dụng tất cả các biến trong lớp
Trang 3pulic static void main(String []args) {
1 StringBuffer result = new StringBuffer();
Trang 4[A] Thừa kế từ 2 hay nhiều lớp
[B] Thừa kế từ 1 Interface và 1 hay nhiều lớp
C] Thừa kế từ 1 lớp và 1 hay nhiều Interface
C] Mọi lớp đều kế thừa trực tiếp hoặc gián tiếp từ lớp Object
[D] Tất cả các câu trên đều sai
Đoạn mã sau sai chỗ nào?
public class Question {
public static void main(String[] args) {
Boolean b = new Boolean("TRUE");
[A] (1) Đoạn mã không có lỗi
[B] (2) Điều kiện của câu lệnh if phải có kiểu boolean thay vì Boolean
[C] (3) Chỉ số của câu lệnh for là int thay vì Integer
D] Câu (2) và (3) đúng
Câu Hỏi Số 021 :
Phương thức nào sau đây sẽ làm cho giá trị biến s bị thay đổi
Trang 5chọn phát biểu đúng cho hàm khởi tạo
[A] một lớp sẽ kế thừa các hàm khởi tạo từ lớp cha
B] Trình biên dịch sẽ tự động tạo hàm khởi tạo mặc định nếu lớp không định nghĩa hàm khởi tạo
[C] Tất cả các hàm khởi tạo có kiểu trả về là void
[D] Tất cả các câu trên dều sai
Trang 6Chọn khai báo đúng cho phương thức main
[A] public static void main()
[B] public void main(String[] arg)
C] public static void main(String[] args)
[D] public static int main(String[] arg)
Câu Hỏi Số 028 :
Chọn thứ tự đúng của các thành phần trong một tập tin nguồn
[A] câu lệnh import, khai báo package, khai báo lớp
[B] Khai báo package đầu tiên; thứ tự câu lệnh import và khai báo lớp là tùy ýC] Khai báo package, câu lệnh import, khai báo lớp
[D] Câu lệnh import trước tiên;thứ tự của khai báo package và khai báo lớp là tùy ý
Câu Hỏi Số 029 :
cho câu lệnh sau :
int[] x = new int[25];
Chọn kết quả đúng sau khi thi hành câu lệnh trên
[A] x[24] chưa được định nghĩa
[B] x[25] có giá trị 0
Trang 7public int held;
public void bump(Holder theHolder){ theHolder.held++;
Trang 8Câu Hỏi Số 032 :
Miền giá trị của biến kiểu Short là :
[A] nó phụ thuộc vào nền phần cứng bên dưới
[B] Từ 0 đến 2^16 - 1
C] Từ -2^15 đến 2^15 - 1
[D] Từ -2^31 đến 2^31 - 1
Câu Hỏi Số 033 :
Miền giá trị của biến kiểu byte là :
[A] nó phụ thuộc vào nền phần cứng bên dưới
Biểu thức nào sau đây hợp lệ
[A] String x = "Hello"; int y = 9; x+=y;
[B] String x = "Hello"; int y = 9; x= x + y;
[C] String x = null; int y = (x != null) && (x.length>0)?x.length():0;D] Tất cả các câu đều đúng
Trang 9Câu Hỏi Số 038 :
Đoạn mã nào sau đây in ra màn hình chữ "Equal":
[A] (1) int x = 100; float y = 100.0F;if (x==y){ System.out.println("Equal");}
[B] (2) Integer x = new Integer(100);Integer y = new Integer(100); if (x==y){
System.out.println("Equal");}
[C] (3) String x = "100"; String y = "100"; if (x==y){ System.out.println("Equal");}D] Câu (1) và (3) đúng
Câu Hỏi Số 039 :
Cho biết kết quả sau khi thi hành chương trình sau :
01: public class Short {
02: public static void main(String[] args) {
03: StringBuffer s = new StringBuffer("Hello");
A] Giá trị xuất là Hello
[B] Lỗi biên dịch tại dòng 4 và 5
[C] Không có giá trị xuất
[D] Thông báo NullPointerException
Câu Hỏi Số 040 :
Cho biết kết quả sau khi thực hiện chương trình sau :
public class Xor {
public static void main(String[] args) {
Cho biết kết quả sau khi biên dịch và thi hành chương trình sau :
01: public class Conditional {
02: public static void main(String[] args) {
03: int x = 4;
04: System.out.println("value is " + ((x>4)?99.99:9));
Trang 10[D] Cả hai đều sai
Câu Hỏi Số 045 :
chọn cách sửa ít nhất để đoạn mã sau biên dịch đúng
01: final class Aaa
Trang 1114: System.out.println("In method yyy()");
[C] Chương trình chạy và cho kết quả x = 15
D] Chương trình chạy và cho kết quả x = 3
Câu Hỏi Số 047 :
chọn phát biểu đúng cho chương trình sau :
01: class HasStatic {
02: private static int x = 100;
03: public static void main(String[] args) {
04: HasStatic hs1 = new HasStatic();
Trang 12[B] Chương trình chạy và cho kết quả x = 103
C] Chương trình chạy và cho kết quả x = 104
[D] Tất cả các câu đều sai
public class Bird{
protected static int referenceCount = 0;
public Bird(){referenceCount++;}
protected void fly(){ }
static int getRefCount(){return referenceCount;}
};
01: package abcde;
02:
03: class Parrot extends abcde.Bird{
04: public void fly(){
Trang 13C] Lỗi biên dịch ở dòng 7 tập tin Parrot.java vì phương thức getRefCount() là static tronglớp cha.
[D] Chương trình biên dịch thành công nhưng sẽ phát sinh Exception khi chạy nếu
phương thức fly() của lớp Parrot không được gọi
Câu Hỏi Số 050 :
Chọn phát biểu đúng cho lớp Bird trên và lớp Nightingale sau :
package abcde;
public class Bird{
protected static int referenceCount = 0;
public Bird(){referenceCount++;}
protected void fly(){ }
static int getRefCount(){return referenceCount;}
A] Kết quả trên màn hình là : Before : 0 After : 2
[B] Kết quả trên màn hình là : Before : 0 After : 1
[C] Lỗi biên dịch ở dòng 4 của lớp Nightingale vì không thể overidde thành viên static[D] Lỗi biên dịch ở dòng 10 của lớp Nightingale vì phương thức fly() là protected trong lớp cha
Trang 14[A] byte, short, int, long, floart, double
[B] boolean, byte, short, char, int, long, float, double
[C] byte, short, char, int, long, float, double
D] int, long, float, double
09: public static void main(String []args){
10: Cruncher crun = new Cruncher();
11: char ch = ''p'';
Trang 15[C] Đoạn mã biên dịch được nhưng sẽ phát sinh Exception ở dòng 12
D] Chương trình chạy và in kết quả int version
Cho đoạn mã như bên dưới Hãy cho biết dòng nào không thể biên dịch
01: Object ob = new Object();
02: String stringarr[] = new String[50];
03: Float floater = new Float(3.14f);
Câu Hỏi Số 058 : (ảnh JAVA0064.jpg)
Cho đoạn mã sau đây (ảnh) :
Trang 16[C] Đoạn mã biên dịch thành công nhưng sẽ phát sinh Exception tại dòng 6
D] Đoạn mã biên dịch thành công và có thể thi hành
Câu Hỏi Số 059 : (ảnh JAVA0065.jpg)
Cho đoạn mã sau đây (ảnh) :
[B] Dòng 7 không thể biên dịch vì không thể ép từ kiểu interface sang kiểu class
[C] Đoạn mã sẽ dịch và chạy nhưng phép ép kiểu ở dòng 7 là thừa và có thể bỏ đi
D] Đoạn mã biên dịch thành công nhưng sẽ phát sinh Exception ở dòng 7 vì kiểu lớp của đối tượng trong biến wawa lúc thi hành không thể chuyển sang kiểu SwampThing
Câu Hỏi Số 060 : (ảnh JAVA0066.jpg)
Cho đoạn mã sau (ảnh)
Cho đoạn mã sau :
for (int i=0;i<2 ;i++ ){
for (int j=0;j<3 ;j++ ) {
if (i == j){
continue;
}
Trang 17Cho đoạn mã sau :
outer: for (int i=0;i<2 ;i++ ){
[A] while (int i<7){ i++; System.out.println("i is " + i);}
[B] int i = 3; while (i){ System.out.println("i is " + i);}
C] int j = 0; for (int k = 0; j+k != 10; j++,k++){ System.out.println("j is " + j + " k is " + k);}
[D] int j = 0; do{ System.out.println("j is " + j++); if (j == 3) { continue
Trang 18[A] Đoạn mã không hợp lệ bởi biểu thức ở dòng 5
[B] Biến j trong cấu trúc switch() có thể là một trong các kiểu : byte, short, int hoặc long[C] Kết xuất của chương trình chỉ là dòng : value is two
D] Kết xuất của chương trình chỉ là dòng : value is two và value is three
Câu Hỏi Số 066 :
Cho đoạn mã int a = 9/0; Kết quả của đoạn mã là gì?
[A] Lỗi biên dịch
Trang 20Câu Hỏi Số 074 : (ảnh JAVA0084.jpg)
Cho đoạn mã bên, kết quả của đoạn mã trên là (ảnh)?
[A] I am in the do block
[B] Lỗi lúc thực thi (runtime)
Câu Hỏi Số 076 : (ảnh JAVA0086.jpg)
Cho đoạn mã bên (ảnh).Sau khi thực hiện xong các câu lệnh, giá trị của biến c là bao nhiêu?
Kết quả của biểu thức a==b là gì?
[A] Lỗi biên dịch
Trang 21B] oneForAll
[C] 1ForAll
[D] 1forall
Câu Hỏi Số 079 :
Muốn khai báo hằng số PI trong Java thì dùng câu lệnh nào sau đây?
[A] final constant double PI = 3.14159;
Phát biểu nào sau đây đúng nhất về 2 phương thức overloading?
[A] Thuộc hai lớp khác nhau
[B] Thuộc hai lớp có quan hệ kế thừa
C] Cùng tên khác danh sách đối số
[D] Cùng tên khác kiểu trả về
Câu Hỏi Số 083 :
Định nghĩa một mảng 2 chiều, cách nào sau đây không đúng?
A] double[][] values = new double[][8];
[B] double[][] values = new double[2][0];
[C] double[][] values = new double[8][];
[D] double[][] values = new double[2][8];
Trang 22Phát biểu nào sau đây đúng nhất về 2 phương thức overriding?
[A] Cùng tên khác kiểu trả về
B] Thuộc hai lớp có quan hệ kế thừa
[C] Cùng tên khác danh sách đối số
int newNum = 10*(++i);
Sau khi thực hiện xong đoạn mã, biến newNum có giá trị bao nhiêu?[A] 21
Trang 24Câu lệnh nào sau đây sẽ KHÔNG phát sinh ra lỗi biên dịch?
[A] char your_char = "int";
Phát biểu nào sau đây đúng?
[A] Một lớp có thể kế thừa từ nhiều lớp khác bằng cách dùng từ khoá extends[B] Một lớp có thể thừa kế từ nhiều interface khác bằng cách dùng từ khoá extends
Trang 25C] Một interface có thể thừa kế từ nhiều interface bằng cách dùng từ khoá extends[D] Tất cả các phát biểu đều sai
[A] dive phải là tên thuộc tính
[B] depth phải có kiểu dữ liệu int
[C] submarine là tên của một lớp
D] dive phải là một phương thức
Trang 26Sau khi thực hiện x[2] bằng bao nhiêu?
[B] Mảng các byte dữ liệu nhận (đọc) được
[C] Chuỗi (String) dữ liệu nhận (đọc) được
Phát biểu nào sau đây đúng với đoạn mã trên?
[A] Lỗi Thực Thi
Phát biểu nào sau đây đúng với đoạn mã trên?
[A] Lỗi biên dịch
Trang 27Phát biểu nào sau đây là đúng?
A] Một phương thức final thì không thể Override
[B] Một lớp có chứa phương thức final sẽ không cho phép thừa kế
[C] Một biến final chỉ có thể khai báo trong một lớp final
[D] Một biến final tương tự như một biến static
Câu Hỏi Số 115 :
Khai báo nào sau đây sẽ không gây ra lỗi biên dịch?
[A] abstract int i;
[B] native MyMethod();
[C] default class MyClass {};
D] abstract final class MyClass {};
Trang 28[D] Không có giá trị nào vì đoạn mã bị lỗi
Câu Hỏi Số upload.123doc.net :
Cho đoạn mã sau :
StringBuffer sbuf = new StringBuffer("Hello, ");
Trang 29Hãy cho biết kết quả sau khi thực thi chương trình ?
[A] Biên dịch có lỗi và đưa ra lỗi "Duplicate main() method declare"
[B] Biên dịch thành công nhưng sẽ đưa ra lỗi xảy ra ngoại lệ khi chạy
C] Biên dịch thành công và in ra màn hình "In first main()"
[D] Biên dịch thành công và in ra màn hình "a"
Trang 30Hãy cho biết kết quả khi thực thi
Cho đoạn mã sau đây :
String s1[] = new String[5];
String str = s1[0].toUpperCase();
System.out.println(str);
Hãy cho biết kết quả khi thực thi đoạn lệnh trên ?
A] Đưa ra ngoại lệ NullPointException
Cho biết kết quả sau khi thực thi chương trình trên?
[A] Đoạn mã không biên dịch
B] Biên dịch thành công và hiển thị kết quả "String Version"[C] Biên dịch thành công và hiển thị kết quả "Object Verion"[D] Đoạn mã xảy ra ngoại lệ Exception khi thực hiện
Câu Hỏi Số 128 :
Cho đoạn mã lệnh sau :
int i = 5, sum = 0;
while(i>0)
Trang 31Để khai báo chuỗi, hay cho biết khai báo nào sau đây bị lỗi?
[A] String st = new String();
[B] String str2 = new String("Hello");
C] String st = String();
[D] String st3 = "Bai thi";
Câu Hỏi Số 130 :
Cho đoạn mã sau :
int anar[]=new int[5];
Trang 33[A] Sửa lại dòng số 8 thành obj1.t ;
[B] Sửa lại dòng số 10 thành System.out.println ( " t = " + obj1.t );
C] Phải sửa cả hai dòng 8 và 10 từ C3.t thành obj1.t
[D] Chương trình không có lỗi
Trang 34public static void main(String args[]){
String m = new String();
Trang 35}
[A] Không thể chuyển đổi một chuỗi sang số thực
[B] Biến m,x khai báo trong phương thức main
C] Luồng nhập đặt ngoài cặp lệnh try catch
[D] Biến m,x không khai báo static
Câu Hỏi Số 142 :
Khởi tạo biến chuỗi String s = new String("Hello Truongbt");
Các lệnh dưới đây, lệnh nào không hợp lệ :
[A] int i = s.length();
B] int i = length(s);
[C] s.toLowerCase();
[D] s.toUpperCase();
Câu Hỏi Số 143 :
Cho đoạn mã sau, kết quả in lên màn hình là gì?
String s = new String();
Trang 37Cho đoạn mã sau, khi thực hiện xong,biến w có giá trị bằng bao nhiêu?
ServerSocket ssk = new ServerSocket(1234);
Socket sk = ; //đoạn mã thiếu
Trang 38Cho đoạn mã sau :
Socket sk = new Socket("100.200.300.1",1234);
Đoạn mã sẽ sinh ra ngoại lệ gì?
TCP được viết tắt bởi từ ?
A] Transmission Control Protocol
[B] Transport Control Protocol
[C] Transport Control Processing
[D] Transmission Control Processing
int len = is.read(buffer);
Đoạn mã đóng các socket phía Server
Trang 39Trong lập trình Socket bằng giao thức UDP/IP, client triệu gọi phương thức nào để nhận
dữ liệu gởi về từ server
Trang 40Trong lập trình UDP, client muốn tạo Socket để kết nối với Server ở địa chỉ
192.168.13.26:1234, thì dùng câu lệnh nào sau đây?
Cho đoạn mã sau :
DatagramSocket dsk = new DatagramSocket(1234);
byte[] buffer = new byte[1024];
DatagramPacket pk = new DatagramPacket(buffer,1024);
Trang 41Câu Hỏi Số 172 :
Trong lập trình Socket TCP, muốn gửi một số nguyên (int) từ Client đến Server cần phải làm gì trước khi gửi?
[A] Chuyển đổi số nguyên (int) thành mảng các byte
[B] Không thể gửi một số nguyên (int)
C] Chuyển đổi số nguyên (int) thành chuỗi (String)
[D] Không làm gì cả
Câu Hỏi Số 173 :
Phương thức getAddress() của lớp DatagramPacket trả về?
A] Đối tượng thuộc lớp InetAddress
[B] Đối tượng thuộc lớp DatagramSocket
[C] Một chuỗi (String) chứa địa chỉ IP
[D] Một chuỗi (String) chứa tên miền
[B] Phương thức write() của lớp Socket
[C] Phương thức send() của lớp Socket
[D] Phương thức send() của lớp OutputStream
Trang 42Trong lập trình UDP Socket, muốn gửi dữ liệu từ Server đến Client thì dùng phương thức send() của đối tượng thuộc lớp nào?
[B] Port của Client
C] Địa chỉ IP và Port của Client
[D] Không cần thêm gì cả
Câu Hỏi Số 184 :
Trang 43Trong lập trình UDP, Server muốn tạo một DatagramSocket để cho phép Client kết nối
Ta sử dụng câu lệnh nào sau đây
[A] Phương thức read() của lớp Socket
B] Phương thức read() của lớp InputStream
[C] Phương thức receive() của lớp Socket
[D] Phương thức receive() của lớp InputStream
Câu Hỏi Số 186 :
Phương thức getPort() của lớp DatagramPacket trả về?
[A] Đối tượng thuộc lớp InetAddress
[B] Đối tượng thuộc lớp DatagramSocket
[C] Một chuỗi chứa địa chỉ cổng Port
D] Một số nguyên chứa địa chỉ cổng Port
Trang 44Phát biểu sau đây đúng hay sai?
Ta sử dụng phương thức getHostAddress() của đối tượng InetAddress để lấy ra địa chỉ IP của máy kết nối dưới dạng chuỗi?
A] Đúng
[B] Sai
Câu Hỏi Số 191 :
Phát biểu sau đây đúng hay sai?
Ta sử dụng phương thức getAddress() của đối tượng InetAddress để lấy ra địa chỉ IP của máy kết nối dưới dạng chuỗi?
Phương thức getData() của lớp DatagramPacket trả về dữ liệu thuộc kiểu mảng các byte
dữ liệu, đúng hay sai?
A] Đúng
[B] Sai
Câu Hỏi Số 196 :
Trong lập trình Socket TCP/IP, khi không kết nối được đến máy chủ thì đối tượng Socket
sẽ phát sinh ngoại lệ nào?
[A] IOException
[B] SocketException
C] UnknownHostException