wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Ôn Tập Lập Trình Hướng Đối Tượng

Total questions: 100

Worksheet time: 50mins

Name
Class
Date
1.

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

a)

Lập trình hướng đối tượng là 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.

b)

Lập trình hướng đối tượng là phương pháp lập trình cơ bản gần với mã máy.

c)

Lập trình hướng đối tượng là 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.

d)

Lập trình hướng đối tượng là 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 điểm cơ bản của lập trình hướng đối tượng thể hiện ở:

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 kế thừa, tính đa hình, tính đặc biệt hóa.

c)

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

d)

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

3.

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

a)

Object Oriented Programming.

b)

Object Open Programming.

c)

Open Object Programming

d)

Object Oriented Proccessing.

4.

Hãy chọn câu đúng:

a)

Ngôn ngữ lập trình pascal, C là ngôn ngữ lập trình cấu trúc.

b)

Ngôn ngữ lập trình pascal, C, C++ là ngôn ngữ lập trình cấu trúc.

c)

Ngôn ngữ lập trình C, C++ là ngôn ngữ lập trình hướng đối tượng.

d)

Ngôn ngữ lập trình C++, Java là ngôn ngữ lập trình cấu trúc.

5.

Chọn câu sai:

a)

Ngôn ngữ Pascal là ngôn ngữ lập trình hướng đối tượng.

b)

Ngôn ngữ C++, Java là ngôn ngữ lập trình hướng đối tượng.

c)

C, Pascal là ngôn ngữ lập trình cấu trúc.

d)

C++ là ngôn ngữ lập trình cấu trúc.

6.

Tính bao gói là:

a)

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.

b)

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ẽ.

c)

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

d)

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

7.

Tính kế thừa là:

a)

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ở.

b)

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

c)

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

d)

Tất cả đều đúng.

8.

Sự đóng gói là:

a)

Encapsulation

b)

Inheritance.

c)

Polymorphism

d)

Abstraction

9.

Sự trừu tượng là:

a)

Encapsulation

b)

Inheritance.

c)

Polymorphism

d)

Abstraction

10.

Sự thừa kế là:

a)

Encapsulation

b)

Inheritance.

c)

Polymorphism

d)

Abstraction

11.

Tính đa hình là:

a)

Encapsulation

b)

Inheritance.

c)

Polymorphism

d)

Abstraction

12.

Trong kế thừa. Lớp mới có thuật ngữ tiếng Anh là:

a)

Derived Class.

b)

Base Class.

c)

Inheritance Class.

d)

Object Class.

13.

Trong kế thừa. Lớp cha có thuật ngữ tiếng Anh là:

a)

Derived Class.

b)

Base Class.

c)

Inheritance Class.

d)

Object Class.

14.

Tính đa hình là:

a)

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.

b)

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

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 hàm, thủ tục được sử dụng lại.

15.

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

a)

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

b)

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

c)

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

d)

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

16.

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)

Đối tượng.

b)

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

c)

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

d)

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

17.

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

a)

Tất cả đều đúng.

b)

Quả cam.

c)

Xe đạp.

d)

Máy tính.

e)

Đồng hồ.

18.

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

a)

Hàm, thủ tục

b)

Các module

c)

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

d)

Các thông điệp

19.

Trong phương án sau, phương án mô tả tính đa hình là:

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 tròn kế thừa lớp điểm.

c)

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

d)

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

20.

Phương pháp lập trình tuần tự là:

a)

Phương pháp lập trình với cách liệt kê các lệnh kế tiếp.

b)

Phương pháp lập trình với việc cấu trúc hóa dữ liệu và cấu trúc hóa chương trình để tránh các lệnh nhảy.

c)

Phương pháp lập trình được cấu trúc nghiêm ngặt với cấu trúc dạng module.

d)

Phương pháp xây dựng chương trình ứng dụng theo quan điểm dựa trên các cấu trúc dữ liệu trừu tượng, các thể hiện cụ thể của cấu trúc và quan hệ giữa chúng.

21.

Phương pháp lập trình cấu trúc là:

a)

Phương pháp lập trình với cách liệt kê các lệnh kế tiếp.

b)

Phương pháp lập trình với việc cấu trúc hóa dữ liệu và cấu trúc hóa chương trình để tránh các lệnh nhảy.

c)

