300 Câu hỏi trắc nghiệm lập trình Java có đáp án và lời giải chi tiết
Tổng hợp 300 câu hỏi trắc nghiệm Java có đáp án đầy đủ + lời giải chi tiết nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức. Để ôn tập hiệu quả các bạn có thể ôn theo từng phần trong bộ câu hỏi này bằng cách trả lời các câu hỏi và xem lại đáp án và lời giải chi tiết. Sau đó các bạn hãy chọn tạo ra đề ngẫu nhiên để kiểm tra lại kiến thức đã ôn.
Chọn hình thức trắc nghiệm (50 câu/60 phút)
Chọn phần
-
Câu 1:
Thứ tự các từ khóa public và static khi khai bao như thế nào?
A. public đứng trước static
B. static đứng trước public
C. Thứ tự bất kỳ nhưng thông thường public đứng trước
D. Tất cả đều sai.
-
Câu 2:
Câu lệnh khai báo chuẩn cho cách main như thế nào?
A. public static void main(String[] a) {}
B. public static int main(String args) {}
C. public static main(String[] args) {}
D. public static final void main(String[] args) {}
-
Câu 3:
Câu nào sau đây là sai?
A. /** chú thích */
B. /* chú thích */
C. /* chú thích
D. // chú thích
-
Câu 4:
Khi biên dịch gặp lỗi Exception in thread main java.lang.NoClassDefFoundError: myprogram. Lỗi này có nghĩa gì?
A. Đường dẫn chương trình sai.
B. Không có hàm main
C. Không khai báo class
D. Không có từ khóa public tại mở đầu khai báo class
-
Câu 5:
Đối tượng trong phần mềm là gì?
A. Là một bó phần mềm gồm các hành vi và trạng thái có liên quan với nhau.
B. Là vật thể xác định của thế giới thực.
C. Là vật thể gồm hành vi và trạng thái.
D. Là các đối tượng được biểu diễn trong phần mềm gồm có 2 thuộc tính trường dữ liệu và các cách xử lý dữ liệu.
-
Câu 6:
Khai báo lớp nào dưới đây là đúng?
A. public class default {}
B. protected inner class engine {}
C. final class outer {}
D. Tất cả đều sai.
-
Câu 7:
Cách đặt tên nào sau đây là sai?
A. 2word
B. *word
C. main
D. Tất cả đều sai.
-
Câu 8:
Một chương trình gồm 2 class sẽ có bao nhiêu cách main?
A. 1
B. 2
C. 3
D. 4
-
Câu 9:
Một lớp trong Java có thể có bao nhiêu lớp cha?
A. 1
B. 2
C. 3
D. 4
-
Câu 10:
Một lớp trong Java có bao nhiêu lớp con?
A. 2
B. 3
C. 4
D. Vô số
-
Câu 11:
Để khai báo lớp Xedap1 kế thừa lớp Xedap phải làm như thế nào?
A. class Xedap1 extend Xedap {}
B. public classs Xedap1 extend Xedap {}
C. class Xedap1 extends Xedap {}
D. Tất cả đều sai.
-
Câu 12:
Chọn câu trả lời đúng nhất. Interface là gì?
A. Là lớp chứa các cách rỗng có liên quan với nhau.
B. Là một kiểu tham chiếu, tương tự như class, chỉ có thể chứa hằng giá trị, khai báo cách và kiểu lồng.
C. Là một cách thực hiện của lớp khác.
D. Là lớp nối giữa lớp cơ sở và lớp cha.
-
Câu 13:
Để sử dụng giao diện Xedap cho lớp Xedap1, ta làm thế nào?
A. class Xedap1 implement Xedap {}
B. public class Xedap1 implement Xedap {}
C. class Xedap1 implements Xedap {}
D. public class Xedap1 extends Xedap {}
-
Câu 14:
Có bao nhiêu loại biến trong Java?
A. 1
B. 2
C. 3
D. 4
-
Câu 15:
Trường dữ liệu là các biến dạng nào sau đây?
A. Biến thay mặt và Tham số
B. Biến thay mặt và biến lớp
C. Biến thay mặt và biến cục bộ
D. Biến lớp và Tham số
-
Câu 16:
Biến dữ liệu là các biến dạng nào sau đây?
A. Biến lớp và Tham số
B. Biến cục bộ và Tham số
C. Biến cục bộ và biến lớp
D. Các đáp án đều sai.
-
Câu 17:
Biến f nào sau đây là biến đại diện?
A. float f;
B. public static f;
C. double CA(int f)
D. Không có giá trị đúng
-
Câu 18:
Khai báo nào sau đây là khai báo biến lớp?
A. final double d;
B. private static id;
C. volatile int sleepTime
D. Không có đáp án đúng
-
Câu 19:
Cách đặt tên nào sau đây là không chính xác?
A. final
B. dem
C. _final
D. $final
-
Câu 20:
Có bao nhiêu kiểu dữ liệu cơ sở trong Java?
A. 7
B. 8
C. 9
D. 5
-
Câu 21:
Có bao nhiêu kiểu số nguyên trong Java?
A. 1
B. 2
C. 3
D. 4
-
Câu 22:
: Có bao nhiêu kiểu dữ liệu ký tự cơ sở trong Java?
A. 1
B. 2
C. 3
D. 4
-
Câu 23:
Khái niệm cách start()?
A. Mọi cách thực hiện tác vụ sau khi khởi tạo phải chèn lên cách start. start() bắt đầu việc thực thi của applet.
B. Là cách bắt đầu của applet và chạy song song với applet.
C. cách khởi tạo của applet và chạy song song với applet.
D. Tất cả đều sai.
-
Câu 24:
Khối lệnh sau có kết quả bao nhiêu?
String greeting = “Hello”; int k = greeting.length(); System.out.print(k);
A. 4
B. 5
C. 6
D. 7
-
Câu 25:
Đoạn mã sau có lỗi biên dịch gì?
public class Person { private String name; protected int age; public static void main(String[] args) { Person p = new Person(); p.name = "Tom"; System.out.println(p.name); } }
A. Không có lỗi biên dịch
B. name has private access.
C. age has protected access.
D. name has public access.
-
Câu 26:
Đoạn mã sau có lỗi biên dịch gì?
class Person { protected String name; public int age; }; public class Main { public static void main(String[] args) { Person p = new Person(); p.name = "Tom"; } }
A. Không có lỗi biên dịch.
B. name has protected access.
C. age has protected access.
D. name has public access.
-
Câu 27:
Trong các khai báo sau đâu là khai báo không hợp lệ?
Chọn một câu trả lời
A. int a1[][] = new int[][3];
B. int a2[][] = new int[2][3];
C. int a3[][] = new int[2][];
D. int a4[][] = {{}, {}, {}};
-
Câu 28:
Chương trình sau in ra màn hình xâu nào? Chọn một câu trả lời
public class Main { public static void main(String[] args) { String names[] = { "John", "Anna", "Peter", "Victor", "David" }; System.out.println(names[2]); } }
A. Có lỗi biên dịch: use new keyword to create object
B. Peter
C. Anna
D. Victor
-
Câu 29:
Trong đoạn mã trên x nhận giá trị bao nhiêu?
String s = "cabcab"; StringTokenizer sten = new StringTokenizer(s, "ab"); int x = sten.countTokens(); System.out.println(x);
A. 0
B. 1
C. 2
D. 3
-
Câu 30:
Đoạn mã sau có lỗi biên dịch KHÔNG? Nếu có là lỗi nào sau?
class Student {} public class Man extends Student { public boolean isMan() { return true; } }
A. Không có lỗi biên dịch.
B. Có lỗi biên dịch:class Student is empty.
C. Có lỗi biên dịch:class Man has no constructor.
D. Có lỗi biên dịch:class Student is empty, class Man has no constructor.
-
Câu 31:
Đoạn mã sau có lỗi biên dịch nào?
class Student { public String sayHello() { return "Student"; } } public class Man extends Student { public String sayHello() { return "man"; } public static void main(String[] args) { Man m = new Student(); System.out.println(m.sayHello()); } }
A. Có lỗi biên dịch:Incompatible type, requiered Man, found Student.
B. Không có lỗi biên dịch. In ra màn hình "man"
C. Có lỗi biên dịch:access modified of sayHello in Student and Man are different
D. Không có lỗi biên dịch. In ra màn hình "student"
-
Câu 32:
Đoạn mã sau có lỗi biên dịch nào?
class Student { public int getAge() { return 10; } } public class Man extends Student { protected int getAge(int added) { return super.getAge() + added; } }
A. Không có lỗi biên dịch.
B. Có lỗi biên dịch: getAge() has in Man can not have weaker same access modifier than in Student.
C. Có lỗi biên dịch:call to super, must be the first in constructor in class Man.
D. Có lỗi biên dịch: getAge() in Student and Man can not have the same access arguments.
-
Câu 33:
Khai báo lớp Student trong package java.class sau có lỗi biên dịch hay không, nếu có thì là lỗi gì?
package java.class;
class Student {}
Chọn một câu trả lời
A. Có lỗi biên dịch incorrect package
B. Có lỗi biên dịch vì Student is empty
C. Không có lỗi biên dịch
D. Có lỗi biên dịch package must be java
-
Câu 34:
Chương trình sẽ in ra kết quả gì khi thực thi đoạn mã sau?
package pac02; public class ClassA { public int xA; public String yA; } --------- package pac01; import pac02.ClassA; public class Test { public static void main(String[] args) { ClassA a = new ClassA(); a.xA = 12; a.yA = "Hello"; System.out.println("a.xA = " + a.xA + "; a.yA = " + a.yA); } }
A. Lỗi biên dịch dòng 2.5, 2.6, 2.7
B. Lỗi biên dịch dòng 2.5
C. Lỗi biên dịch dòng 2.6, 2.7
D. a.xA = 12; a.yA = Hello
-
Câu 35:
Lệnh str.charat(n) có tác dụng gì?
A. Lấy ký tự bất kỳ trong chuỗi str
B. Lấy độ dài chuỗi str
C. Lấy ký tự có số chỉ mục n trong chuỗi k
D. Không có lệnh này
-
Câu 36:
Khối lệnh sau có kết quả bao nhiêu khi thực hiện?
char[] greet = new char[10]; greet = “Hello”; k = greet.length(); System.out.print(k);
A. 4
B. 5
C. 6
D. Lỗi biên dịch
-
Câu 37:
Trong các kiểu giá trị số thực đặc biệt dưới đây, kiểu nào là đúng?
A. Dương vô cực
B. Âm vô cực
C. NaN
D. Cả 3 giá trị trên
-
Câu 38:
Trong Java, kiểu char biểu diễn bộ mã code nào dưới đây?
A. UTF-8
B. UTF-16
C. UTF-32
D. Tất cả các mã trên
-
Câu 39:
Giá trị mặc định của một biến kiểu char là?
A. u0000
B. \uFFFF
C. 0F
D. 0x
-
Câu 40:
Hai câu lệnh sau ra kết quả s là bao nhiêu?
String greetings = “Hello”; String s = greetings.substring(0,3);
A. Hell
B. Hel
C. ello
D. Hello
-
Câu 41:
Hai câu lệnh sau ra kết quả s là bao nhiêu?
String greetings = “Hello” String s = greetings.substring(0,3);
A. Hell
B. Hel
C. Lệnh sai
D. Hello
-
Câu 42:
Trong hai câu lệnh sau, lệnh substring có tác dụng gì?
String greetings = “ Hello “; String s = greetings.substring(0,3);
A. Lấy các ký tự từ vị trí chỉ mục 0 đến vị trí chỉ mục 2 của chuỗi greetings và đưa vào s
B. Thay đổi 3 ký tự đầu tiên của chuỗi greetings
C. Sao chép chuỗi greetings vào chuỗi s
D. Cắt các ký tự từ vị trí chỉ mục 0 đến chỉ mục 3 và đưa vào s
-
Câu 43:
Kiểu enum là gì?
A. Là kiểu dữ liệu gồm các trường chứa một tập hợp cố định các hằng số.
B. Là kiểu dữ liệu liệt kê các biến số.
C. Là một kiểu dữ liệu trong java.
D. Tất cả đều sai.
-
Câu 44:
Phạm vi truy cập của một đối tượng khi khai báo private là gì?
A. Có thể được truy cập bất kỳ vị trí nào trong chương trình.
B. Có thể được truy cập từ các lớp trong cùng package.
C. Có thể được truy cập từ các lớp trong cùng package và lớp con nằm trong package khác.
D. Chỉ có thể truy cập từ các phương thức khác trong class đó.
-
Câu 45:
Phạm vi truy cập của một đối tượng khi được khai bao protected là gì?
A. Có thể được truy cập từ bất kỳ vị trí nào trong chương trình.
B. Có thể được truy cập từ các lớp trong cùng package.
C. Có thể được truy cập từ các lớp trong cùng package và lớp con nằm trong package khác.
D. Chỉ có thể truy cập từ các phương thức khác trong class đó.
-
Câu 46:
Phạm vi truy cập của một đối tượng khi được khai báo public là gì?
A. Có thể được truy cập từ bất kỳ vị trí nào trong chương trình.
B. Có thể được truy cập từ các lớp trong cùng package.
C. Có thể được truy cập từ các lớp trong cùng package và lớp con nằm trong package khác.
D. Chỉ có thể truy cập từ các phương thức khác trong class đó.
-
Câu 47:
Khối lệnh dưới sẽ cho kết quả là bao nhiêu nếu ta nhập thu = 1?
switch (thu) { case 2: System.out.println(“Van, Toan”); break; case 3: System.out.println(“Hoa, Ly”); break; default: System.out.println(“Ngay nghi”); break; }
A. Van, Toan
B. Hoa, Ly
C. Ngay nghi
D. Không có đáp án đúng
-
Câu 48:
Khối lệnh dưới sẽ cho kết quả là bao nhiêu nếu ta nhập thu = 2?
switch (thu) { case 2: System.out.println(“Van, Toan”); break; case 3: System.out.println(“Hoa, Ly”); break; default: System.out.println(“Ngay nghi”); break; }
A. Van, Toan
B. Hoa, Ly
C. Ngay nghi
D. Không có đáp án đúng
-
Câu 49:
Khối lệnh dưới sẽ cho kết quả là bao nhiêu nếu ta nhập thu = 3?
switch (thu) { case 2: System.out.println(“Van, Toan”); break; case 3: System.out.println(“Hoa, Ly”); break; default: System.out.println(“Ngay nghi”); break; }
A. Van, Toan
B. Hoa, Ly
C. Ngay nghi
D. Không có đáp án đúng
-
Câu 50:
Nếu cho color = DEN thì đoạn lệnh dưới in kết quả là bao nhiêu?
enum mausac { DEN, LAM, LUC, TRANG }; mausac color; char * t; switch (color) { case 0: t = “Mau trang”; break; case 1: t = “Mau den”; break; case 2: t = “Mau lam”; break; case 3: t = “Mau luc”; break; default: t = “Khong co trong danh sach mau”; break; } System.out.println(t);
A. Mau trang.
B. Mau den.
C. Mau luc.
D. Khong co trong danh sach mau.
- 1
- 2
- 3
- 4
- Đề ngẫu nhiên
Phần