Bộ đề Trắc nghiệm Lập trình Java – Phần 3

Năm thi: 2023
Môn học: Lập trình Java
Trường: Tổng hợp
Người ra đề: Tổng hợp
Hình thức thi: Trắc nghiệm
Loại đề thi: Thi qua môn
Độ khó: Trung bình
Thời gian thi: 60 phút
Số lượng câu hỏi: 40 câu
Đối tượng thi: Sinh viên
Năm thi: 2023
Môn học: Lập trình Java
Trường: Tổng hợp
Người ra đề: Tổng hợp
Hình thức thi: Trắc nghiệm
Loại đề thi: Thi qua môn
Độ khó: Trung bình
Thời gian thi: 60 phút
Số lượng câu hỏi: 40 câu
Đối tượng thi: Sinh viên

Mục Lục

Trắc nghiệm Lập trình Java là một phần thiết yếu trong chương trình đào tạo của các ngành Khoa học Máy tính, Kỹ thuật Phần mềm, và Công nghệ Thông tin tại nhiều trường đại học, chẳng hạn như Đại học Bách Khoa Hà Nội và Đại học Khoa học Tự nhiên. Trắc Nghiệm Lập trình Java cung cấp cho sinh viên kiến thức cơ bản và nâng cao về ngôn ngữ lập trình Java, bao gồm cú pháp, cấu trúc dữ liệu, các thư viện, và các kỹ thuật lập trình đối tượng.

Bộ đề Trắc nghiệm Lập trình Java – Phần 3

Câu 1: Khi thực hiện khối lệnh trên sẽ cho kết quả là bao nhiêu?

java

int s = 0;
for (int i = 0; i < 10; i++)
s += i;
System.out.println(s);

A. 45
B. 0
C. 55
D. Không có kết quả đúng

Câu 2: Khối lệnh thực hiện chuyện gì?

java

int[] mang = new int[10];
int s = 0;
int j = 0;
for (int i: mang) {
i = ++j;
s += i;
}
System.out.println(“S = “ + s);

A. Nhập dữ liệu cho mang nguyên.
B. Tính tổng mảng nguyên.
C. Nhập dữ liệu và tính tổng mảng nguyên.
D. Tất cả đều sai.

Câu 3: Cho xâu kí tự s = “ABCDEF”. Để lấy ký tự thứ ‘E’ của xâu ký tự s(String) dùng câu lệnh nào sau đây? A. s.charAt(5)
B. s.charAt(4)
C. s[5]
D. s[4]

Câu 4: Phát biểu nào sau đây là đúng: A. Mảng có thể lưu giữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau
B. Chỉ số của mảng có thể sử dụng kiểu số thực (float, double)
C. Biểu thức array.length được sử dụng để trả về số phần tử trong mảng
D. Một phần tử của mảng không thể truyền vào trong một phương thức.

Câu 5: Trong các khai báo sau đâu là khai báo không hợp lệ? A. int a1[][] = new int[][3];
B. int a2[][] = new int[2][3];
C. int a3[][] = new int[2][];
D. int a4[][] = {{}, {}, {}}

Câu 6: Câu 1: Nếu 2 đối tượng bằng nhau trong cùng một mảng và mảng đó được sắp xếp, các phần tử bằng nhau không thể thay đổi thứ tự của chúng? Câu 2: Chỉ số mảng bắt đầu từ 1
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

Câu 7: Phát biểu sau nào là SAI A. Mảng có kích thước không đổi trong toàn bộ chương trình
B. 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
C. Mảng N phần tử được đánh chỉ số từ 0 đến N – 1
D. Chỉ số mảng bắt đầu bằng 0

Câu 8: Lệnh sau in ra cái gì?

java

final int ARRAY_SIZE = 5;
ARRAY_SIZE = 10;
System.out.println("size = " + ARRAY_SIZE);

A. size = 10
B. size = 5
C. Lỗi ở dòng 3
D. Lỗi ở dòng 2

Câu 9: Chương trình sẽ in ra cái gì?

java

class A {
final public int method1(int a, int b) {
return 0;
}
}
class B extends A {
public int method1(int a, int b) {
return 1;
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
System.out.println("x = " + b.method1(0, 1));
}
}

A. x = 0
B. x = 1
C. Lỗi biên dịch
D. x = 10

Câu 10: Hãy cho biết kết quả khi chạy đoạn chương trình sau?

java

class Student {
public int getAge() {
return 10;
}
}
public class Man extends Student {
public int getAge(int added) {
return super.getAge() + added;
}
public static void main(String[] args) {
Man s = new Man();
System.out.println(s.getAge());
System.out.println(s.getAge());
}
}

A. 10 11
B. 10 10
C. 11 11
D. Không in gì và báo lỗi

Câu 11: Đoạn mã sau có lỗi biên dịch nào?

java

class Student {
public String name;
}
public class Man extends Student {
private String name;
}