Phương pháp lập trình được cấu trúc nghiêm ngặt với cấu trúc dạng module.

d)

Phương pháp xây dựng chương trình ứng dụng theo quan điểm dựa trên các cấu trúc dữ liệu trừu tượng, các thể hiện cụ thể của cấu trúc và quan hệ giữa chúng.

22.

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 phải:

a)

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

b)

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

c)

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

d)

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

23.

Phương pháp lập trình module là:

a)

Phương pháp lập trình với cách liệt kê các lệnh kế tiếp.

b)

Phương pháp lập trình với việc cấu trúc hóa dữ liệu và cấu trúc hóa chương trình để tránh các lệnh nhảy.

c)

Phương pháp lập trình được cấu trúc nghiêm ngặt với cấu trúc dạng module.

d)

Phương pháp xây dựng chương trình ứng dụng theo quan điểm dựa trên các cấu trúc dữ liệu trừu tượng, các thể hiện cụ thể của cấu trúc và quan hệ giữa chúng.

24.

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

a)

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

b)

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

c)

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

d)

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

25.

Đối tượng là:

a)

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

b)

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

c)

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

d)

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

26.

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)

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

b)

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

c)

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

d)

Vô số thành phần.

27.

Đoạn chương trình sau khi biên dịch pháp sinh ra lỗi không khai báo biến x tại dòng cin<<x.

class A

{          private:

            int x;

            public:

            void nhap();

};

void  nhap();

{

cout<< \n Nhap x; cin>>x;

}

void main() {}

Cần sửa là:

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)

Chương trình bị lỗi không chạy được.

d)

Tất cả đều đúng.

28.

Câu 28: Chọn câu đúng:

a)

Tại chương trình chính chỉ có thể truy cập đến thành phần public của lớp.

b)

Tại chương trình chính chỉ có thể truy cập đến thành phần private của lớp.

c)

Tại chương trình chính có thể truy cập đến bất kì thành phần nào của lớp.

d)

Tại chương trình chính không thể truy cập đến thành phần nào của lớp.

29.

Câu 29: Cho đoạn chương trình sau:

class A {

 private:

int x;

public:

int y;

};

 void main() {

 A obj1; obj1.x=10;

obj2.y=8;

}

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

a)

Lỗi tại dòng obj1.x=10;

b)

Lỗi tại dòng obj1.y=8;

c)

Lỗi tại dòng A obj1;

d)

Lỗi tại dòng int x;

30.

Câu 30. Cho đoạn chương trình sau:

class A {

private:

int x;

public:

int y;

};

 void main() {

 A obj1;

obj1.x=10;

obj2.y=8;

}

Đoạn chương trình bị lỗi tại obj1.x=10. Nguyên nhân của lỗi này là:

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 quan tên lớp không được gọi thông qua tên đối tượng.

31.

Câu 31: 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)

Object.

b)

Record.

c)

File.

d)

class.

32.

Câu 32: Thành phần private 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.

d)

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

33.

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.

d)

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

34.

Thành phần public 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.

d)

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

35.

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

a)

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.

b)

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

c)

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

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.

36.

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

a)

Vô số tuỳ theo bộ nhớ.

b)

1 lớp duy nhất

c)

10 lớp

d)

3 lớp

37.

Hàm thành viên của lớp khác hàm thông thường là:

a)

Hàm thành viên của lớp phải được khai báo bên trong lớp và được gọi nhờ tên đối tượng hay tên lớp còn hàm thông thường thì không.

b)

Hàm thành viên của lớp và hàm thông thường không có gì khác nhau.

c)

Hàm thành viên của lớp thì phải được khai báo và xây dựng bên trong lớp còn hàm thông thường thì không.

d)

Hàm thành viên của lớp thì phải khai báo bên trong lớp với từ khóa friend và xây dựng bên ngoài lớp.

38.

Thuộc tính của lớp là:

a)

Là dữ liệu trình bày các đặc điểm của một đối tượng.

b)

Liên quan tới những thứ mà đối tượng có thể làm. Một phương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng.

c)

Là những chức năng của đối tượng.

d)

Tất cả đều sai.

39.

Phương thức là:

a)

Là dữ liệu trình bày các đặc điểm của một đối tượng.

b)

Liên quan tới những thứ mà đối tượng có thể làm. Một phương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng.

