300 Câu hỏi trắc nghiệm lập trình Java có đáp án - Phần 1
-
5319 lượt thi
-
50 câu hỏi
-
60 phút
Danh sách câu hỏi
Câu 1:
Câu 2:
Chọn đáp án D .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.
Câu 3:
Chọn đáp án C . 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()
Câu 4:
Chọn đáp án C.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.
Câu 5:
Chọn đáp án D. Vì: Netbeans hoặc Eclipse là môi trường lập trình, chứ không phải để chạy 0ứ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.
Câu 6:
Chọn đáp án C. Vì: Theo cấu trúc của gói java.util
Câu 8:
Chọn đáp án B.Vì: Theo lịch sử ngôn ngữ java tên đầu tiên của java là oak.
Câu 9:
Chọn đáp án C .Vì: Để truy xuất và phương thức của đối tượng ta sử dụng cú pháp: tendoituong.tenphuongthuc();
Câu 10:
Chọn đáp án D.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
Câu 11:
Chọn đáp án C .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
Câu 12:
public class Main {
public static void main(String[] args) {
int x = -1;
String y = x + 3;
System.out.println("x = " + x + "y = " + y);
}
}
Chọn đáp án B .Vì: y là chuỗi, x là số không thể thực hiện cộng chuỗi và số.
Câu 13:
Chọn đáp án B .Vì: Lớp là một tập tất cả các đối tượng có cùng thuộc tính và hành vi. Vậy nói ngược lại đối tượng chính là một thể hiện cụ thể của lớp
Câu 14:
(1) rollNumber
(2) $rearly_salary
(3) double
(4) $$_
(5) mount#balance
Chọn đáp án C
Câu 15:
int i = 1,
j = 10;
do {
if (i > j) {
break;
}
j--;
} while (++ i < 5 );
System.out.printIn("i = " + i + " and j = " + j);
Chọn đáp án D.Vì:
+ 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 >=5
Câu 16:
Chọn đáp án D. 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.
Câu 17:
(a) byte (1) 256
(b) char (2) 5000
(c)int (3) 4899.99
(d) short (4)126
(e) double (5) 'F'
Chọn đáp án A .Vì: byte: 126, char:'F', int:5000, short: 256, double:4899.99
Câu 18:
Chọn đáp án D.Vì: Kiểu dữ liệu String chứa giá trị bao gồm cả chữ và số.
Câu 19:
int i = 0;
do {
flag = false;
System.out.print(i++);
flag = i < 10;
continue;
} while (( flag ) ? true: false);
Chọn đáp án B.Vì: Khi thực thi chương trình vòng lặp do/while sẽ chạy biến i từ 0 đến 9
Câu 20:
Chọn đáp án A.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ố.
Câu 21:
Chọn đáp án D.Vì: Biểu thức x==true ở đáp án B trả về giá trị là true, 1==1 ở đáp án C cũng trả về giá trị là true. !x trả về giá trị là !true là false, khác các đáp án khách.
Câu 22:
Chọn đáp án A. Vì: Khi truyền tham số vào cho phương thức có hai cách là: truyền theo kiểu tham trị và truyền theo kiểu tham biến.
Câu 23:
public class Test {
public static int switchIt(int x)
{
int j = 1;
switch (x) {
case 1:
j++;
case 2:
j++;
case 3:
j++;
case 4:
j++;
default:
j++;
}
return j + x;
}
public static void main(String[] args) {
System.out.println("value = " + switchIt(4));
}
}
Chọn đáp án D.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
Câu 24:
class A {
int x = 10;
public void calTotal(A a) {
a.x = 12;
System.out.println(a.x);
}
}
Chọn đáp án B.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.
Câu 26:
public class Person {
protected String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
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.
Câu 27:
ngoài lớp. Chọn một câu trả lời
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 đó.
Câu 28:
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âu 29:
Chọn đáp án C.Vì: biểu thức array.length trả về số phần tử trong mảng.
Câu 30:
public class Main {
public static void main(String[] args) {
String names[] = {
"John",
"Anna",
"Peter",
"Victor",
"David"
};
System.out.println(names[2]);
}
}
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)
Câu 31:
Chọn một câu trả lời
Chọn đáp án B.Vì: Từ khóa super được sử dụng trong lớp con để gọi phương thức của lớp cha.
Câu 32:
class Student {
public String sayHello() {
return "Student";
}
}
public class Man extends Student {
public int sayHello() {
return 0;
}
}
Chọn đáp án A.Vì:Lớp Man định viết đè sayHello() được viết ở Student, nhưng có kiểu dữ liệu trả về là int không thể chuyển thành String được.Và sayHello() không được đánh dấu là final, nên có thể được ghi đè. sayHello() ở cả hai lớp đều có cùng access modifier, điều này là hợp lệ.
Câu 33:
public class Person {
protected String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
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.
Câu 34:
ngoài lớp. Chọn một câu trả lời
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 đó.
Câu 35:
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âu 37:
public class Main {
public static void main(String[] args) {
String names[] = {
"John",
"Anna",
"Peter",
"Victor",
"David"
};
System.out.println(names[2]);
}
}
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)
Câu 38:
class Student {
}
public class Man extends Student {
public static void main(String[] args) {
Man m = new Student();
}
}
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âu 39:
Khi thực hiện lệnh: A a = new A();
a.calTotal(a);
class A {
int x = 10;
public void calTotal(A a) {
a.x = 12;
System.out.println(a.x);
}
}
Chọn đáp án B.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.
Câu 40:
Chọn đáp án C.Vì: Theo cú pháp khai báo lớp
Câu 41:
Chọn đáp án D.Vì: Sai về cách thức khởi tạo thuộc tính name của lớp Cat sai về cách thức khởi tạo thuộc tính name của lớp Cat .Biến name trong hàm tạo là biến cục bộ, không phải là thuộc tính name.
Câu 42:
public class Person {
protected String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
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.
Câu 43:
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
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 đó.