vietjack.com

225 câu trắc nghiệm Lập trình hướng đối tượng có đáp án - Phần 1
Quiz

225 câu trắc nghiệm Lập trình hướng đối tượng có đáp án - Phần 1

A
Admin
20 câu hỏiIT TestTrắc nghiệm tổng hợp
20 CÂU HỎI
1. Nhiều lựa chọn

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. a, b, F1, F2

B. F1, F2

C. a, b

D. Không sử dụng được biến thành viên nào

2. Nhiều lựa chọn

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. a, b, F1, F2

B. F1, F2

C. a, b

D. Không sử dụng được biến thành viên nào

3. Nhiều lựa chọn

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. a, b, F1, F2

B. a, b

C. F1, F2

4. Nhiều lựa chọn

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. a, b, F1, F2

B. F1, F2, x, y

C. x, y, a, b

D. F1, F2

5. Nhiều lựa chọn

Hãy xem xét định nghĩa hàm dựng nào sau đây là đúng nhất?

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, không kế thừa

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

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

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

6. Nhiều lựa chọn

Thế nào được gọi là hiện tượng nạp chồng?

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

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

C. 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ố

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

7. Nhiều lựa chọn

Để khai báo mảng số thực động thì dùng đoạn mã nào sau đây:

A. float *M; int n;cout<<”\n\t Nhập số phần tử mảng “;cin>>n; A M = new float [n];

B. int n; cout<<”\n\t Nhap số phần tử mảng: “;cin>>n; float M[n];

C. intn; floatM[n];

D. float M[int n];

8. Nhiều lựa chọn

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

A. Lỗi tại dòng 16, 17

B. Không lỗi ở dòng nào

C. Lỗi tại dòng 15

D. Lỗi tại dòng 13

9. Nhiều lựa chọn

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

A. Không lỗi ở dòng nào

B. Lỗi tại dòng 15

C. Lỗi tại dòng 13

D. Lỗi tại dòng 16, 17

10. Nhiều lựa chọn

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:

A. objA truy cập được tất cả các biến. objB truy cập được các biến x, y

B. objA và objB truy cập được tất cả các biến

C. objA và objB chỉ truy cập dược các biến x,y

D. objA truy cập được tất cả các biến. objB truy cập

11. Nhiều lựa chọn

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:

A. objLop2.nhap()

B. objLop2->nhap()

C. objLop2.p ->nhap( ) objLop2.nhap()

D. Tất cả đều sai

12. Nhiều lựa chọn

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?

A. objLop2.nhap{) objLop2.p.nhap()

B. objLop2.nhap()

C. objLop2.p ^nhap()

D. Tất cả đều sai

13. Nhiều lựa chọn

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?

A. objLop2.nhap()

B. objLop2^nhap()

C. objLop2.p ^nhap() objLop2.nhap()

D. Tất cả đều sai

14. Nhiều lựa chọn

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 ()

A. pobj—>nhap();

B. *pobj. nhap();

C. pobj.nhap();

D. *pobj. nhap();

15. Nhiều lựa chọn

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?

A. objLopA.a = objLopA.b = 10;

B. a= 10 b= 10

C. a = b = 10

D. objLopA.a.b-10;

16. Nhiều lựa chọn

Từ khoá protected trong một lớp có ý nghĩa:

A. Khai báo các thành viên của lớp chỉ được thừa kế

B. Khai báo các thành viên được bảo vệ

C. Khai báo các thành viên của lớp được dùng riêng

D. Khai báo các thành viên của lớp sẽ được dùng chung và thừa kế

17. Nhiều lựa chọn

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?

A. Hàm dựng 2

B. Hàm dựng 1

C. Cả 2 hàm dựng đều Được gọi

D. Không hàm dựng nào được gọi

18. Nhiều lựa chọn

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

A. Hàm dựng 1

B. Hàm dựng 2

C. Cả 2 hàm dựng đều được gọi

D. Không hàm dựng nào được gọi

19. Nhiều lựa chọn

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;

A. Hàm dựng 1

B. Hàm dựng 2

C. Cả 2 hàm dựng đều được gọi

D. Không hàm dựng nào được gọi

20. Nhiều lựa chọn

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

A. Hàm dựng 2

B. Hàm dựng 1

C. Cả 2 hàm dựng đều được gọi

D. Không hàm dựng nào được gọi

© All rights reserved VietJack