wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Tin học chương 4 C++

Total questions: 50

Worksheet time: 25mins

Name
Class
Date
1.

Inheritance trong C++ dùng để:

a)

A. Tái sử dụng code

b)

B. Tạo biến toàn cục

c)

C. Định nghĩa macro

d)

D. Nạp chồng toán tử

2.

Lớp kế thừa gọi là:

a)

A. Base class

b)

B. Derived class

c)

C. Abstract class

d)

D. Friend class

3.

Lớp cha còn gọi là:

a)

A. Base class

b)

B. Child class

c)

C. Derived class

d)

D. Virtual class

4.

Lợi ích chính của kế thừa là:

a)

A. Tăng tốc độ chương trình

b)

B. Tái sử dụng và mở rộng mã

c)

C. Giảm RAM

d)

D. Tăng coupling

5.

Từ khóa khai báo kế thừa trong C++ là:

a)

A. inherits

b)

B. :

c)

C. ::

d)

D. ->

6.

Trong kế thừa public, thành viên public lớp cha thành:

a)

A. private

b)

B. protected

c)

C. public

d)

D. static

7.

Trong kế thừa protected, thành viên public lớp cha thành:

a)

A. private

b)

B. protected

c)

C. public

d)

D. static

8.

Trong kế thừa private, thành viên public lớp cha thành:

a)

A. private

b)

B. protected

c)

C. public

d)

D. friend

9.

Mặc định trong C++ class kế thừa là:

a)

A. public

b)

B. private

c)

C. protected

d)

D. virtual

10.

Từ khóa nào dùng để chỉ rõ loại kế thừa?

a)

A. public/private/protected

b)

B. virtual/static

c)

C. abstract/final

d)

D. friend

11.

Overriding là gì?

a)

A. Hàm cùng tên, khác tham số

b)

B. Lớp con định nghĩa lại hàm lớp cha

c)

C. Nạp chồng toán tử

d)

D. Nạp chồng constructor

12.

Để override, hàm lớp cha cần:

a)

A. inline

b)

B. virtual

c)

C. static

d)

D. friend

13.

Nếu hàm không virtual, gọi qua con trỏ base sẽ chạy:

a)

A. Hàm lớp cha

b)

B. Hàm lớp con

c)

C. Cả hai

d)

D. Báo lỗi

14.

Từ khóa override trong C++ dùng để:

a)

A. Tạo hàm inline

b)

B. Đảm bảo hàm override đúng

c)

C. Nạp chồng hàm

d)

D. Khai báo constructor

15.

Overriding xảy ra ở:

a)

A. Compile-time

b)

B. Runtime

c)

C. Destructor

d)

D. Abstract

16.

Lớp cơ sở trừu tượng chứa:

a)

A. Pure virtual function

b)

B. Static function

c)

C. Friend function

d)

D. Inline function

17.

Pure virtual function khai báo bằng:

a)

A. = 0

b)

B. == 0

c)

C. inline

d)

D. friend

18.

Có thể tạo object từ abstract class không?

a)

A. Có

b)

B. Không

c)

C. Tùy compiler

d)

D. Chỉ khi static

19.

Khi kế thừa abstract class, lớp con phải:

a)

A. Override tất cả pure virtual function

b)

B. Override một phần

c)

C. Không cần override

d)

D. Gọi constructor

20.

Abstract class thường dùng để:

a)

A. Định nghĩa giao diện chung

b)

B. Nạp chồng toán tử

c)

C. Quản lý bộ nhớ

d)

D. Tăng tốc độ

21.

Đa kế thừa nghĩa là:

a)

A. Một lớp kế thừa nhiều lớp cha

b)

B. Một hàm nhiều tham số

c)

C. Một object nhiều destructor

d)

D. Một biến nhiều giá trị

22.

Vấn đề diamond problem xuất hiện khi:

a)

A. Hai lớp cha cùng kế thừa từ 1 lớp cơ sở

b)

B. Hàm overload trùng tên

c)

C. Destructor không virtual

d)

D. Trùng tên biến

23.

Để xử lý diamond problem, dùng:

a)

A. Virtual inheritance

b)

B. Destructor ảo

c)

C. Aggregation

d)

D. Static method

24.

Trong đa kế thừa, nếu hai lớp cha có hàm trùng tên →

a)

A. Gọi mơ hồ, cần chỉ rõ

b)

B. Compiler chọn lớp cha đầu tiên

c)

C. Compiler chọn lớp cha cuối cùng

d)

D. Báo lỗi runtime

25.

Diamond problem thường liên quan đến:

a)

A. Constructor

b)

B. Virtual inheritance

c)

C. Destructor

d)

D. Static variable

