Tóm Tắt
TỔNG HỢP CÂU HỎI TRẮC NGHIỆM JAVA
CƠ BẢN
1
Đâu là câu SAI về ngôn ngữ Java?
A) Ngôn ngữ Java có phân biệt chữ hoa – chữ thường
B) Java là ngôn ngữ lập trình hướng đối tượng
C) Dấu chấm phẩy được sử dụng để kết thúc lệnh trong java
D) Chương trình viết bằng Java chỉ có thể chạy trên hệ điều hành
Đúng. Đáp án đúng là : Chương trình viết bằng Java chỉ có thể chạy
trên hệ điều hành win
Vì :
Chương trình viết bằng java có thể chạy trên nhiều hệ điều hành khác
nhau.
Tham khảo : Giáo trình: [1] mục 1.
Câu 2 [Góp ý]
Đâu không phải là một kiểu dữ liệu nguyên thủy trong Java?
A) double
B) int
C) long
D) long float
Đúng. Đáp án đúng là : long float
Vì :
double, int, long ở các là các kiểu dữ liệu nguyên thủy trong Java.
Trong Java không có kiểu dữ liệu dẫn xuất long float.
Tham khảo : Giáo trình: [1] mục 1. 4
Câu 3 [Góp ý]
Trong câu lệnh sau: public static void main(String[] agrs) thì
phần tử agrs[0] chứa giá trị gì?
Chọn một câu trả lời A) Tên của chương trình
B) Số lượng tham số
C) Tham số đầu tiên của danh sách tham s
D) Không câu nào đúng
Sai. Đáp án đúng là : Tham số đầu tiên của danh sách tham số
Vì :
- Trong khai báo đối số của hàm main() thì agrs là một mảng xâu kí
tự, đồng thời hàm main có thể nhận nhiều đối số => agrs[0] là đối số
đầu tiên trong danh sách đối số của hàm main()
Tham khảo : Giáo trình: [1] mục 1.
Câu 4 [Góp ý]
Phương thức next() của lớp Scanner dùng để làm gì?
Chọn một câu trả lời A) Nhập một số nguyên
B) Nhập một ký tự
C) Nhập một chuỗi
D) Không có phương thức này
Sai. Đáp án đúng là : “Nhập một chuỗi” Vì :
Phương thức next() của lớp Scanner sử dụng để nhập một chuỗi ký tự
bao gồm cả khoảng trắng.
Tham khảo : Giáo trình: [1] mục 1.
Câu 5 [Góp ý]
Muốn chạy được chương trình java, chỉ cần cài phần mền nào
sau đây?
Chọn một câu trả lời A) Netbeans
B) Eclipse
C) JDK
D) Java Platform
Sai. Đáp án đúng là : : Java Platform
Vì :
Netbeans hoặc Eclipse là môi trường lập trình, chứ không phải để
chạy ứng dụng Java.
JDK ở đáp án C là để phát triển ứng dụng Java.
Java Platform là vừa đủ để chạy ứng dụng Java.
Tham khảo : Giáo trình: [1] mục 1.
Câu 6 [Góp ý]
Gói nào trong java chứa lớp Scanner dùng để nhập dữ liệu từ bàn
phím?
Chọn một câu trả lời A) XX;
B) XX();
C) objX();
D) Display();
Sai. Đáp án đúng là : objX();
Vì :
Để truy xuất và phương thức của đối tượng ta sử dụng cú pháp:
tendoituong();
Tham khảo : Giáo trình: [1] mục 1.
Câu 10 [Góp ý]
Đâu KHÔNG phải là thành phần trong cấu trúc của lớp trong
java.
Chọn một câu trả lời A) Tên lớp
B) Thuộc tính
C) Phương thức
D) Biến
Đúng. Đáp án đúng là : Biến
Vì :
Thành phần trong cấu trúc của lớp trong java bao gồm tên lớp, thuộc
tính, phương thức.
Tham khảo : Giáo trình: [1] mục 1.
Câu 3 [Góp ý]
Câu 1: Từ khóa new kết hợp với hàm tạo để tạo ra đối tượng.
Câu 2: Hàm tạo được sử dụng để hủy đối tượng
Chọn một câu trả lời A) Cả hai câu đều đúng
B) Cả hai câu đều sai
C) Câu 1 đúng, câu 2 sai
D) Câu 2 đúng, câu 1 sai
Đúng. Đáp án đúng là : Câu 1 đúng, câu 2 sai
Vì :
- Trong java toán tử new được sử dụng kết hợp với hàm tạo để sinh
ra đối tượng
Tham khảo : Giáo trình: [1] mục 1.
Câu 5 [Góp ý]
Điểm : 1
Đọc đoạn mã lệnh sau
1:public class Main {
2: public static void main(String[] args) {
3: int x = -1;
4: String y = x + 3;
5: System(“x = ” + x + “y = ” + y);
6: }
7:}
Sau khi thực thi chương trình sẽ in ra kết quả gì?
A) x=-1 y=
B) Lỗi biên dịch: Uncompilable source code – incompatible types
C) x=-1 y=-
D) x=-1 y=
Đúng. Đáp án đúng là : Lỗi biên dịch: Uncompilable source code –
incompatible types
Vì :
y là chuỗi, x là số không thể thực hiện cộng chuỗi và số.
Tham khảo : Giáo trình: [1] mục 1.
Câu 9 [Góp ý]
Đoạn mã KHÔNG in ra màn hình số 13?
A)
int x=13;
System(x);
B)
int x=13;
System(“x”);
C)
int x=13;
System(“13”);
(2) $rearly_salary
(3) double
(4) $$_
(5) mount#balance
Chọn một câu trả lời A) 12345
B) 123
C) 124
D) 125
Đúng. Đáp án đúng là : 124
Vì :
Tên biến không được trùng tên với từ khóa (double), không chứa các
kí tự đặc biệt (#).
Tham khảo : Giáo trình: [1] mục 2.
Câu 2 [Góp ý]
Đọc đoạn mã sau:
11: int i = 1,j = 10;
12: do {
13: if(i>j) {
14: break;
15: }
16: j–;
17: } while (++i <5);
18: System(“i = ” +i+” and j = “+j);
Kết quả in ra của đoạn mã trên là gì?
Chọn một câu trả lời A) i = 6 and j = 5
B) i = 5 and j = 5
C) i = 6 and j = 4
D) i = 5 and j = 6
Sai. Đáp án đúng là : “i = 5 and j = 6” Vì :
- Vòng lặp kiểm tra nếu i>j sẽ kết thúc vòng lặp
- Mỗi bước lặp i tăng 1 và j giảm 1
- Điều kiện kết thúc vòng lặp là i >=
Tham khảo : Giáo trình: [1] mục 2.
Câu 3 [Góp ý]
Với giá trị nào của x, biểu thức sau trả về giá trị true(x thuộc kiểu
int).
x%3==
Chọn một câu trả lời A) 2
B) 7
C) 4
D) 9
Đúng. Đáp án đúng là : 9
Vì :
x%3 trả về giá trị là 0 khi x là bội của 3. Trong các đáp án, chỉ có đáp
án D có gia trị là bội của 3.
Tham khảo : Giáo trình: [1] mục 2.
Câu 4 [Góp ý]
Lựa chọn đáp án phù hợp:
(a) byte (1) 256
(b) char (2) 5000
(c)int (3) 4899.
(d) short (4)
(e) double (5) ‘F’
Chọn một câu trả lời A) a-4, b-5, c-2, d-1, e-
B) a-1, b-2, c-2, d-1, e-
C) a-1, b-5, c-4, d-4, e-
D) a-5, b-4, c-1, d-2, e-
Đúng. Đáp án đúng là : a-4, b-5, c-2, d-1, e-
Vì :
byte: 126, char:’F’, int:5000, short: 256, double:4899.
Tham khảo : Giáo trình: [1] mục 2.
Câu 5 [Góp ý]
Kiểu dữ liệu nào trong Java chứa giá trị bao gồm cả chữ và số?
Chọn một câu trả lời A) int
B) byte
C) char
Sai. Đáp án đúng là : “Lỗi biên dịch”
Vì :
Sử dụng sai phép so sánh trong lệnh if, toán tử = là toán tử gán không
sử dụng trong biểu thức của lệnh if.
Tham khảo : Giáo trình: [1] mục 2.
Câu 8 [Góp ý]
Đọc đoạn code sau:
1:public class Test {
2:public int aMethod() {
3:int i = 0;
4:i++;
5:return i;
6:}
7:public static void main (String[]args){
8:Test test = new Test();
9:test();
10:int j = test();
11:System(j);
12:}
13:}
Kết quả là gì?
Chọn một câu trả lời A) 0
B) 1
C) 2
D) Lỗi biên dịch
Đúng. Đáp án đúng là : 1
- Lệnh Test test=new Test() sẽ khởi tạo một đối tượng test
- test() sẽ khởi tạo thuộc tính i=
- int j=test() sẽ tăng thuộc tính i lên 1 (bằng 1) và gán giá trị
cho j => j=
Tham khảo : Giáo trình: [1] mục 2.
Câu 9 [Góp ý]
Đâu là khai báo biến hợp lệ?
Chọn một câu trả lời A) theOne
B) the One
C) 1the_One
D) $the One
Đúng. Đáp án đúng là : theOne
Vì :
Theo quy tắc khai báo biến thì tên biến nên bắt đầu bởi ký tự, không
có khoảng cách giữa tên biến và tên biến không được bắt đầu bởi số.
Tham khảo : Giáo trình: [1] mục 2.
Câu 10 [Góp ý]
Đâu là cách thức tạo SAI về đối tượng của lớp Animal sau:
class Animal{
String name;
public Animal(String x){
this = x;
}
}
Chọn một câu trả lời A) Animal a = new Animal();
B) Animal a = new Animal(“name”);
C) Animal a = new Animal(“”);
D) new Animal(“name”);
Sai. Đáp án đúng là : Animal a = new Animal()
Vì :
Trong lớp Animal không có hàm tạo mà không có tham số truyền vào.
Tham khảo : Giáo trình: [1] mục 2.
Câu 3 [Góp ý]
Xét 2 câu sau:
Câu 1: Biến được khai báo bên trong lớp được dùng để lưu trữ
các giá trị thuộc tính của đối tượng
Câu 2: Biến địa phương là biến được khai báo bên trong phương
thức và các khối lệnh.
Đúng. Đáp án đúng là : Cả 2 câu đều đúng
Tham khảo : Giáo trình: [1] mục 2.
Câu 4 [Góp ý]
default: j++;
}
return j + x;
}
public static void main(String[] args) {
System(“value = ” + switchIt(4));
}
}
Kết quả in ra của đoạn mã trên là gì?
Chọn một câu trả lời A) value = 3
B) value = 4
C) value = 5
D) value = 7
Đúng. Đáp án đúng là : value = 7
Vì :
Khi thực thi chương trình, hàm main() sẽ gọi hàm switchIt(4), hàm
switch() sẽ gán j=1, và so sánh x với các giá trị 1,2,3,4 và sẽ thực hiện
các lệnh từ nhánh j=4 đến hết switch(vì không có lệnh break) do đó j
tăng lên 2 => j=3. Cuối cùng sẽ trả về giá trị j+x =3+4=7.
Tham khảo : Giáo trình: [1] mục 1.
Câu 10 [Góp ý]
01:class A {
02: int x = 10;
03: public void calTotal(A a){
04: a = 12;
05: 06:System(a);
07: }
08:}
Khi thực hiện lệnh:
A a = new A();
a(a);
Giá trị của x sau khi thực hiện lệnh trên sẽ cho kết quả gì?
A) 10
B) 12
C) 22
D) 1012
Đúng. Đáp án đúng là : 12
Vì :
Khi gọi hàm calTotal tham số truyền cho hàm là một đối tượng thuộc
lớp A, do đó sẽ làm thay đổi thuộc tính x của lớp A sang giá trị là 12.
Tham khảo : Giáo trình: [1] mục 2.
7
Đâu là khai báo đúng về lớp Cat?
Chọn một câu trả lời A) Class Cat{}
B) class public Cat(){}
C) class Cat{}
D) public Cat class{}
Đúng. Đáp án đúng là : class Cat{}
Vì : Theo cú pháp khai báo lớp
Tham khảo : Giáo trình: [1] mục 2.
7 [Góp ý]
Điểm : 1
Đâu KHÔNG phải là cách thức để khởi tạo giá trị cho thuộc tính
name có kiểu chuỗi của lớp Cat?
A) class Cat {String name = “noname”;}
B)
public class Cat{
String name;
public Cat(){name = “noname”;}
}
C)
public class Cat{
String name;
public Cat(String x){name = x;}
}
2: System(“a = ” + a + “; a = ” +
a);
2: }
2: }
Chương trình sẽ in ra kết quả gì khi thực thi?
Chọn một câu trả lời A) Lỗi biên dịch dòng 2, 2, 2.
B) Lỗi biên dịch dòng 2.
C) Lỗi biên dịch dòng 2, 2.
D) a = 12; a = Hello
Đúng. Đáp án đúng là : a = 12; a = Hello
Vì :
Thuộc tính xA, yA của lớp ClassA được khai báo với từ khóa public
nên được truy xuất và in ra kết quả chương trình là xA = 12, yA =
Hello.
Tham khảo : Giáo trình: [1] mục 3, 3.
Đúng
Điểm: 1/1.
Câu 2 [Góp ý]
Điểm : 1
Đoạn mã sau có lỗi biên dịch gì? public class Person { protected
String name; protected int age; public static void main(String[]
args) { Person p = new Person(); p=”Tom”;
System(p); } }
Chọn một câu trả lời 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.
Sai. Đáp án đúng là : Không có lỗi biên dịch.
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.
Tham khảo : Giáo trình: [1] mục 3.
Không đúng
Điểm: 0/1.
Câu 3 [Góp ý]
Điểm : 1
Câu 1: Một thành viên protected của một lớp có thể được truy
xuất từ bất kỳ lớp nào trong cùng một gói và từ một lớp con nằm
bên ngoài gói nếu lớp bên ngoài đó là lớp con.
Câu 2: Một thành viên của một lớp được khai báo là private
không những không thể được truy xuất từ bên trong lớp mà còn
không nơi nào bên ngoài lớp.
Chọn một câu trả lời A) Câu 1 sai, câu 2 đúng
B) Câu 1 đúng, câu 2 sai
C) Cả 2 câu cùng đúng
D) Cả 2 câu cùng sai
Đúng. Đáp án đúng là : Câu 1 đúng, câu 2 sai
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 đó.
Câu 1 đúng, câu 2 sai
Tham khảo : Giáo trình: [1] mục 3.
Đúng
Điểm: 1/1.
Câu 4 [Góp ý]
Điểm : 1
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[][] = {{}, {}, {}};
Sai. Đáp án đúng là : int a1[][] = new int[][3];
Vì :
- Bắt buộc phải xác định số dòng trong khai báo mảng hai chiều.
Tham khảo : Giáo trình: [1] mục 4.
Không đúng
Điểm: 0/1.
Điểm: 1/1.
Câu 7 [Góp ý]
Điểm : 1
Nếu phương thức của bạn ghi đè một trong số các phương thức
của lớp cha, bạn có thể gọi phương thức bị ghi đè thông qua từ
khóa nào?
Chọn một câu trả lời A) parent
B) super
C) this
D) static
Sai. Đáp án đúng là : super
Vì :
Từ khóa super được sử dụng trong lớp con để gọi phương thức của
lớp cha.
Tham khảo : Giáo trình: [1] mục 5.
Không đúng
Điểm: 0/1.
Câu 8 [Góp ý]
Điểm : 1
Hãy cho biết kết quả khi chạy đoạn chương trình sau?
class Student {
public int getAge(){
return 10;
}
}
public class Man extends Student{
public int getAge(int added) {
return super()+added;
}
public static void main(String[] args) {
Man s = new Man();
System(s());
System(s());
}
}
Chọn một câu trả lời A)
10
11
B)
10
10
C)
11
11
D)
Không in gì và báo lỗi
Sai. Đáp án đúng là : Không có lỗi biên dịch. In ra 10
10
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
Tham khảo : Giáo trình: [1] mục 5.
Không đúng
Điểm: 0/1.
Câu 9 [Góp ý]
Điểm : 1
Đoạn mã sau có lỗi biên dịch nào?
class Student {
}
public class Man extends Student{
public static void main(String[] args) {
Man m = new Student();
}