wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Object Oriented Programming

Total questions: 50

Worksheet time: 25mins

Name
Class
Date
1.

Lập trình hướng đối tượng là

a)

Phương pháp mới của lập trình máy tính, chia chương trình thành các hàm, quan tâm đến chức năng của hệ thống

b)

Phương pháp lập trình cơ bản gần với mã máy

c)

Phương pháp đặt trọng tâm vào các đối tượng, nó không cho phép dữ liệu chuyển động một cách tự do trong hệ thống, dữ liệu được gắn với các hàm thành phần.

d)

Phương pháp đặt trọng tâm vào các chức năng, cấu trúc chương trình được xây dựng theo cách tiếp cận hướng chức năng.

2.

Các đặc trưng cơ bản của lập trình hướng đối tượng:

a)

Tính đóng gói, tính kế thừa, tính đa hình, tính trừu tượng

b)

Tính đóng gói, tính trừu tượng

c)

Tính chia nhỏ, tính kế thừa

d)

Tính đóng gói, tính kế thừa, tính đa hình, tính đặc biệt hóa

3.

OOP là viết tắt của:

a)

Open Object Programming

b)

Object Oriented Proccessing

c)

Object Oriented Programming

d)

Object Open Programming

4.

Tính bao gói là:

a)

Cơ chế không cho phép các thành phần khác truy cập đến bên trong nó

b)

Cơ chế cho thấy một hàm có thể có nhiều thể hiện khá nhau ở từng thời điểm.

c)

Cơ chế ràng buộc dữ liệu và thao tác trên dữ liệu đó thành một thể thống nhất, tránh được các tác động bất ngờ từ bên ngoài. Thể thống nhất này gọi là đối tượng.

d)

Cơ chế chia chương trình thành các hàm và thủ tục thực hiện các chức năng riêng rẽ.

5.

Trừu tượng hóa là:

a)

Phương pháp thay thế những chi tiết chính bằng những chi tiết tương tự

b)

Phương pháp chỉ quan tâm đến những chi tiết cần thiết (chi tiết chính) và bỏ qua những chi tiết không cần thiết

c)

Phương pháp quan tâm đến mọi chi tiết của đối tượng

d)

Không có phương án chính xác

6.

Đối tượng là:

a)

Một vật chất trong thế giới thực

b)

Một mẫu hay một thiết kế cho mọi đối tượng

c)

Một lớp vật chất trong thế giới thực

d)

Một thực thể cụ thể trong thế giới thực

7.

Lớp đối tượng là:

a)

Tập các phần tử cùng loại

b)

Một thể hiện cụ thể cho các đối tượng.

c)

Một thiết kế hay mẫu cho các đối tượng cùng kiểu.

d)

Tập các giá trị cùng loại

8.

Sau khi khai báo và xây dựng thành công lớp đối tượng Sinh viên. Khi đó lớp đối tượng Sinh viên còn được gọi là:

a)

Kiểu dữ liệu cơ bản.

b)

Đối tượng

c)

Lớp đối tượng cơ sở.

d)

Kiểu dữ liệu trừu tượng.

9.

Trong các phương án sau, phươn án nào mô tả đối tượng:

a)

Đồng hồ

b)

Xe đạp

c)

Máy tính

d)

Quả cam

e)

Tất cả đều đúng

10.

Muốn lập trình hướng đối tượng, cần phải phân tích chương trình, bài toán thành:

a)

Các module

b)

Các đối tượng từ đó xây dựng các lớp đối tượng tương ứng

c)

Hàm, thủ tục

d)

Các thông điệp

11.

Khi khai báo và xây dựng thành công lớp đối tượng, để truy cập vào thành phần của lớp ta cần:

a)

Truy cập thông qua tên lớp hay tên đối tượng của lớp

b)

Chỉ có thể truy cập thông qua tên lớp.

c)

Chỉ có thể truy cập thông qua tên đối tượng của lớp

d)

Không thể truy cập được

12.

Khi khai báo và xây dựng một lớp ta cần phải xác định rõ thành phần:

a)

Dữ liệu và đối tượng của lớp

b)

Khái niệm và đối tượng của lớp

c)

Vô số thành phần

d)

Thuộc tính (dữ liệu) và phương thức (hành vi) của lớp

13.

Tính kế thừa là:

a)

Khả năng sử dụng lại các hàm đã xây dựng.

b)

Khả năng sử dụng lại các kiểu dữ liệu đã xây dựng.

c)

Khả năng xây dựng các lớp mới từ các lớp cũ, lớp mới được gọi là lớp dẫn xuất, lớp cũ được gọi là lớp cơ sở.

d)

Tất cả các phương án trên đều đúng

14.

Trong kế thừa, lớp mới (lớp con hay lớp dẫn xuất) có thuật ngữ tiếng Anh là:

a)

Object Class