c)

Là những chức năng của đối tượng.

d)

Tất cả đều đúng.

40.

Cho lớp người hãy xác định đâu là các thuộc tính của lớp người:

a)

Chân, Tay, Mắt, Mũi, Tên, Ngày sinh.

b)

Ăn, Uống, Chân, Tay.

c)

Hát, học, vui, cười.

d)

Tất cả đều sai.

41.

Người ta cần quản lý thông tin sinh viên trên máy tính, Hãy cho biết các thuộc tính của lớp sinh viên là:

a)

Họ và tên, ngày sinh, giới tính, địa chỉ, số cmt, quê quán

b)

Họ và tên, ngày sinh, giới tính, địa chỉ, số cmt, quê quán, nhóm máu, màu mắt, màu da, cân nặng.

c)

Họ và tên, ngày sinh, giới tính, địa chỉ, số cmt, quê quán, lớp học, khóa học, khoa quản lý.

42.

Cho lớp Điểm trong hệ tọa độ xOy. Các phương thức có thể có của lớp Điểm là:

a)

Dịch chuyển, Thiết lập toạ độ.

b)

Tung độ, hoành độ.

c)

Tung độ, hoành độ, cao độ.

d)

Tung độ, cao độ.

43.

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

a)

Tất cả đều đúng.

b)

Nhấn mạnh trên dữ liệu hơn là thủ tục.

c)

Các chương trình được chia thành các đối tượng.

d)

Dữ liệu được che giấu và không thể được truy xuất từ các hàm bên ngoài.

e)

Dữ liệu hay các hàm mới có thể được thêm vào khi cần.

44.

Lời gọi tới hàm thành viên của lớp là:

a)

Tên_đối_tượng.Tên_hàm_thành_viên.

b)

Tên_lớp.Tên_hàm_thành_viên.

c)

Tên_lớp:Tên_hàm_thành_viên.

d)

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

45.

Khi khai báo thành phần thuộc tính và phương thức của lớp, nếu không khai báo từ khóa private, public hay protected thì mặt định sẽ là:

a)

private

b)

public

c)

protected

d)

Chương trình sẽ lỗi và yêu cầu phải khai báo một trong 3 từ khóa.

46.

Đoạn chương trình sau: class A

{

private:

int x;

public:

void nhap();

};

 void main()

{

A obj1;

obj1.nhap();

}

Khi biên dịch báo lỗi do:

a)

Không định nghĩa nội dung của phương thức nhap.

b)

Không có lỗi.

c)

Không đươc phép truy cập đến phương thức nhap.

d)

Không khai báo biến x.

47.

Trong lập trình hướng đối tượng khả năng các hàm có thể trùng tên nhau gọi là:

a)

Không được phép xây dựng các hàm trùng tên nhau trong cùng một chương trình.

b)

Sự chồng hàm.

c)

Sự chồng hàm nhưng chỉ những hàm thành viên của lớp mới được phép trùng nhau.

d)

Sự chồng hàm nhưng chỉ các hàm thông thường mới được phép trùng nhau.

48.

Phân tích mối quan hệ giữa lớp Điểm và lớp Hình tròn ta có thể xác định:

a)

Lớp Hình tròn kế thừa lớp Điểm.

b)

Lớp Điểm kế thừa lớp Hình tròn.

c)

Không có quan hệ gì.

d)

Lớp Hình tròn dẫn xuất ra lớp Điểm.

49.

Hàm tạo trong ngôn ngữ C++:

a)

Có tên trùng với tên lớp.

b)

Có đối hoặc không có đối

c)

Tự động được gọi tới khi khai báo đối tượng của lớp.

d)

Xây dựng bên trong hoặc bên ngoài lớp

e)

Tất cả đều đúng

50.

Hàm huỷ trong ngôn ngữ C++ có cú pháp:

a)

~Tên_lớp{ //nội dung}.

b)

Destructor Tên_hàm {//nôi dung}

c)

Tên_lớp{//nội dung}

d)

Done {//nội dung}

51.

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

class A{

private:

int x,y;

public:

A(int x=0,int y=0);

void xuat();

~A();

};

A(int x=0,int y=0); được gọi là:

a)

Hàm tạo

b)

Hàm huỷ

c)

Hàm bạn.

d)

Hàm thông thường.

