Tải bản đầy đủ (.pdf) (41 trang)

Bài giảng ôn tập lập trình hướng đối tượng GV dương khai phong

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.16 MB, 41 trang )

ĐH CÔNG NGHỆ THÔNG TIN

/>
Số tiết lý thuyết: 45 tiết
Số tiết thực hành: 30 tiết

1


/>
 Ôn tập:
 Chương

1: Tổng quan về OOP
 Chương 2: Lớp & đối tượng
 Chương 3: Hàm và hàm đa năng trong OOP
 Chương 4: Đa năng hóa tốn tử
 Chương 5: Sự kế thừa và tính đa hình

2


/>
 Hình thức thi:
 Trắc

nghiệm: 50 câu
 Thời gian: 60 phút
 Không tham khảo tài liệu

3




ĐH CÔNG NGHỆ THÔNG TIN

/>
4


ĐH CÔNG NGHỆ THÔNG TIN

/>
5


 Bài tập trắc nghiệm

/>
Câu 1: Cho biết kết quả của đoạn chương trình sau:
class Phanso{
private: int tuso,mauso;
public:
Phanso(int t=0,int m=1){
tuso=t;
mauso=m;
cout<< " ("<}
void In(){
cout<< " ("<}
};


A.
B.
C.
D.

void main(){
Phanso x(1,0);
x.In();
}

Kết quả in ra là (1/0)
Chương trình bị lỗi khi biên dịch
Kết quả in ra là (1/1)
Kết quả in ra là (1/0)(1/0)

6


 Bài tập trắc nghiệm

/>
Câu 2: Giới hạn truy xuất nào chỉ có trong các lớp của C++:
A.
B.
C.
D.

protected intenal
private

virtual
friend

7


 Bài tập trắc nghiệm

/>
Câu 3: Constructor của lớp sau thuộc loại constructor nào:
class Phanso{
private: int tuso,mauso;
public:
Phanso(int tu=0,int mau=1);
};
A.
B.
C.
D.

Constructor ảo (virtual constructor)
Constructor sao chép (copy constructor)
Khơng có hàm nào cả
Constructor mặc định(default constructor)

8


 Bài tập trắc nghiệm


/>
Câu 4: Cho biết kết quả của đoạn chương trình sau:
class some{
public:
~some(){

cout<<"ABC"<}
};
void main(){
some s;
s.~some();
}

A.
B.
C.
D.

Chương trình báo lỗi
ABCABC
Chương trình thực thi mà khơng in ra gì cả
ABC

9


 Bài tập trắc nghiệm

/>

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

Tính chất public của lớp
Tính độc lập (independent) của lớp
Tính trừu tượng (abstract) của lớp
Tính kế thừa (inherit) của lớp

10


 Bài tập trắc nghiệm

/>
Câu 6: Phát biểu nào sau đây là sai:
A.
B.
C.
D.

Hàm constructor được gọi khi có lệnh tạo ra một đối tượng thuộc lớp
Hàm constructor có thể là một hàm ảo
Một lớp có thể có nhiều hàm constructor
Hàm constructor có tên hàm trùng với tên lớp

11



 Bài tập trắc nghiệm

/>
Câu 7: Khai báo nào sau đây là khai báo hàm destructor
của lớp "UIT":
A.
B.
C.
D.

void ~UIT();
~UIT() const;
virtual ~UIT();
~UIT;

12


 Bài tập trắc nghiệm

/>
Câu 8: Hàm mà bất kỳ lớp nào cũng có:
A.
B.
C.
D.

Constructor

Hàm ảo virtual
Khơng có hàm nào cả
Hàm friend

13


 Bài tập trắc nghiệm

/>
Câu 9: Cho biết kết quả của đoạn chương trình sau:
int main(){
int x=5;
int &n=x;
n=9;
cout<};
A.
B.
C.
D.

Chương trình khơng in ra gì hết
9
5
Chương trình báo lỗi

14



 Bài tập trắc nghiệm

/>
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){
a = new int[5];
for (int i=0;i<5;i++)
a[i] = i+1;
};
int main(){
int n=5;
int *a=&n;
cap_phat_bo_nho(a);
cout<}
A.
B.
C.
D.

5
Chương trình báo lỗi khi biên dịch
1
Chương trình in ra địa chỉ của biến n
15


 Bài tập trắc nghiệm

/>

Câu 11: class A là bạn (friend class) của class B, class B là
bạn của class C
A.
B.
C.
D.