A. Có lỗi biên dịch: name has private access in Man.
B. Không có lỗi biên dịch.
C. Có lỗi biên dịch: for name access modifier in Man for name is weaker in Student.
D. Có lỗi biên dịch: name has public access in Student.

Câu 12: Đoạn mã sau có lỗi biên dịch nào sau?

java

class Student {
protected String name;
}
public class Man extends Student {
public static void main(String[] args) {
Man m = new Man();
m.name = "John";
}
}

A. name has protected access in Student.
B. Không có lỗi biên dịch
C. class Man has no attribute name.
D. class Man has no attribute or method name.

Câu 13: Đoạn mã sau có kết quả như thế nào?

java

class Student {
private String name;
}
public class Man extends Student {
private String name;
public static void main(String[] args) {
Student m = new Student();
m.name = "Peter";
}
}

A. Có lỗi biên dịch: name has private access in Student.
B. Không có lỗi biên dịch.
C. In ra chữ “student”
D. In ra chữ “Peter”

Câu 14: Đoạn lệnh nào sẽ đưa ra lỗi biên dịch?
A. class A { public A(int x) {} }
B. class A {} class B extends A { B() {} }
C. Class A { A() {}} class B { public B() {} }
D. class Z { public Z(int) {} } class A extends Z { }

Câu 15: Đoạn mã sau có lỗi biên dịch không? Nếu có là lỗi nào sau?

java

class Student {}
public class Man extends Student {
}

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 is empty.
D. Có lỗi biên dịch: class Student is empty, class Man is empty

Câu 16: Đoạn mã sau có lỗi biên dịch gì?

java

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 17: Đoạn mã sau có lỗi biên dịch gì?

java

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);
}
}

B. name has private access.
A. Không có lỗi biên dịch.
C. age has protected access.
D. name has public access.

Câu 18: Đoạn mã sau có lỗi biên dịch gì?

java

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);
}
}

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 19: Chương trình sẽ in ra kết quả gì khi thực thi đoạn mã sau?

java

package pac02;
public class ClassA {
protected 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.7
B. Lỗi biên dịch dòng 2.5
C. Lỗi biên dịch dòng 2.5, 2.7
D. Kết quả in ra là a.xA = 12; a.yA = Hello

Câu 20: Đoạn mã sau có lỗi biên dịch nào không?

java

class Person {
public void method1(int i) {}
}
public class Man extends Person {
public void method1(int i) {}
public static void main(String[] args) {
Person p = new Man();
p.method1(5);
}
}

A. Không có lỗi biên dịch
B. Có lỗi biên dịch: method1(int i) is not defined in Person.
C. Có lỗi biên dịch: method1(int i) is not defined in Man.
D. Có lỗi biên dịch: class Man is missing method1(int i).

Câu 21: Đoạn mã sau có lỗi biên dịch gì?

java

public class Person {
private String name;
private 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 private access.
D. name has public access.

Câu 22: Khi biên dịch lớp Main có lỗi biên dịch không? Nếu có là lỗi nào?

java

package java.school;
public class Student {}

package java.test;
public class Main {
public static void main(String[] args) {
Student s = new Student();
}
}

A. Có lỗi biên dịch: can not find symbol test.Student
B. Không có lỗi biên dịch.
C. Có lỗi biên dịch: Add import java.school.Student
D. Có lỗi biên dịch: can not find constructor Student() for Student.

Câu 23: Chương trình sau in ra màn hình chuỗi nào?

java

public class Main {
public static void main(String[] args) {
String names[] = {
"John",
"Anna",
"Peter",
"Victor",
"David"
};
names = new String[5];
System.out.println(names[2]);
}
}

A. Có lỗi biên dịch: use new keyword to create object
B. Peter
C. Anna
D. null

Câu 24: Câu 1: Nếu 2 đối tượng bằng nhau trong cùng một mảng và mảng đó được sắp xếp, các phần tử bằng nhau không thể thay đổi thứ tự của chúng.
Câu 2: Chỉ số mảng bắt đầu từ 1
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

Câu 25: Kết quả in ra của đoạn mã trên là gì?

java

public class Delta {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] argv) {
int i = 0;
for (foo('A'); foo('B') && (i < 2); foo('C')) {
i++;
foo('D');
}
}
}

A. ABDCBDCB
B. ABCDABCD
C. Lỗi biên dịch
D. Chương trình không lỗi, nhưng khi chạy sẽ sinh lỗi

Câu 26: Trong đoạn mã trên x nhận giá trị bao nhiêu?

java

StringBuffer s = new StringBuffer("hello how are you how?");
int x = s.indexOf("ow");
System.out.println(x);

A. 7
B. 6
C. 5
D. Lỗi biên dịch