52.

Câu 52: Cho đoạn chương trình sau :

class A{

            private:

            int x,y;

            public:

            A(int x=0,int y=0);

            void xuat();

            ~A();

};

~A(); được gọi là:

a)

Hàm tạo

b)

Hàm huỷ

c)

Hàm bạn.

d)

Hàm thông thường.

e)

Tất cả đều sai.

53.

Câu 53: Cho đoạn chương trình

class A

{

private:

int x,y;

};

Làm nhiệm vụ:

a)

Khai báo A là một lớp với hai thành phần thuộc tính là x, y kiểu số nguyên.

b)

Khai báo A là một đối tượng với hai thành phần thuộc tính x, y kiểu integer.

c)

Đoạn chương trình trên bị lỗi.

d)

Khai báo lớp A với hai thành phần thuộc tính x,y kiểu số nguyên cho phép truy cập từ bên ngoài lớp.

54.

Câu 54: Cho khai báo sau:

class Diem {

private:

int x,y;

public:

void Nhap();

void Xuat();

};

x,y được gọi là:

a)

Thuộc tính của lớp Diem

b)

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

c)

Các hàm thành viên của lớp Diem

d)

Thành viên tĩnh của lớp Diem.

55.

Câu 55: Cho khai báo sau:

class Diem {

private: int x,y;

public:

void Nhap();

void Xuat();

};

Nhap, Xuat được gọi là:

a)

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

b)

Thuộc tính của lớp Diem.

c)

Các hàm bạn của lớp Diem

d)

Tất cả đều đúng.

56.

Câu 56: Cho đoạn chương trình sau:

class Diem {

float x,y;

public: …

};

class Doanthang{

Diem A,B;

public:

};

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

a)

Lớp bao của lớp Diem.

b)

Lớp cha của lớp Diem.

c)

Lớp con của lớp Diem.

d)

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

57.

Câu 57: Lớp bao là lớp:

a)

Có thành phần thuộc tính là đối tượng của lớp khác.

b)

Kế thừa lớp khác.

c)

Dẫn xuất ra lớp khác.

d)

Lớp bạn của lớp khác.

58.

Câu 58: Hàm tạo là:

a)

Hàm tạo là hàm thành viên của lớp dùng để khởi tạo bộ nhớ và giá trị ban đầu cho các thuộc tính trong lớp.

b)

Hàm tạo là hàm nằm bên ngoài lớp dùng để khởi tạo bộ nhớ cho đối tượng.

c)

Hàm tạo là hàm dùng để khởi tạo bộ nhớ cho đối tượng của lớp.

d)

Hàm tạo dùng để huỷ bộ nhớ cho đối tượng.

59.

Câu 59: Hàm huỷ là:

a)

Hàm huỷ dùng để huỷ (giải phóng) bộ nhớ cho các thành phần thuộc tính bên trong lớp.

b)

. Hàm huỷ là hàm dùng để khởi tạo giá trị ban đầu cho các thành phần thuộc tính bên trong lớp.

c)

Hàm huỷ là hàm dùng để giải phóng toàn bộ các biến của chương trình.

d)

Tất cả đều đúng.

60.

Hàm tạo sao chép là:

a)

Tất cả đều đúng.

b)

Là hàm thành viên của lớp.

c)

Dùng để tạo một đối tượng theo đối tượng đã có.

d)

Nếu không xây dựng hàm tạo sao chép chương trình sẽ tự sinh hàm tạo sao chép.

61.

Cho đoạn chương trình sau: class Sinh_vien {

private:

int Masv;

char Hoten[40];

char Ngaysinh;

int gioitinh;

…;

};

Để 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)

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

d)

Sinh_vien *ds[10];

62.

Trong khai báo lớp Đa thức(DT) dưới đây bằng C++:

class DT {

private: int m;//bac cua da thuc

float *a;//Cac he so cua da thuc

public: };

Bắt buộc phải xây dựng:

a)

Hàm tạo.

b)

Hàm hủy.

c)

Hàm tạo sao chép

d)

Tất cả các hàm trên

63.

Lời gọi hàm tạo:

a)

Gọi như hàm thành viên thông thường (Tên đối tượng.Tên_hàm ) .

b)

Không cần phải gọi tới hàm tạo vì ngay khi khai báo đối tượng sẽ tự gọi tới hàm tạo.