b)

Base Class

c)

Inheritance Class

d)

Derived Class

15.

Trong kế thừa, lớp Cha (lớp cơ sở) có thuật ngữ tiếng Anh là:

a)

Object Class

b)

Base Class

c)

Inheritance Class

d)

Derived Class

16.

Tính đa hình là:

a)

Khả năng một thông điệp có thể được truyền lại cho lớp con của nó

b)

Khả năng một hàm, thủ tục được sử dụng lại

c)

Khả năng một hàm, thủ tục có thể được kế thừa lại

d)

Khả năng một thông điệp có thể thay đổi cách thể hiện của nó theo lớp cụ thể của đối tượng được nhận thông điệp

17.

Phương án nào sau đây mô tả tính đa hình

a)

Các lớp Điểm, Hình tròn, Hình vuông, Hình chữ nhật, … đều có phương thức vẽ

b)

Lớp hình vuông kế thừa lớp hình chữ nhật

c)

Lớp Điểm, Hình tròn cùng có hàm tạo, hàm hủy

d)

Lớp hình tròn kế thừa lớp điểm

18.

Tại chương trình chính:

a)

Chỉ có thể truy cập đến thành phần public của lớp

b)

Không thể truy cập đến thành phần nào của lớp

c)

Có thể truy cập đến thành phần private của lớp

d)

Có thể truy cập đến bất kỳ thành phần nào của lớp.

19.

Khi khai báo lớp trong các ngôn ngữ lập trình hướng đối tượng phải sử dụng từ khóa:

a)

Record

b)

File

c)

Object

d)

class

20.

Thành phần private của lớp là thành phần:

a)

Cho phép truy xuất từ bên ngoài lớp và cho phép kế thừa

b)

Cho phép truy xuất từ bên ngoài lớp

c)

Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới

d)

Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong lớp mới có thể

truy xuất được

21.

Thành phần protected của lớp là thành phần:

a)

Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong lớp mới có thể

truy xuất được.

b)

Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới.

c)

Cho phép truy xuất từ bên ngoài lớp và cho phép kế thừa.

d)

Cho phép truy xuất từ bên ngoài lớp.

22.

Thành phần public của lớp là thành phần:

a)

Cho phép truy xuất từ bên ngoài lớp

b)

Cho phép truy xuất từ bên trong và ngoài lớp cho phép kế thừa

c)

Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong mới có thể truy

xuất được

d)

Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới

23.

Hàm thành viên (phương thức) của lớp:

a)

Tất cả các hàm (hàm và thủ tục) được sử dụng trong lớp

b)

Tất cả các hàm (hàm và thủ tục) trong chương trình có lớp

c)

Tất cả các hàm (hàm trả về giá trị và không trả về giá trị) được khai báo bên trong lớp, xây dựng

bên trong hay bên ngoài lớp thể hiện các hành vi của đối tượng

d)

Tất cả những hàm (hàm và thủ tục) được khai báo và xây dựng bên trong lớp mô tả các dữ liệu của

đối tượng

24.

Trong một chương trình có thể xây dựng tối đa bao nhiêu lớp:

a)

10 lớp

b)

3 lớp

c)

Vô số tùy theo bộ nhớ

d)

1 lớp duy nhất

25.

Cho lớp Time như sau,

Khi xây dựng phương thức addHour bên ngoài lớp Time ta phải viết là:

a)

void addHour(int h);{//Nội dung}

b)

void addHour(int h){//Nội dung}

c)

void Time::addHour(int h){//Nội dung}

d)

void Time:addHour(int h){//Nội dung}

26.

Cho đoạn chương trình sau,
Đoạn chương trình trên khi khai báo 1 hình tròn (HT H1;) thì hình tròn H1 này chưa xác định được tâm vì theo tính chất kế thừa không kế thừa hàm tạo, ta phải tự gọi hàm tạo của lớp cơ sở ở lớp dẫn xuất. Để xác định tâm cho hình tròn H1 là 0,0 ta cần sửa là:

a)

HT():Diem(){r=1;};

b)

HT(){Diem();r=1;};

c)

HT(){x=0,y=0,r=1;};

d)

Tất cả các phương án trên đều đúng.

27.

Cho đoạn chương trình sau, Đoạn chương trình trên khi khai báo 1 hình tròn (HT H1;) thì hình tròn H1 này có:

a)

Tâm là (1,1) bán kính là 1

b)

Không xác định được tâm vì theo tính chất kế thừa không kế thừa hàm tạo, ở lớp dẫn xuất phải gọi

hàm tạo của lớp cơ sở.

c)

Tâm là (0,0) bán kính là 1.

d)

Tất cả các phương án trên đều đúng.

28.

Cho đoạn chương trình sau, câu lệnh khai báo Phanso P1 bị báo lỗi vì

a)

