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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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];

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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

Xem giải thích câu trả lời
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();

Xem giải thích câu trả lời
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;

Xem giải thích câu trả lời
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ế

Xem giải thích câu trả lời
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

Xem giải thích câu trả lờ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

Xem giải thích câu trả lờ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

Xem giải thích câu trả lờ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

Xem giải thích câu trả lời
© All rights reserved VietJack