class C có thể truy xuất các thành viên private của class A
class B có thể truy xuất các thành viên private của class C
class B có thể truy xuất các thành viên private của class A
class A có thể truy xuất các thành viên private của class C

16


 Bài tập trắc nghiệm

/>
Câu 12: Cho đoạn chương trình sau:
1: class A {
2:
private:
3:
int x, y;
4:
public:
5:
A(int x1,int y1) ;
6:
void In();

7: };
8: A::A(int x1, int y1) {
9:
x =x1; y=y1; }
10: void A ::In() {
11:
cout << x <12: void main() {
13:
A a1(1);
14:
A a2(20, 10);
15:
a1 = a2;
16:
a1.In();
17: }

Ðoạn lệnh bên khi dịch sẽ thơng báo
lỗi tại:
A. Dịng 9 , do sai lỗi cú pháp
B. Dịng 15, do khơng có tốn tử gán
“=” trong định nghĩa lớp
C. Dòng 11, do sai lỗi cú pháp
D. Dịng 13, do khơng có hàm khởi
tạo với tham số tương ứng

17



 Bài tập trắc nghiệm

/>
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:
A. Phanso t,x;
t = x;
B. Phanso x;
Phanso y = x;
C. Phanso x;
D. Phanso y(3,4);

18


 Bài tập trắc nghiệm

/>
Câu 14: Cho biết kết quả của đoạn chương trình sau:
class UIT{
int nabc;
public:
UIT(int x=0){ nabc=x;}
~UIT(){cout<<" "<};
void Func(const UIT& x){
UIT *a1 = new UIT(5);
delete a1;
}
void main(){

UIT abc(9);
Func(abc);
};

A.
B.
C.
D.

Xuất ra màn hình: 5
Xuất ra màn hình: 9
Xuất ra màn hình: 5
Xuất ra màn hình: 9

9
5
5
9

19


 Bài tập trắc nghiệm

/>
Câu 15: Trong các khai báo hàm sau đây, hàm nào là constructor
mặc định (default constructor) của lớp Phanso:
A.
B.
C.

D.

Phanso()
Phanso(int ts, int ms)
Phanso(const Phanso& x )
Phanso(int ts)

20


 Bài tập trắc nghiệm

/>
Câu 16: Cho đoạn chương trình sau:
class A {
private: int x,y;
public:
A(int x1, int y1) { x = x1; y=y1; }
void In() { cout<};
void F() {
A a(10, 10);
a.x += 10;
a.y = a.x;
a.In();
}

Khi gọi hàm F(), kết quả hiển thị trên
màn hình là:
A. Chương trình sẽ báo lỗi do truy

cập đến thành phần private của
lớp
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

21


 Bài tập trắc nghiệm

/>
Câu 17: Cho đoạn chương trình sau:
class A {
private:
int x,y;
public:
A(int x1, int y1) { x = x1; y=y1; }
void In_X() { cout<< " x= " <void In() const { cout<};
void F(const A& b) {
A a(10, 10);
// Lệnh L1
a.In_X();
// Lệnh L2
a.In();
// Lệnh L3
b.In_X();
// Lệnh L4

b.In();
}

Khi gọi hàm F(), lệnh nào sai:
A. Lệnh L1
B. Lệnh L2
C. Lệnh L3
D. Lệnh L4

22


 Bài tập trắc nghiệm

/>
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.
B.
C.
D.

Phanso()
Phanso(int ts, int ms)
Phanso(const Phanso& x )
Phanso(int ts)

23



 Bài tập trắc nghiệm

/>
Câu 19: Cho đoạn chương trình sau:
class A {
public:
int x,y;
public:
A(int x1, int y1) { x = x1; y=y1; }
void In() { cout<};
void F() {
A a(10, 10);
a.x+= 10;
a.y = a.x;
a.In();
}

Khi gọi hàm F(), kết quả hiển thị trên
màn hình là:
A. Chương trình sẽ báo lỗi do truy
cập đến thành phần private của
lớp
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

24



 Bài tập trắc nghiệm

/>
Câu 20: Phát biểu nào sau đây là đúng:
A.
B.
C.
D.

Trong hàm constructor ta có thể dùng lệnh return để trả về một giá trị cho hàm
Mỗi lớp chỉ có duy nhất một hàm destructor
Hàm destructor khơng thể là một hàm ảo
Tất cả đều sai

25


×