Chương trình trên không thể lỗi được vì ngôn ngữ C++ sẽ tự phát sinh hàm tạo không đối.

b)

Không xác định được gọi tới hàm tạo nào

c)

Gọi tới hàm tạo không đối mà chương trình lại không xây dựng

d)

Tất cả các phương án trên đều sai.

29.

Cho đoạn chương trình sau.

Nếu gọi O.Xuat(); thì sẽ:

a)

Gọi đến cả hai phương thức.

b)

Gọi đến phương thức Xuat thuộc lớp A

c)

Gọi đến phương thức Xuat thuộc lớp B.

d)

Lỗi

30.

Hãy nhận định phát biểu đúng trong đoạn chương trình sau:

a)

Xuat là một hàm hủy

b)

Xuat là một hàm tạo

c)

Lỗi tại dòng void Xuat(); virtual;

d)

Xuat là phương thức ảo

31.

Cho biết đoạn chương trình sau lỗi ở đâu?

a)

Tại câu lệnh class B:public A

b)

Không lỗi tại dòng nào cả

c)

Tại câu lệnh B1=A1;

d)

Tại câu lệnh A1=B1;

32.

Dòng lệnh friend class B; trong đoạn chương trình sau có nghĩa là:

a)

Khai báo lớp B là bạn lớp A và ngược lại

b)

Khai báo lớp B là bạn lớp A

c)

Khai báo lớp A là bạn lớp B

d)

Tất cả các phương án trên đều sai

33.

Cho đoạn chương trình sau.
Cần xây dựng lớp Trai_dua_hau. Khi đó quan hệ giữa lớp Trai_cay và lớp Trai_dua_hau là:

a)

Trai_cay là lớp cha của lớp Trai_dua_hau

b)

Trai_dua_hau là lớp bao của lớp Trai_cay

c)

Trai_dua_hau là lớp cha của lớp Trai_cay

d)

Trai_dua_hau và Trai_cay là lớp bạn

34.

Cho đoạn chương trình sau.

Lớp Trai_cay với khai báo như trên được gọi là:

a)

Lớp bao

b)

Lớp cơ sở trừu tượng

c)

Lớp cơ sở ảo

d)

Lớp dẫn xuất ảo

35.

Cho lớp Dathuc sau đây, để thực hiện khai báo mà không lỗi ta cần xây dựng:

a)

Hàm tạo có đối số mặc định

b)

Hàm tạo không đối và hàm tạo sao chép

c)

Hàm tạo có đối

d)

Hàm tạo không đối và hàm tạo có đối

36.

Trong đoạn chương trình sau, hàm KC2D có tên gọi là:

a)

Hàm thông thường

b)

Hàm bạn của lớp diem

c)

Phương thức của lớp

d)

Toán tử bạn của lớp diem

37.

Trong đoạn chương trình sau, để gọi tới hàm KC2D ta sử dụng câu lệnh?

a)

D2.KC2D(D1);

b)

D1.KC2D(D2);

c)

KC2D(D1,D2);

d)

D1::KC2D(D2);

38.

Cho đoạn chương trình sau, hãy chọn phương án sai

a)

Lớp B là bạn của lớp A

b)

Các phương thức của lớp B có quyền truy cập đến tất cả các thành viên riêng của lớp A

c)

Lớp C là bạn của lớp A

d)

Các phương thức của lớp A có quyền truy cập đến tất cả các thành viên riêng của lớp B

39.

Cho đoạn chương trình sau.

Để khai báo một mảng gồm 10 sinh viên ta có thể sử dụng câu lệnh khai báo:

a)

Sinh_vien ds(10);

b)

Sinh_vien *ds[10];

c)

Sinh_vien ds[10];

d)

Không thể khai báo mảng các đối tượng

40.

Cho đoạn chương trình.

Lớp Doanthang được gọi là:

a)

Lớp cha của lớp Diem

b)

Lớp bao của lớp Diem

c)

Lớp bạn của lớp Diem

d)

Lớp con của lớp Diem

41.

Đoạn chương trình sau bị lỗi tại:

a)

Dòng obj1.x=10;

b)

Dòng obj2.y=8;

c)

Dòng int x;

d)

Dòng A.obj1;

42.

Đoạn chương trình sau bị lỗi. Hãy chỉ ra nguyên nhân?

a)

Không thể truy cập vào thành phần private của lớp

b)

Chưa khai báo x

c)

Không xác định được giá trị x

d)

Phải gọi thông qua tên lớp, không được gọi thông qua tên đối tượng

43.

Đoạn chương trình sau khi biên dịch phát sinh ra lỗi không khai báo biến x, lựa chọn đáp án đúng nhất dưới đây.

a)

Sửa dòng void nhap(); thứ hai thành void A::nhap();

b)

Khai báo thêm biến x trong hàm nhap

c)

Cả hai phương án trên đều sai