Câu 27: Phát biểu sau nào là SAI
A. Mảng có kích thước không đổi trong toàn bộ chương trình
B. 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
C. Mảng N phần tử được đánh chỉ số từ 0 đến N – 1
D. Chỉ số mảng bắt đầu bằng 0

Câu 28: Lệnh sau in ra cái gì?

java

final int ARRAY_SIZE = 5;
ARRAY_SIZE = 10;
System.out.println("size = " + ARRAY_SIZE);

A. size = 10
B. size = 5
C. Lỗi ở dòng 3
D. Lỗi ở dòng 2

Câu 29: Đoạn mã sau có lỗi biên dịch KHÔNG? Nếu có là lỗi nào sau?

java

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 30: Đoạn mã sau có lỗi biên dịch KHÔNG? Nêu KHÔNG thì in ra màn hình kết quả nào?

class Student {
String sayHello() {
return "Student";
}
}
public class Man extends Student {
protected String sayHello() {
return "man";
}
public static void main(String[] args) {
Student s = new Man();
System.out.println(s.sayHello());
}
}

A. Có lỗi biên dịch.
B. Student
C. Man
D. Student Man

Câu 31: 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.getAge() + added;
}
public static void main(String[] args) {
Man s = new Man();
System.out.println(s.getAge());
System.out.println(s.getAge(1));
}
}

A. 10 11
B. 10 10
C. 11 11
D. Không in gì và báo lỗi

Câu 32: Khai báo lớp Man là lớp con của Student như thế nào?

class Student {
public String name;
}

A. public class Man extends Student { }
B. public class Man extend Student { }
C. public class Man : Student { }
D. public class Man => Student { }

Câu 33: Đoạn lệnh nào sẽ đưa ra lỗi biên dịch?
A. class A { public A(int x) {} }
B. class A {} class B extends A { B() {} }
C. class A { A() {}} class B { public B() {} }
D. class Z { public Z(int) {} } class A extends Z { }

Câu 34: Phương thức nào đưa vào dòng 6 sẽ sinh lỗi?

class Super {
public float getNum() {
return 3.0f;
}
}
public class Sub extends Super {
}

A. public getNum() { }
B. public float getNum(double d) { }
C. public float getNum() { return 4.0f; }
D. public double getNum(float d) { return 4.0d; }

Câu 35: Đâu là một khai báo lớp kế thừa từ hai giao diện đúng?
A. interface Summable {} interface Eatable {} class Math implements Summable; Eatable{}
B. interface Summable {} interface Eatable {} class Math implements Summable and Eatable{}
C. interface Summable {} interface Eatable {} class Math: Summable, Eatable{}
D. interface Summable {} interface Eatable {} class Math implements Summable, Eatable{}

Câu 36: Cho khai báo mảng sau. Lệnh trên in ra cái gì?

String[][] str = {"lap", "trinh", "java"};
System.out.println(str[1][1]);

A. trinh
B. java
C. Lỗi biên dịch ở dòng 1
D. Không in ra gì

Câu 37: Đoạn mã sau in ra màn hình xâu ký tự nào sau:

class Student {
public String sayHello() {
return "Student";
}
}
public class Man extends Student {
public String sayHello() {
return super.sayHello();
}
public static void main(String[] args) {
Student m = new Student();
System.out.println(m.sayHello());
}
}

A. Student
B. Man
C. Student Man
D. Man Student

Câu 38: Chương trình trên sai ở dòng nào?

class BreakDemo {
public static void main(String[] args) {
int[] arrayOfInts = {
32,
87,
3,
589,
12,
1076,
2000,
8,
622,
127
};
int searchFor = 12;
int i;
boolean fountIt = false;
for (i = 0; i < arrayOfInts.length; i++) {
if (arrayOfInts[i] == searchFor) {
fountIt = true;
break;
}
}
if (fountIt) {
System.out.println("Found " + searchFor + " at index " + i);
} else {
System.out.println(searchFor + " not in the array");
}
}
}

A. 2 và 6
B. 3 và 11, 15
C. 5, 7, 9
D. Chương trình không sai

Câu 39: Kết quả của chương trình sau là gì?

public class Main {
public static void main(String[] args) {
int[] array = {0, 1, 2};
System.out.println(array[3]);
}
}

A. 2
B. 3
C. Lỗi biên dịch
D. Lỗi chạy thời gian

Câu 40: Kết quả của đoạn chương trình sau là gì?

public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3};
for (int i : array) {
System.out.print(i);
}
}
}

A. 123
B. 321
C. 12
D. 3210

Bài Tiếp Theo
×
Lấy mã và nhập vào ô dưới đây

Bạn ơi!! Ủng hộ tụi mình bằng cách làm nhiệm vụ nha <3
Chỉ tốn 30s thôi là đã có link Drive rồi nè.
Duy trì Website/Hosting hàng tháng cũng không dễ dàng T_T

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi vượt link

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút LẤY MÃ và chờ 1 lát để lấy mã: (Giống hình dưới)