
200+ câu trắc nghiệm Java cơ bản có đáp án - Phần 5
30 câu hỏi
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).
foo có giá trị là 0.
foo có giá trị là null.
foo có giá trị là true.
foo có giá trị là false.
Chọn đáp án D
Vì:
Theo ngầm định khi tạo mảng dữ liệu kiểu logic thì tất cả các phần tử đều nhận giá trị false
float f2[] = new float[];
float[] f1 = new float[3];
float f3[] = new float[3];
float f5[] = { 1.0f, 2.0f, 2.0f };
Chọn đáp án A
Vì:
khi khởi tạo mảng, số phần tử phải xác định
Không có lỗi biên dịch.
Có lỗi biên dịch: Incompatible type, required Man, found Student.
Có lỗi biên dịch:Incompatible type, required Student, found Man.
Do not use extends to make subclass..
Chọn đáp án B
Vì:
m thuộc kiểu Man, nên có thể chứa pointer tới đối tượng của lớp Man. Không chứa được pointer tới đối tượng của lớp Student.
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.
4,4
4,5
5,4
Lỗi biên dịch
Chọn đáp án D
Vì:
Phương thức getLenght() trong lớp cha kiểu int, lớp con không thể thực hiện ghi đè phương thức này với kiểu long.
Lỗi biên dịch
Đoạn mã chạy không sinh lỗi
Lỗi đưa ra dòng 7
Lỗi đưa ra dòng 2
Chọn đáp án A
Vì:
+ Lớp con kế thừa TestSub chưa triển khai hàm constructor của lớp cha
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
xA = 12; a.yA = Hello
Chọn đáp án C
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.
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).
import java.util.*;
package test;
import java.util.*;
import java.util.*;
package test;
package test;
Chọn đáp án B
Vì:
Lớp thuộc package test và sử dụng lớp nằm trong gói java.util thì phải thực hiện
package test;
import java.util.*;
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
foo có giá trị là 0.
foo có giá trị là null.
foo có giá trị là true.
foo có giá trị là false.
Chọn đáp án D
Vì:
Theo ngầm định khi tạo mảng dữ liệu kiểu logic thì tất cả các phần tử đều nhận giá trị false
1
0
2
Biên dịch lỗi
Chọn đáp án C
Vì:
Đối tượng StringTokenizer chia chuỗi "cabcab" thành các token theo chuỗi "ab" thì được 2 token là cab, cab.
Không có lỗi biên dịch.
Có lỗi biên dịch: getAge() in Student and Man can not have the same access modifier.
Có lỗi biên dịch:call to super, must be the first in constructor in class Man.
Có lỗi biên dịch: getAge() in Student and Man can not have the same access arguments.
Chọn đáp án A
Vì:
getAge() ở Student và Man có arguments khác nhau, nên chúng là các phương thức khác nhau.
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
Không có lỗi biên dịch.
Có lỗi biên dịch: Incompatible type, required Man, found Student.
Có lỗi biên dịch:Incompatible type, required Student, found Man.
Do not use extends to make subclass..
Chọn đáp án B
Vì:
m thuộc kiểu Man, nên có thể chứa pointer tới đối tượng của lớp Man. Không chứa được pointer tới đối tượng của lớp Student.
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 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 khi bạn không chỉ rõ lớp Student thuộc package nào. Nên khi khai báo biến s thuộc lớp java.school.Student thì đúng, nhưng khi gọi phương thức khởi tạo thì bạn lại không chỉ rõ, nên trình biên dịch sẽ tìm ở java.test. Nhưng không có.
Add import java.school.Student : là một gợi ý, chứ không phải lỗi biên dịch.
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.
s.setMark("10");
s.setMark(10);
s.mark=10;
s.mark="10"
Chọn đáp án A
Vì:
Phương thức này nhận xâu "10" và thay đổi thuộc tính mark của s.
Đáp án s.setMark(10); sai vì truyền số 10 thuộc int vào phương thức setMark, mà setMark yêu cầu đầu vào là String.
Đáp án s.mark=10 và s.mark="10"
là sai vì mark có mức truy xuất là private.
void printArray(int a[], int size){}
void printArray(int a[size], int size){}
void printArray(int a[], int){}
void printArray(int a[size]){}
Chọn đáp án A
Vì:
khi truyền tham số mảng cho hàm không cần xác định kích thước mảng.
abcd
ABCD
dccd
dcba
Chọn đáp án A
Vì:
+ Lệnh 11 sẽ tạo xâu a ="ABCD"
+ Lệnh 12 tạo ra xâu b ="abcd"
+ Lệnh 13 sẽ sinh ra xâu mới và thay thế ký tự a bởi d (xâu b không thay đổi)
+ Lệnh 14 sẽ sinh ra xâu mới và thay thế ký tự b bởi c (xâu b không thay đổi)
=> In ra abcd.
Có lỗi biên dịch: use new keyword to create object
Peter
Anna
Victor
Chọn đáp án B
Vì:
+ Lệnh System.out.println(names[2]);sẽ in ra phần tử đứng thứ 3 trong mảng names (chỉ số mảng từ 0 => in ra Peter)
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ế.
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.
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).
(1) sai, (2) đúng
(1) đúng, (2) sai
Cả 2 Câu cùng đúng
Cả 2 Câu cùng sai
Chọn đáp án B
Vì:
+ Các thành phần Protected có thể truy xuất từ lớp đó và các lớp con của lớp đó
+ Thành phần private chỉ có thể truy xuất từ trong lớp đó.
(1) đúng, (2) sai
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.
import java.util.*;
package test;
import java.util.*;
import java.util.*;
package test;
package test;
Chọn đáp án B
import java.util.*;
Vì:
Lớp thuộc package test và sử dụng lớp nằm trong gói java.util thì phải thực hiện
package test;
import java.util.*;
Cả hai Câu đều đúng
Cả hai Câu đều sai
(1) đúng, (2) sai
(2) đúng, (1) sai
Chọn đáp án A
Đúng. Đáp án đúng là: "Cả 2 Câu đều đúng"
Vì:
+ Mã nguồn và tên gói phải đặt trong cùng một thư mục
+ Sanner thuộc gói java.util.
Tham khảo: Giáo trình: [1] mục 3.2
Không có lỗi biên dịch.
name has private access.
age has private 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.
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.


