26.

Constructor lớp cha gọi khi nào?

a)

A. Trước constructor lớp con

b)

B. Sau constructor lớp con

c)

C. Không gọi

d)

D. Tuỳ compiler

27.

Destructor lớp cha gọi khi nào?

a)

A. Trước destructor lớp con

b)

B. Sau destructor lớp con

c)

C. Không gọi

d)

D. Ngẫu nhiên

28.

Nếu lớp con không có constructor thì:

a)

A. Compiler gọi constructor mặc định của lớp cha

b)

B. Compiler báo lỗi

c)

C. Không khởi tạo được

d)

D. Tự tạo destructor

29.

Để gọi constructor lớp cha từ lớp con:

a)

A. this->Base()

b)

B. Danh sách khởi tạo

c)

C. Gọi trực tiếp trong body

d)

D. Không thể gọi

30.

Destructor lớp cha nên là:

a)

A. virtual

b)

B. static

c)

C. inline

d)

D. friend

31.

Quan hệ “is-a” thể hiện bằng:

a)

A. Inheritance

b)

B. Aggregation

c)

C. Dependency

d)

D. Composition

32.

Quan hệ “has-a” thể hiện bằng:

a)

A. Aggregation

b)

B. Inheritance

c)

C. Overloading

d)

D. Dependency

33.

Kế thừa private có duy trì is-a không?

a)

A. Có

b)

B. Không

c)

C. Tùy compiler

d)

D. Tùy constructor

34.

Một abstract class có thể có hàm thường không?

a)

A. Có

b)

B. Không

c)

C. Chỉ inline

d)

D. Chỉ static

35.

Kế thừa giúp:

a)

A. Giảm code trùng lặp

b)

B. Tăng trùng lặp

c)

C. Giảm đóng gói

d)

D. Giảm đa hình

36.

Từ khóa virtual dùng để:

a)

A. Cho phép override

b)

B. Tăng tốc độ

c)

C. Tạo destructor

d)

D. Tạo constructor

37.

Đa hình động đạt được nhờ:

a)

A. Virtual function

b)

B. Inline function

c)

C. Static method

d)

D. Macro

38.

Nếu hàm ảo không override →

a)

A. Gọi hàm lớp cha

b)

B. Báo lỗi

c)

C. Compiler tự thêm

d)

D. Runtime error

39.

Virtual destructor cần khi:

a)

A. Dùng kế thừa

b)

B. Không cấp phát bộ nhớ

c)

C. Dùng struct

d)

D. Không override

40.

Vtable lưu gì?

a)

A. Con trỏ đến hàm ảo

b)

B. Con trỏ đến constructor

c)

C. Con trỏ đến friend

d)

D. Con trỏ đến static

41.

Quên từ khóa virtual → mất:

a)

A. Đa hình động

b)

B. Đa hình tĩnh

c)

C. Kế thừa

d)

D. Đóng gói

42.

Không khai báo destructor ảo → gây:

a)

A. Memory leak

b)

B. Compile error

c)

C. Không ảnh hưởng

d)

D. Runtime error

43.

Gán object derived cho biến base →

a)

A. Object slicing

b)

B. Diamond problem

c)

C. Memory leak

d)

D. Compile crash

44.

Overloading bị nhầm với overriding →

a)

A. Overloading = compile-time, Overriding = runtime

b)

B. Ngược lại

c)

C. Cả hai compile-time

d)

D. Cả hai runtime

45.

Quên override pure virtual function →

a)

A. Lớp con trở thành abstract

b)

B. Lớp con compile bình thường

c)

C. Compiler tự thêm code

d)

D. Runtime error

46.

Ưu điểm chính của inheritance:

a)

A. Tái sử dụng, mở rộng, hỗ trợ đa hình

b)

B. Giảm tính bảo mật

c)

C. Giảm cohesion

d)

D. Không có lợi ích

47.

Nhược điểm của đa kế thừa:

a)

A. Diamond problem

b)

B. Không có đa hình

c)

C. Không kế thừa constructor

d)

D. Không override

48.

Override khác overload ở:

a)

A. Override = runtime, Overload = compile-time

b)

B. Cả hai compile-time

c)

C. Cả hai runtime

d)

D. Giống nhau

49.

Inheritance kết hợp polymorphism giúp:

a)

A. Giảm code tái sử dụng

b)

B. Cho phép dùng con trỏ base gọi hàm derived

c)

C. Tăng compile time

d)

D. Giảm encapsulation

50.

Tính năng nào KHÔNG liên quan đến inheritance?

a)

A. Đa hình

b)

B. Kế thừa

c)

C. Nạp chồng toán tử

d)

D. Trừu tượng