c)

Gọi bằng cách: Tên lớp.Tên hàm tạo().

d)

Tất cả đều sai.

64.

Ta khai báo lớp cơ sở ảo khi nào:

a)

Khi có sự trùng lặp lớp kế thừa trong đa kế thừa và kế thừa nhiều mức.

b)

Khi lớp có phương thức ảo thì bắt buộc phải khai báo là lớp cơ sở ảo.

c)

Khi có sự trùng tên giữa các phương thức của các lớp khác nhau.

d)

Tất cả đều sai.

65.

Một người cần xây dựng lớp Thời gian (Timer) trong máy tính cần hiển thị thông tin như sau: giờ:phút:giây. Vậy các thuộc tính cần xây dựng cho lớp Timer là:

a)

Giờ, Phút, Giây.

b)

Giờ

c)

Phút

d)

Giây

66.

Trong kế thừa, có thể:

a)

Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public và không kế thừa hàm tạo, hàm huỷ.

b)

Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public bao gồm hàm tạo, hàm huỷ.

c)

Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public, private bao gồm hàm tạo, hàm huỷ.

d)

Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public không kế thừa hàm tạo, hàm huỷ.

67.

Các hàm tạo có thể có là:

a)

Hàm tạo không đối; Hàm tạo có đối; Hàm tạo sao chép; Hàm tạo bộ nhớ.

b)

Hàm tạo không đối; Hàm tạo có đối; Hàm tạo sao chép

c)

Hàm tạo không đối; Hàm tạo có đối.

d)

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

68.

Cho khai báo sau:

int trituyetdoi(int a); //tri tuyệt đối số nguyên

long trituyetdoi (long a); //tính trị tuyệt đối số nguyên dài

double trituyetdoi(double a); //tính trị tuyệt đối số thực dài Khai báo trên thể hiện:

a)

Tính chất chồng hàm

b)

Tính chất nạp chồng của dữ liệu

c)

Tính chất đa hình

d)

Tính chất trừu tượng hóa

69.

Lời gọi phương thức ảo là:

a)

Gọi như phương thức thông thường.

b)

Gọi kèm từ khoá virtual

c)

Không thể gọi phương thức ảo.

d)

Phải gọi thông qua con trỏ đối tượng.

70.

Hàm hủy có:

a)

Một loại.

b)

Hai loại.

c)

Ba loại.

d)

Bốn loại.

71.

Hãy chọn phát biểu sai:

a)

Có hai loại hàm huỷ có đối và không đối.

b)

Có duy nhất một loại hàm huỷ.

c)

Có hai loại hàm dựng có đối và không đối.

d)

Hàm huỷ và hàm dựng đều không có tính chất kế thừa.

72.

Trong khai báo dưới: class Diem (1)

{(2)  

private: int x,y;(3)

public: (4)

            void Diem(int x,int y);(5)

  void ~Diem();(6)

};(7)

Sai tại dòng:

a)

Dòng 6 và 5

b)

Dòng 3 và 5

c)

Dòng 2 và 3

73.

Câu 73: Trong khai báo sau:

class   Diem { (1)

            private:

int x,y;(2)

            public:(3)

…..

};(4)

class Hinhtron: public Diem (5)

 {

            private: r:real;(6)

};

Câu lệnh khai báo tại dòng số 5 cho biết:

a)

Khai báo lớp Hinhtron kế thừa public lớp Diem.

b)

Khai báo lớp Diem kế thừa lớp Hinhtron.

c)

Khai báo lớp Hinhtron là bạn lớp Diem.

d)

Khai báo lớp Hinhtron là lớp bao của lớp Diem.

74.

Câu 74: Cho đoạn chương trình sau:

class A {

            private:

            int x,y;

};

Cho lớp B kế thừa lớp A. Để truy cập vào thành phần x,y của lớp A ta chọn kiểu kế thừa:

a)

Không thể chọn loại kết thừa nào vì thành phần x,y thuộc pham vi private không tham gia trong kế thừa.

b)

Chọn loại kế thừa private.

c)

Chọn loại kế thừa protected.

d)

Chọn loại kế thừa public.

75.

Câu 75: Cho đoạn chương trình sau: class A{

private:

int x,y;

void Nhap();

};

