10 Câu 5: Một trong các tính chất của phương pháp lập trình hướng đối tượng: A.. Hàm constructor được gọi khi có lệnh tạo ra một đối tượng thuộc lớp B.. 18 Câu 13: Trong các lệnh khai
Trang 1Số tiết lý thuyết: 45 tiết
Số tiết thực hành: 30 tiết
1
Trang 22
Ôn tập:
Trang 44
Trang 55
Trang 88
Câu 3: Constructor của lớp sau thuộc loại constructor nào:
A Constructor ảo (virtual constructor)
B Constructor sao chép (copy constructor)
Trang 1010
Câu 5: Một trong các tính chất của phương pháp lập trình
hướng đối tượng:
A Tính chất public của lớp
B Tính độc lập (independent) của lớp
C Tính trừu tượng (abstract) của lớp
D Tính kế thừa (inherit) của lớp
Trang 1111
Câu 6: Phát biểu nào sau đây là sai:
A Hàm constructor được gọi khi có lệnh tạo ra một đối tượng thuộc lớp
B Hàm constructor có thể là một hàm ảo
C Một lớp có thể có nhiều hàm constructor
D Hàm constructor có tên hàm trùng với tên lớp
Trang 1515
Câu 10: Cho biết kết quả của đoạn chương trình sau:
void cap_phat_bo_nho(int *a){
Trang 1616
Câu 11: class A là bạn (friend class) của class B, class B là
bạn của class C
A class C có thể truy xuất các thành viên private của class A
B class B có thể truy xuất các thành viên private của class C
C class B có thể truy xuất các thành viên private của class A
D class A có thể truy xuất các thành viên private của class C
Trang 1818
Câu 13: Trong các lệnh khai báo đối tượng sau đây, lệnh
nào sẽ gọi constructor sao chép:
Trang 19void Func(const UIT& x){
UIT *a1 = new UIT(5);
Trang 21A(int x1, int y1) { x = x1; y=y1; }
void In() { cout<<x<<", "<<y; }
B Màn hình xuất ra: 10, 10
C Màn hình xuất ra: 20, 10
D Màn hình xuất ra: 20, 20
Trang 2323
Câu 18: Trong các khai báo hàm sau đây, hàm nào là khởi tạo
sao chép (copy constructor) của lớp Phanso:
A Phanso()
B Phanso(int ts, int ms)
C Phanso(const Phanso& x )
D Phanso(int ts)
Trang 24B Màn hình xuất ra: 10, 10
C Màn hình xuất ra: 20, 10
D Màn hình xuất ra: 20, 20
Trang 2525
Câu 20: Phát biểu nào sau đây là đúng:
A Trong hàm constructor ta có thể dùng lệnh return để trả về một giá trị cho hàm
B Mỗi lớp chỉ có duy nhất một hàm destructor
C Hàm destructor không thể là một hàm ảo
D Tất cả đều sai
Trang 2727
Câu 22: Cho Phát biểu nào sau đây là ĐÚNG trong đa
năng hoá toán tử (operator overloading)
A Có thể thay đổi kết quả thực hiện của các toán tử trên các kiểu dữ liệu cơ sở
(built-in)
B Có thể định nghĩa thêm toán tử mới ngoài những toán tử đã có trong C++
C Có thể thay đổi số lượng tham số (số ngôi) của các toán tử
D Không thể thay đổi độ ưu tiên của các toán tử
Trang 28}
};
A Chương trình báo lỗi
B Kết quả in ra: ABC
C Kết quả in ra: ABB
D Kết quả in ra: BBC
void main() {
Trang 2929
Câu 24: Toán tử nào có thể được viết lại (overloaded trong
C++ A = (toán tử gán)
B ?: (toán tử điều kiện)
C sizeof (toán tử xác định kích thước dữ liệu)
D :: (toán tử phạm vi)
Trang 3030
Câu 25: Để đa năng hoá toán tử >> dùng để nhập các thông tin của đối tượng thuộc class Data (ví dụ như: cin>>dataToPrint) Dòng đầu tiên trong hàm cài đặt toán tử là:
A ostream operator>>(ostream &input,const Data &dataToPrint)
B ostream operator>>(istream &input,const Data &dataToPrint)
C istream &operator>>(istream &input, Data dataToPrint)
D istream &operator>>(istream &input, Data &dataToPrint)
Trang 3131
Câu 26: Xét đoạn chương trình khai báo class Data như
sau: class Data{
private: int a;
public:
Data operator (int);
void Giam(){ a=a-1;}
Phần cài đặt toán tử nào sau đây là đúng
B Data Data::operator – (int){
Trang 3434
Câu 29: Lớp D là lớp kế thừa public từ lớp B Hàm F là
hàm friend của lớp D Khi đó:
A Hàm F cũng là hàm bạn của lớp B
B Hàm F có thể truy xuất các thành viên có giới hạn private của lớp B
C Hàm F có thể truy xuất các thành viên có giới hạn private của lớp B và D
D Hàm F có thể truy xuất các thành viên có giới hạn private của lớp D
Trang 35C Chương trình báo lỗi
D Màn hình xuất hiện: A=5
Trang 3636
Câu 31: Sự khác nhau giữa hàm ảo (virtual) và hàm thuần
ảo (pure virtual):
A Hàm thuần ảo không có phần cài đặt
B Hàm thuần ảo phải có khai báo từ khoá pure virutal
C Hàm ảo và hàm thuần ảo là giống nhau
D Một lớp hoặc chỉ có hàm thuần ảo hoặc chỉ có hàm ảo
Trang 3737
Câu 32: Phát biểu nào sau đây là SAI:
A Lớp dẫn xuất có thể khởi tạo giá trị khác cho các thuộc tính có giới hạn public của
lớp cơ sở
B Destructor của lớp cơ sở được gọi sau destructor của lớp dẫn xuất
C Nếu một lớp dẫn xuất không có cài đặt hàm destructor của lớp cơ sở cũng sẽ
không được gọi khi giải phóng đối tượng thuộc lớp dẫn xuất
D Constructor của lớp cơ sở được gọi trước constructor của lớp dẫn xuất
Trang 38A Chương trình chạy và hiển thị ký tự C trên màn hình
B Chương trình chạy và không hiển thị kết quả gì
C Chương trình báo lỗi do khai báo biến con trỏ pb thuộc kiểu lớp trừu tượng
D Chương trình báo lỗi do khai báo biến c thuộc kiểu lớp trừu tượng
Trang 3939
Câu 34: Phát biểu nào sau đây là SAI:
A Hàm ảo của lớp phải được cài đặt trong lớp đó
B Hàm ảo trong lớp cơ sở có thể được viết lại trong lớp dẫn xuất
C Hàm ảo khác với hàm thuần ảo
D Hàm ảo của một lớp có thể là hàm friend của lớp đó
Trang 40class Derive: Base {
Derive(){ cout<<"Derive class " <<endl;}
A Base class Derive class
B Derive class Base class
C Base class Base class Derive class
D Base class Derive class Base class
Trang 4141