225 câu trắc nghiệm Lập trình hướng đối tượng có đáp án - Phần 1
20 câu hỏi
Hãy xem xét đoạn mã sau:
class A
{
int a,b;
public:
float F1,F2;
};
class B:public A
{
}
Hỏi: B sử dụng được các biến thành viên nào của A
a, b, F1, F2
F1, F2
a, b
Không sử dụng được biến thành viên nào
Chọn đáp án B
Hãy xem xét đoạn mã sau:
class A
{
protected;
int a,b;
public:
float F1,F2;
};
class B:public A
{
}
Hỏi: B sử dụng được các biến thành viên nào của A
a, b, F1, F2
F1, F2
a, b
Không sử dụng được biến thành viên nào
Chọn đáp án A
Hãy xem xét đoạn mã sau:
class A
{
int a,b;
float F1,F2;
};
class B:public A
{
}
Hỏi: B sử dụng được các biến thành viên nào của A
a, b, F1, F2
a, b
F1, F2
Chọn đáp án A
Hãy xem xét đoạn mã sau:
class A
{
char x,y
protected:
int a,b;
public:
float F1,F2;
};
class B:public A
{
}"
Hỏi: B sử dụng được các biến thành viên nào của A
a, b, F1, F2
F1, F2, x, y
x, y, a, b
F1, F2
Chọn đáp án A
Hãy xem xét định nghĩa hàm dựng nào sau đây là đúng nhất?
Hàm có trùng tên với tên lớp, được gọi ngay sau khi khai báo đối tượng, không kế thừa
Hàm có trùng tên với tên lớp, được gọi ngay sau khi khai báo đối tượng, có kế thừa
Hàm có trùng tên với tên lớp, được gọi ngay sau khi khai báo đối tượng hoặc con trỏ đối tượng, có kế thừa
Hàm có trùng tên với tên lớp, được gọi ngay sau khi khai báo đối tượng hoặc con trỏ đối tượng, không kế thừa
Chọn đáp án C
Thế nào được gọi là hiện tượng nạp chồng?
Hiện tượng lớp con kế thừa định nghĩa một hàm hoàn toàn giống lớp cha
Hiện tượng lớp con kế thừa định nghĩa một hàm cùng tên nhưng khác kiểu với một hàm ở lớp cha
Hiện tượng lớp con kế thừa định nghĩa một hàm cùng tên, cùng kiểu với một hàm ở lớp cha nhưng khác đối số
Hiện tượng lớp con kế thừa định nghĩa một hàm cùng tên, cùng các đối số nhưng khác kiểu với một hàm ở lớp cha
Chọn đáp án A
Để khai báo mảng số thực động thì dùng đoạn mã nào sau đây:
float *M; int n;cout<<”\n\t Nhập số phần tử mảng “;cin>>n; A M = new float [n];
int n; cout<<”\n\t Nhap số phần tử mảng: “;cin>>n; float M[n];
intn; floatM[n];
float M[int n];
Chọn đáp án A
Hãy xem xét đoạn mã sau có lỗi ở dòng nào:
1. class Lopl
2. {
3. private:
4. int a,b;
5. friend voidNhapQ;
6. };
7. class Lop2
8. {
9. private:
10. float x,y;
11. friend void Nhap( );
12. };
13. void nhap()
14. {
15. Lopl objl; Lop2 obj2;
16. cout«"\n\t Nhap a -'; cin»a;
17. cout«"\n\t Nhap x ="; cin»x;
18. }
Lỗi tại dòng 16, 17
Không lỗi ở dòng nào
Lỗi tại dòng 15
Lỗi tại dòng 13
Chọn đáp án A
Hãy xem xét đoạn mã sau có lỗi ở dòng nào:
1. class Lopl
2. {
3. private:
4. int a,b;
5. friend voidNhap();
6. };
7. class Lop2
8. {
9. private:
10. float x,y;
11. friend void Nhap( );
12. };
13. void nhap()
14. {
15. Lop 1 obj 1; Lop2 obj 2;
16. cout«"\n\t Nhap a ="; cin»objl.a;
17. cout«"\n\t Nhap x cin»obj2.x;
18. }
Không lỗi ở dòng nào
Lỗi tại dòng 15
Lỗi tại dòng 13
Lỗi tại dòng 16, 17
Chọn đáp án A
Có 3 lớp khai báo như sau:
class Lopl
{
private:
int a,b;
public:
float x,y;
friend class Lop2;
};
class Lop2
{
Lopl objA;
};
class Lop3
{
Lopl objB;
,};
Các Đối tượng objA và objB truy cập được các biến nào của lớp Lop1:
objA truy cập được tất cả các biến. objB truy cập được các biến x, y
objA và objB truy cập được tất cả các biến
objA và objB chỉ truy cập dược các biến x,y
objA truy cập được tất cả các biến. objB truy cập
Chọn đáp án A
Giả sử có đoạn mã code được viết như sau:
class Lopl
{
public:
int a,b;
void nhap()
{
cout«"\n\t a = ";cin»a;
cout«"\n\t b =";cin»b;
}
};
class Lop2: public Lopl
{
public:
Lopl *p;
};
Khi khai báo đối tượng objLop2 cho Lop2 thì nó có truy xuất thủ tục nhập của lớp 1 bằng cú pháp nào sau:
objLop2.nhap()
objLop2->nhap()
objLop2.p ->nhap( ) objLop2.nhap()
Tất cả đều sai
Chọn đáp án C
Giả sử có đoạn mã code được viết như sau:
class Lopl
{
public:
int a,b;
void nhap()
{
cout«"\n\t a = ";cin»a;
cout«"\n\t b =";cin»b;
}
};
class Lop2: public Lopl
{
public:
Lopl p;
};
Khi khai báo Đối tượng objLop2 cho Lop2 thì nó có thể truy xuất thủ tục nhập của lớp 1 bằng cú pháp nào sau đây là đúng nhất?
objLop2.nhap{) objLop2.p.nhap()
objLop2.nhap()
objLop2.p ^nhap()
Tất cả đều sai
Chọn đáp án A
Giả sử có đoạn mã code được viết như sau:
class Lopl
{
public:
int a,b;
void nhap()
{
cout«"\n\t a = ";cin»a;
cout«"\n\t b =";cin»b;
}
};
class Lop2: public Lopl
{
};
Khi khai báo Đối tượng objLop2 cho Lop2 thì nó có thể truy xuất thủ tục nhập của lớp 1 bằng cú pháp nào sau đây là đúng nhất?
objLop2.nhap()
objLop2^nhap()
objLop2.p ^nhap() objLop2.nhap()
Tất cả đều sai
Chọn đáp án A
Khai báo một lớp như sau:
class LopA
{
public:
void nhap()
{
cout«"\n\t a = ";cin»a;
cout«"\n\t b =";cm»b;
}
};
Sau khi tạo con trỏ ở lớp *pobj của LopA thì dùng cú pháp nào sau đây để truy xuất thủ tục nhập ()
pobj—>nhap();
*pobj. nhap();
pobj.nhap();
*pobj. nhap();
Chọn đáp án A
Khai báo một lớp như sau:
class LopA
{
public:
int a,b;
void nhap()
{
cout«"\n\t a = ";cin»a;
cout«"\n\t b =";cin»b;
}
Nếu một đối tượng objLopA được tạo ra thì việc gán giá trị 10 vào biến a,b được thực hiện bằng cách nào?
objLopA.a = objLopA.b = 10;
a= 10 b= 10
a = b = 10
objLopA.a.b-10;
Chọn đáp án A
Từ khoá protected trong một lớp có ý nghĩa:
Khai báo các thành viên của lớp chỉ được thừa kế
Khai báo các thành viên được bảo vệ
Khai báo các thành viên của lớp được dùng riêng
Khai báo các thành viên của lớp sẽ được dùng chung và thừa kế
Chọn đáp án A
Giả sử một lớp với các hàm dựng được khai báo như sau:
class Lop
{
private :
int a,b;
public:
lop () // Ham dung 1
{
a = b = 5;
f
lop (int m, int n) // Ham dung 2
{
a ^ m; b ^n;
}
};
Khi tạo một đối tượng bằng cú pháp LopobjLop(4,5) thì hàm dựng nào sẽ đúng?
Hàm dựng 2
Hàm dựng 1
Cả 2 hàm dựng đều Được gọi
Không hàm dựng nào được gọi
Chọn đáp án A
Giả sử một lớp với các hàm dựng được khai báo như sau:
class Lop
{
private :
int a,b;
public:
lop () // Ham dung 1
{
a ^ b ^ 5;
}
lop (int m, int n) // Ham dung 2
{
a = m; b = n;
}
};
Khi tạo một đối tượng bằng cú pháp Lop obj Lop; Thì hàm dựng nào sẽ được gọi
Hàm dựng 1
Hàm dựng 2
Cả 2 hàm dựng đều được gọi
Không hàm dựng nào được gọi
Chọn đáp án A
Giả sử một lớp với các hàm dựng được khai báo như sau:
class Lop
{
private :
int a,b;
public:
lop () // Ham dung 1
{
a = b = 5;
}
lop (int m, int n) // Ham dung 2
{
a ^ m; b =n;
}
};
Khi tạo một đối tượng con trỏ bằng lệnh sau:
Lop *objLop;
objLop = new Lop;
Hàm dựng 1
Hàm dựng 2
Cả 2 hàm dựng đều được gọi
Không hàm dựng nào được gọi
Chọn đáp án A
Giả sử một lớp với các hàm dựng được khai báo như sau:
class Lop
private :
int a,b;
public:
lop ( ) // Ham dung 1
{
a = b = 5;
}
lop (int m, int n) // Ham dung 2
{
a = m; b = n;
}
};
Khi tạo một đối tượng con trỏ bằng lệnh sau:
Lop ^objLop;
objLop = new Lop(3,4);
Thì hàm dựng nào sẽ được gọi
Hàm dựng 2
Hàm dựng 1
Cả 2 hàm dựng đều được gọi
Không hàm dựng nào được gọi
Chọn đáp án A