Cho lớp B kế thừa public lớp A, để lớp B có thể truy cập đến phương thức Nhap ta phải:

a)

Đưa phương thức Nhap của lớp A vào phạm vi public hoặc protected.

b)

Không cần phải thay đổi gì.

c)

Không thể truy cập được dù có thay đổi gì.

d)

Tất cả đều sai.

76.

Câu 76: Cho đoạn chương trình sau: class A{

private:

int x,y;

protected:

void Nhap();

};

Lớp B kế thừa lớp A, để phương thức Nhap của lớp A trở thành thành phần private của lớp B ta chọn loại kế thừa là:

a)

Private.

b)

Public.

c)

Protected.

d)

Private hoặc Protected.

77.

Câu 77: Cho đoạn chương trình sau: class A {

private:

int x,y;

public:

void Nhap();

};

Lớp B kế thừa lớp A, để phương thức Nhap của lớp A trở thành thành phần public của lớp B ta chọn loại kế thừa là:

a)

Private.

b)

Public.

c)

Protected.

d)

Private hoặc Protected

78.

Các dạng kế thừa là:

a)

Private, Public, Protected

b)

Private, Public

c)

Private, Protected

d)

Protected, Public

79.

Khi nạp chồng các hàm thì điều kiện khác nhau giữa các hàm sẽ là:

a)

Tên hàm phải khác nhau.

b)

Kiểu dữ liệu trả về của hàm (1)

c)

Kiểu dữ liệu của tham số truyền vào của hàm (2)

d)

Số lượng tham số truyền vào các hàm (3)

e)

Hoặc (1) hoặc (2) hoặc (3)

80.

Trong một lớp có thể:

a)

Nhiều hàm dựng (tạo), các hàm dựng khác nhau về tham đối.

b)

Một hàm dựng.

c)

Hai hàm dựng.

d)

Tất cả đều sai.

81.

Trong một lớp có thể:

a)

Duy nhất một hàm hủy.

b)

Chứa tối đa hai hàm hủy.

c)

Có thể chứa được ba hàm hủy.

d)

Có thể chứa vô số hàm hủy tùy theo bộ nhớ.

82.

Tính chất của kế thừa dạng Private là:

a)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần private của lớp con.

b)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần public của lớp con.

c)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần protected của lớp con.

d)

Tất cả đều sai.

83.

Tính chất kế thừa dạng Protected là:

a)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần protected của lớp con.

b)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần public của lớp con.

c)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần private của lớp con.

d)

Tất cả đều sai.

84.

Tính chất kế thừa dạng Public là:

a)

Thành phần protected của lớp cha tương ứng trở thành thành phần protected của lớp con và thành phần public của lớp cha tương ứng trở thành public của lớp con.

b)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần public của lớp con.

c)

Thành phần protected, public của lớp cha tương ứng trở thành thành phần private của lớp con.

d)

Tất cả đều sai.

85.

Trong kế thừa có thể kế thừa tối đa:

a)

Vố số mức tùy theo bộ nhớ.

b)

Một mức.

c)

Hai mức.

d)

Ba mức.

86.

Trong đa kế thừa có thể kế thừa tối đa:

a)

Vố số lớp tùy theo bộ nhớ.

b)

Hai lớp.

c)

Một lớp.

d)

Ba lớp.

87.

Cho lớp A và lớp B, lớp A kế thừa lớp B trong hai lớp đều có phương thức Xuat. Nếu khai báo đối tượng obj thuộc lớp A khi gọi đến phương thức Xuat(obj.Xuat( )) là gọi đến phương thức của lớp nào.

a)

Lớp A.

b)

Lớp B.

c)

Lỗi không thể xác định được.

d)

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

88.

Cho lớp A, B, C trong đó lớp C kế thừa lớp A,B. Trong lớp A, B đều có phương thức Xuat, khi khai báo đối tượng obj thuộc lớp C thì nếu gọi đến phương thức Xuat (obj.Xuat()) thì phương thức Xuat của lớp nào sẽ được gọi?

a)

Lớp A.

b)

Lớp B.

c)

Lỗi không thể xác định được.

d)

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

89.

Trong kế thừa nhiều mức có cho phép:

a)

Cho phép trùng tên cả phương thức lẫn thuộc tính.

b)

Không cho phép trùng tên phương thức và thuộc tính.

