Đ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