
300 Câu hỏi trắc nghiệm lập trình Java có đáp án - Phần 3
50 câu hỏi
45
0
55
Không có kết quả đúng
Chọn đáp án A
Nhập dữ liệu cho mang nguyên.
Tính tổng mảng nguyên.
Nhập dữ liệu và tính tổng mảng nguyên.
Tất cả đều sai.
Chọn đáp án C
s.charAt(5)
s.charAt(4)
s[5]
s[4]
Chọn đáp án B
Mảng có thể lưu giữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau
Chỉ số của mảng có thể sử dụng kiểu số thực (float, double)
Biểu thức array.length được sử dụng để trả về số phần tử trong mảng
Một phần tử của mảng không thể truyền vào trong một phương thức.
Chọn đáp án C.Vì: biểu thức array.length trả về số phần tử trong mảng.
int a1[][] = new int[][3];
int a2[][] = new int[2][3];
int a3[][] = new int[2][];
int a4[][] = {{}, {}, {}}
Chọn đáp án A.Vì:+ Bắt buộc phải xác định số dòng trong khai báo mảng hai chiều.
Cả hai câu đều đúng
Cả hai câu đều sai
Câu 1 đúng, câu 2 sai
Câu 2 đúng, câu 1 sai
Chọn đáp án B.Vì: mảng truy xuất phần tử theo chỉ số của nó, nếu 2 phần tử có giá trị giống nhau thì cũng sẽ nằm ở vị trí khác nhau, do dó không thể thay đổi thứ tự của chúng được.
+ Chỉ số mảng bắt đầu từ 0.
Mảng có kích thước không đổi trong toàn bộ chương trình
Mảng là cấu trúc dữ liệu có khả năng lưu trữ nhiều thành phần (phần tử) dữ liệu với kiểu khác nhau
Mảng N phần tử được đánh chỉ số từ 0 đến N - 1
Chỉ số mảng bắt đầu bằng 0
Chọn đáp án B.Vì: Mảng chỉ có thể lưu trữ các phần tử có cùng kiểu dữ liệu.
size = 10
size = 5
Lỗi ở dòng 3
Lỗi ở dòng 2
Chọn đáp án D.Vì: + Không thể gán giá trị cho các biến kiểu final
x = 0
x = 1
Lỗi biên dịch
x=10
Chọn đáp án C.Vì: Lớp A là lớp con của lớp B và phương thức method1() trong lớp cha đã khai báo là final do vậy không thể thực hiện ghi đè trong lớp con.
10 11
10 10
11 11
Không in gì và báo lỗi
Chọn đáp án B. Vì:+ Lệnh đầu tiên trong hàm main() sẽ sinh ra đối tượng s từ lớp Man.
+ Lệnh thứ 2 của hàm main sẽ gọi phương thức getAge() của đối tượng s, tuy nhiên s kế thừa từ lớp Student do đó sẽ triệu gọi phương thức getAge của lớp Student => in ra 10
+ Lệnh thứ 3 của hàm main() sẽ gọi phương thức getAge() của đối tượng s => gọi đến phương thức getAge()
Có lỗi biên dịch:name has private access in Man.
Không có lỗi biên dịch.
Có lỗi biên dịch:for name access modifier in Man for name is weaker in Student.
Có lỗi biên dịch:name has public access in Student.
Chọn đáp án B. Vì: Thuộc tính không có ràng buộc về access modifier ở lớp con và lớp cha.Và thuộc tính ở mỗi lớp có thể nhận default, protected, private, public là access modified
name has protected access in Student.
Không có lỗi biên dịch
class Man has no attribute name.
class Man has no attribute or method name.
Chọn đáp án B.Vì: Thuộc tính name ở Student là protected, nên không lớp con Man được thừa kế.
Có lỗi biên dịch:name has private access in Student.
Không có lỗi biên dịch.
In ra chữ “student”
In ra chữ “Peter”
Chọn đáp án A. Vì:+ Không thể truy xuất vào thuộc tính private từ bên ngoài lớp Tham khảo: Giáo trình: [1] mục 5.2
class A { public A(int x) {} }
class A {} class B extends A { B() {}}
Class A { A() {}} class B { public B() {} }
class Z { public Z(int) {} } class A extends Z { }
Chọn đáp án D.Vì:Tham số truyền cho hàm tạo của lớp Z chưa xác định tên nên sinh lỗi.Tham khảo: Giáo trình: [1] mục 5.2
Không có lỗi biên dịch.
Có lỗi biên dịch:class Student is empty.
Có lỗi biên dịch:class Man is empty.
Có lỗi biên dịch:class Student is empty, class Man is empty
Chọn đáp án A.Vì:Chúng ta có thể khai báo các lớp không có thuộc tính và phương thức trống(empty). Nên đáp án A đúng và D, C, D sai.
Không có lỗi biên dịch.
name has protected access.
age has protected access.
name has public access
Chọn đáp án B.Vì:+ name là thành phần protected do đó không thể truy xuất từ bên ngoài lớp (chỉ có thể truy xuất từ bên trong lớp và các lớp con).
Không có lỗi biên dịch.
name has private access.
age has protected access.
name has public access.
Chọn đáp án A.Vì:Hàm main ở trong cùng lớp Person, nên có thể truy xuất tới tất cả các trường của Person.
Không có lỗi biên dịch.
name has protected access.
age has protected access.
name has public access.
Chọn đáp án A.Vì:Hàm main ở trong cùng lớp Person, nên có thể truy xuất tới tất cả các trường của Person.
Lỗi biên dịch dòng 2.7
Lỗi biên dịch dòng 2.5
Lỗi biên dịch dòng 2.5, 2.7
a.xA = 12; a.yA = Hello
Chọn đáp án D.Vì: Thuộc tính xA của lớp ClassA được khai báo với từ khóa protected nên không được truy xuất từ ngoài gói pac02.
Có lỗi biên dịch: can not find symbol test.Student
Không có lỗi biên dịch.
Có lỗi biên dịch: Add import java.school.Student
Có lỗi biên dịch: can not find constructor Student() for Student.
Chọn đáp án A.Vì: Lớp Student không ở package java.test mà ở java.school, và bạn không import vào gói java.test, nhưng khi dùng bạn đã chỉ rõ lớp ở package java.school.Student. Nên trình biên dịch hiểu. Nên đáp án: Có lỗi biên dịch:can not find symbol test.Student Và Có lỗi biên dịch: Add import java.school.Student sai và đáp án: Không có lỗi biên dịch đúng. Khi bạn không khai báo một constructor nào thì trình biên dịch tự động tạo ra một constructor mặc định (không có tham số) cho lớp đó. Nên đáp án: Có lỗi biên dịch: can not find constructor Student() for Student sai.
Không có lỗi biên dịch
name has private access.
\ge has private access.
name has public access.
Chọn đáp án A
Có lỗi biên dịch: can not find symbol test.Student
Không có lỗi biên dịch.
Có lỗi biên dịch: Add import java.school.Student
Có lỗi biên dịch: can not find constructor Student() for Student.
Chọn đáp án A. Vì: -Lớp Student không ở package java.test mà ở java.school, mà bạn lại không import vào gói java.test, nên trình biên dịch tìm lớp Student ở cùng package java.test, nhưng không có.
-Add import java.school.Student là một gợi ý
Có lỗi biên dịch: use new keyword to create object
Peter
Anna
null
Chọn đáp án D. Vì: + Lệnh 3 sẽ khai báo một mảng names và khởi tạo các giá trị cho mảng lần lượt là “John”, “Anna”,….
+ Tuy nhiên lệnh sau (4) lại tạo lại mảng names và không gán giá trị cho các phần tử mảng => các phần tử sẽ có giá trị null
Cả hai câu đều đúng
Cả hai câu đều sai
Câu 1 đúng, câu 2 sai
Câu 2 đúng, câu 1 sai
Chọn đáp án B. Vì: mảng truy xuất phần tử theo chỉ số của nó, nếu 2 phần tử có giá trị giống nhau thì cũng sẽ nằm ở vị trí khác nhau, do dó không thể thay đổi thứ tự của chúng được.
+ Chỉ số mảng bắt đầu từ 0.
ABDCBDCB
ABCDABCD
Lỗi biên dịch
Chương trình không lỗi, nhưng khi chạy sẽ sinh lỗi
Chọn đáp án A
7
6
5
Lỗi biên dịch
Chọn đáp án A.Vì: Hàm indexOf trả về vị trí đầu tiên xuất hiện của chuỗi ow trong chuỗi s( là ở vị trí thứ 7).
Mảng có kích thước không đổi trong toàn bộ chương trình
Mảng là cấu trúc dữ liệu có khả năng lưu trữ nhiều thành phần (phần tử) dữ liệu với kiểu khác nhau
Mảng N phần tử được đánh chỉ số từ 0 đến N - 1
Chỉ số mảng bắt đầu bằng 0
Chọn đap án B.Vì: Mảng chỉ có thể lưu trữ các phần tử có cùng kiểu dữ liệu.
size = 10
size = 5
Lỗi ở dòng 3
Lỗi ở dòng 2
Chọn đáp án D. Vì: + Không thể gán giá trị cho các biến kiểu final
Không có lỗi biên dịch
Có lỗi biên dịch:class Student is empty.
Có lỗi biên dịch:class Man has no constructor.
Có lỗi biên dịch:class Student is empty, class Man has no constructor
Chọn đáp án A. Vì: Chúng ta có thể khai báo các lớp không có thuộc tính và phương thức trống(empty). Khi một lớp không có constructor, trình biên dịch sẽ tự động thêm vào một constructor mặc định.Vậy đoạn mã đã cho không có lỗi biên dịch nào.
Có lỗi biên dịch.
Student
Man
Student Man
Chọn đáp án A. Vì: phương thức sayHello() có mức truy xuất ở lớp Student là default, nhưng ở lớp con(Man) lại có mức truy xuất yếu hơn(Không cho phép điều này).
10 11
10 10
11 11
Không in gì và báo lỗi
Chọn đáp án B. Vì: + Lệnh đầu tiên trong hàm main() sẽ sinh ra đối tượng s từ lớp Man.
+ Lệnh thứ 2 của hàm main sẽ gọi phương thức getAge() của đối tượng s, tuy
nhiên s kế thừa từ lớp Student do đó sẽ triệu gọi phương thức getAge của lớp
Student => in ra 10
+ Lệnh thứ 3 của hàm main() sẽ gọi phương thức getAge() của đối tượng s =>
gọi đến phương thức getAge() của lớp Student => in ra 10
public class Man extends Student{ }
public class Man extend Student{ }
public class Man :Student{ }
public class Man => Student{ }
Chọn đáp án A. Vì:Theo cú pháp khai báo lớp kế thừa trong java, từ khóa extends được dùng để mô tả một lớp là lớp con của lớp khác.
class A { public A(int x) {} }
class A {} class B extends A { B() {}}
class A { A() {}} class B { public B() {} }
class Z { public Z(int) {} } class A extends Z { }
Chọn đáp án D. Vì: Tham số truyền cho hàm tạo của lớp Z chưa xác định tên nên sinh lỗi.
public getNum() { }
public float getNum(double d) { }
public float getNum() { return 4.0f; }
public double getNum(float d) { return 4.0d; }
Chọn đáp án A. Vì: Phương thức này chưa xác định kiểu dữ liệu trả về.
interface Summable {} interface Eatable {} class Math implements Summable;Eatable{}
interface Summable {} interface Eatable {} class Math implements Summable and Eatable{}
interface Summable {} interface Eatable {} class Math: Summable,Eatable{}
interface Summable {} interface Eatable {} class Math implements Summable,Eatable{}
Chọn đáp án D. vì: dấu phẩn(,) là dấu để cách ra các interface/class trong danh sách thừa kế hoặc triển khai. Một lớp triển khai interface thì từ khóa implements được dùng.
trinh
java
Lỗi biên dịch ở dòng 1
Không in ra gì
Chọn đáp án C.Vì: + Lỗi ở dòng lệnh 1, sai cú pháp khai báo mảng 2 chiều
Student
Man
Student Man
Man Student
Chọn đáp án B. Vì: s là đối tượng của Student, nên phương thức được gọi là của Student.
2 và 6
3 và 11, 15
5, 7, 9
Chương trình không sai
Chọn đáp án D
Tìm 1 phần tử trong mảng.
So sánh các phần tử mảng với nhau.
Tính tổng mảng.
Tất cả đáp án đều sai.
Chọn đáp án A
Đếm chữ cái p trong chuỗi ký tự
Tìm xem chữ p có đứng trước chữ i trong chuỗi hay không
Tìm kiếm chữ cái p trong chuỗi
Cả 3 đáp án đều sai.
Chọn đáp án A
Found 9 p's in the string.
Found 8 p's in the string.
Found 10 p's in the string.
Không có đáp án đúng.
Chọn đáp án B
concat()
charAt()
indexOf()
Không có đáp án đúng.
Chọn đáp án C
lastIndexOf()
substring()
toString()
Không có đáp án đúng
Chọn đáp án A
Kiểu primitive
Kiểu reference
Kiểu format
Không có đáp án đúng
Chọn đáp án B
Kiểm tra kết quả của biểu thức boolean
Tránh mâu thuẫn giữa bên trong và bên ngoài switch
Lặp lại khối lệnh chứng nào điều kiện là đúng
Không có đáp án đúng
Chọn đáp án C
break
continue
change
Jump
Chọn đáp án A
102
104
h
Lỗi biên dịch
Chọn đáp án B. Vì: s.charAt(6) truy xuất phần tử thứ 7 là kí tự 0, trong mã asscii thì kí tự 0 là 104
public interface MyInterface {}
public interface MyInterface { default int x; }
public interface MyInterface { protected int sum(int x, int y); }
public interface MyInterface { private int sum(int x, int y); }
Chọn đáp án A. Vì: Trong đáp án B default là từ khóa dùng trong lệnh switch chứ không phải là một từ khóa truy xuất.
Trong đáp án C, D không thể mức truy xuất private hoặc protected cho thuộc tính cúng như phương thức. Trong khai báo interface có thể không khai báo gì.
Nếu condition là true thì result = value2, nếu condition là false thì result = value1
Nếu condition là true thì result = value1, nếu condition là false thì result = value2
Không có lệnh này
Nếu condition là true thì result sẽ đảo giá trị của value1 và value2
Chọn đáp án B
continue
break
cease
end
Chọn đáp án A
Bạn có thích hoạt động này không?
Hãy lưu hoặc chia sẻ nội dung này đến mọi người.





![[Năm 2022] Đề thi thử môn Vật lí THPT Quốc gia có lời giải - Đề số 21](/_next/image?url=https%3A%2F%2Fvideo.vietjack.com%2Fupload%2Fimages%2Fvj-image%2Fimage-3izficdefgfoel0s9j8s-1786772791.jpg&w=3840&q=75)