c)

Cho phép trùng tên phương thức còn không cho phép trùng tên thuộc tính.

d)

Cho phép trùng tên thuộc tính còn không cho phép trùng tên phương thức.

90.

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

class  A{

public:

void Xuat();

};

class B:public A {

….

public:

void Xuat();

};

void main() {

B O;

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

a)

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

b)

Lỗi.

c)

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

d)

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

91.

Câu 91: Lớp cơ sở trừu tượng là:

a)

Là lớp làm cơ sở cho các lớp khác và không được dẫn xuất từ bất kì lớp nào.

b)

Là lớp cơ sở cho lớp khác.

c)

Là lớp không làm cơ sở cho bất kỳ lớp nào mà chỉ kế thừa các lớp khác.

d)

Là lớp được xây dựng đầu tiên trong chương trình.

92.

Câu 92: Thành viên tĩnh của lớp là:

a)

Là thành viên của lớp được khai báo với từ khóa static ở trước.

b)

Là thành viên dùng chung cho tất cả các đối tượng của lớp, không của riêng đối tượng nào?

c)

Được cấp phát bộ nhớ ngay cả khi lớp chưa có đối tượng cụ thể nào.

d)

Tất cả đều đúng.

93.

Câu 93: Hàm bạn là:

a)

Là hàm bạn của lớp được phép truy cập đến thành phần private của lớp.

b)

Khai báo với từ khóa vritual ở đầu.

c)

Được sử dụng như hàm thành viên của lớp.

d)

Tất cả đều đúng.

94.

Câu 94: Khi xây dựng nạp chồng các hàm thì điều kiện khác nhau giữa các hàm là: kiểu dữ liệu trả về của hàm hoặc kiểu dữ liệu tham số truyền vào của hàm hoặc số lượng tham số truyền vào của hàm là khác nhau. Điều kiện này chỉ áp dụng khi:

a)

Các hàm cùng được xây dựng trong 1 chương trình (1).

b)

Các hàm này cùng được xây dựng trong một lớp (2).

c)

Các hàm này được xây dựng trong các lớp kế thừa.

d)

Các hàm này được xây dựng trong các lớp khác nhau.

e)

(1) hoặc (2)

95.

Câu 95: Khai báo các phương thức trong lớp cơ sở trừu tượng phải:

a)

Là phương thức ảo thuần túy

b)

Với c++ có cú pháp : virtual void[kiểu_dữ_liệu] tên_phương_thức(tham đối)=0;

c)

Các phương thức không được định nghĩa nội dung.

d)

Tất cả đều đúng.

96.

Câu 96: Khai báo phương thức ảo:

a)

Giống khai báo phương thức thường theo sau là từ khoá virtual;

b)

Giống khai báo phương thức thường nhưng đứng đầu là từ khoá virtual;

c)

Giống khai báo phương thức thường nhưng phải được xây dựng bên trong lớp.

d)

Giống khai báo phương thức thường nhưng không cần phải xây dựng nội dung.

97.

Câu 97: Cho biết cách khai báo phương thức ảo trong C++ nào sau đây là đúng:

a)

void[kiểu_dữ_liệu] Tên_phương_thức ([các tham đối]) Virual;

b)

Virual void[kiểu_dữ_liệu] Tên_phương_thức ([các tham đối]);

c)

void[kiểu_dữ_liệu] Virual Tên_phương_thức ([các tham đối]);

d)

void[kiểu_dữ_liệu] Tên_phương_thức (Virual [các tham đối]);

98.

Câu 98: Cho đoạn chương trình sau:

class A {

private:

int x,y;

public:

      void Xuat(); virtual;

};

Hãy nhận định phát biểu đúng:

a)

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

b)

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

c)

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

d)

Xuat là một hàm huỷ.

99.

Một lớp có thể có tối đa:

a)

Vô số phương thức ảo.

b)

Một phương thức ảo.

c)

Hai phương thức ảo.

d)

Không xác định được.

100.

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

class A {

int x,y;

public:

            void Nhap();

            void Xuat();

};

class B:public A{

private: float z;

};

void main()

{

A A1;B B1;

A1=B1;

B1=A1;

getch();

}

Hãy cho biết đoạn chương trình trên lỗi tại đâu?

a)

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

b)

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

c)

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

d)

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