d)

Cả hai phương án trên đều đúng

44.

Để quản lý các phương tiện giao thông đường bộ người ta xây dựng hệ thống các lớp đối

tượng gồm: lớp xe đạp, lớp xe máy, lớp ô tô con, lớp xe tải. Sau quá trình phân tích nhận thấy rằng các lớp đối tượng trên cùng có các đặc điểm như sau: Tải_trọng, Loại_động_cơ, Biển_số và đều di chuyển từ điểm A đến điểm B. Người ta xây dựng lớp PT_Giao_Thông làm lớp cơ sở cho các lớp đối tượng trên và lớp này gồm các thuộc tính

a)

Tải_trọng, Loại_động_cơ, Biển_số, Di_chuyển

b)

Tải_trọng, Loại_động_cơ, Loại_phương_tiện, Biển_số, Di_chuyển

c)

Tải_trọng, Loại_động_cơ, Biển_số

d)

Tất cả các phương án trên đều đúng.

45.

Để quản lý các phương tiện giao thông đường bộ người ta xây dựng hệ thống các lớp đối

tượng gồm: lớp xe đạp, lớp xe máy, lớp ô tô con, lớp xe tải. Sau quá trình phân tích nhận thấy rằngcác lớp đối tượng trên cùng có các đặc điểm như sau: Tải_trọng, Loại_động_cơ, Biển_số và đều dichuyển từ điểm A đến điểm B. Người ta xây dựng lớp PT_Giao_Thông làm lớp cơ sở cho các lớp đối tượng trên và lớp này gồm các phương thức là:

a)

Di_chuyển

b)

Tải_trọng, Loại_động_cơ, Loại_phương_tiện, Biển_số,

c)

Loại_phương_tiện, Di_chuyển

d)

Tải_trọng, Loại_động_cơ, Loại_phương_tiện, Biển_số, Di_chuyển

46.

Vào mỗi kỳ thi người ta cần lập ra danh sách thí sinh dự thi dựa theo danh sách sinh viên đủ

điều kiện dự thi của mỗi môn học, để thuận tiện xử lý người ta xây dựng lớp Thí sinh dựa trên lớp

Sinh viên với điều kiện là đủ điều kiện dự thi các môn học. Người ta phân tích thấy lớp Thí sinh là

trường hợp đặc biệt của lớp Sinh viên vì vậy khi xây dựng người ta xây dựng

a)

Lớp Sinh viên là lớp bao của lớp Thí sinh

b)

Lớp Thí sinh kế thừa lớp Sinh viên

c)

Lớp Sinh viên kế thừa lớp Thí sinh

d)

Lớp Thí sinh là lớp bao của lớp Sinh viên

47.

Để tính khoảng cách hai điểm trong lớp điểm ta xây dựng phương thức tính khoảng cách hai điểm theo cú pháp sau: float KC2D(Diem D);

Lời gọi đến phương thức để tính khoảng cách hai điểm là:

a)

cout<<D1.KC2D(D2);

b)

cout<<KC2D(D1,D2);

c)

KC2D(D1,D2).in()

d)

Không có phương án đúng.

48.

Vào mỗi kỳ tuyển sinh: Trường HAU in giấy báo nhập học, Trường HUST và Trường VNU cũng in giấy báo nhập học. Tuy nhiên 3 giấy báo nhập học này lại có thể có cấu trúc, nội dung và hình thức khác nhau. Ví dụ này chứng tỏ

tính:

a)

Đóng gói

b)

Ảo của phương thức

c)

Trừu tượng

d)

Đa hình

49.

Chồng hàm là:

a)

Khả năng các hàm có thể trùng tên nhau nhưng khác nhau về: kiểu dữ liệu trả về hoặc kiểu dữ liệu

của tham số hoặc số lượng tham số truyền vào. Chỉ có thể chồng hàm thành viên của lớp

b)

Khả năng các hàm có thể trùng tên nhau, trùng cả về: kiểu dữ liệu trả về, kiểu dữ liệu của tham số,

số lượng tham số truyền vào

c)

Khả năng các hàm có thể trùng tên nhau nhưng khác nhau về: kiểu dữ liệu trả về hoặc kiểu dữ liệu

của tham số hoặc số lượng tham số truyền vào

d)

Tất cả các phương án trên đều đúng

50.

Xây dựng lớp Hinh_hoc là lớp cơ sở cho các lớp Hinh_vuong, Hinh_tron, Hinh_cn,

Hinh_tamgiac. Nhận thấy các lớp này đều có phương thức tính Dien_tich. Tuy nhiên cách tính diện tích của các phương thức Dien_tich ứng với các đối tượng của các lớp dẫn xuất là khác nhau. Điều này thể hiện tính:

a)

Trừu tượng

b)

Đóng gói

c)

Đa hình

d)

Ảo của phương thức