Tải bản đầy đủ (.docx) (32 trang)

Đề trắc nghiệm Lập trình hướng đối tượng có đáp án

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 (185 KB, 32 trang )

TRẮC NGHIỆM ÔN TẬP
1. Những khái niệm cơ bản nào được sử dụng trong lập trình hướng đối tượng?

а) đóng gói
c) đa hình
b) kế thừa
d) tất cả những khái niệm trên
2. Tính đa hình là:
а) bố trí việc khai báo lớp và định nghĩa hàm thành viên (phương thức) của lớp trong 1 tệp
b) Kết hợp và định vị dữ liệu và các hàm sử lý dữ liệu đó trong phạm vi của đối tượng, giống
như 1 thể thống nhất
c) tính chất của các lớp sinh ra các lớp con và kế thừa các đặc tính(dữ liệu và phương thức)
từ các lớp phụ mẫu
d) tính chất của các đối tượng gần nhau thi hành các phương thức cùng kiểu (thậm chí cùng
tên) theo các cách khác nhau mà không bị nhầm lẫn
3. Những từ khóa nào định nghĩa lớp trong C++ ?
а) chỉ có class
b) class, struct, union
c) chỉ có struct
d) class, struct
4. Trong khai báo có thể chỉ ra :
а) chỉ các dữ liệu thành viên (thuộc lớp tính) của lớp
b) chỉ các hàm thành viên (phương thức)của lớp
c) các thuộc tính và phương thức của lớp
d) Tất cả a, b, c đều đúng
5. Hàm thành viên (phương thức) của lớp có thể được định nghĩa :

а) Trong khai báo của lớp
b) Ngoài khai báo của lớp
c) Có thể định nghĩa trong hoặc ngoài khai báo của lớp
d) tất cả a, b, c đều đúng


6. Các hàm hủy của lớp được dùng để :

а) cài đặt các đối tượng ban đầu của lớp
b) thực hiện các thao tác cần thiết trước khi hủy đối tượng
c) biển đổi các đối tượng của lớp dẫn suất thành đối tượng của lớp cơ sở
d) biến đổi các đối tượng của lớp cơ sở thành đối tượng của lớp dẫn suất
7. Các thuộc tính của lớp có thể được bố trí trong phần nào trong khai báo của lớp :
а) Chỉ trong phần riêng tư (private) của lớp
b) Chỉ trong phần bảo tồn (protected) của lớp
c) Chỉ trong phần công cộng (public) của lớp
d) Trong phần bất kỳ của lớp (private, protected và public)
8. Các thành viên của lớp với từ khóa private thì được truy cập bởi :
а) Chỉ các phương thức của lớp cho trước
b) Các phương thức của lớp cho trước và các lớp dẫn suất
c) Các phương thức của lớp cho trước và các hàm bạn
d) Các phương thức của lớp cho trước, các lớp dẫn suất và các hàm bạn
9. Các thành viên của lớp với từ khóa protected thì được truy cập bởi:
а) Chỉ các phương thức của lớp cho trước
b) Các phương thức của lớp cho trước và các lớp dẫn suất
c) Các phương thức của lớp cho trước và các hàm bạn
d) Các phương thức của lớp cho trước, các lớp dẫn xuất và các hàm bạn
10. Có những khả năng nào để truy cập tới các thành viên không tĩnh (nonstatic) của lớp ?
а) chỉ thông qua con trỏ lên đối tượng của lớp
1


b) chỉ thông qua tên của đối tượng
c) chỉ thông qua con trỏ lên đối tượng của lớp hoặc qua tên của đối tượng
d) chỉ thông qua tên của lớp
11. Không thể thừa kế :

а) các hàm tạo
b) quan hệ bạn bè
c) các hàm huỷ
d) tất cả những thứ trên đều không thể
12. Trong lớp cơ sở thiết lập quy chế truy cập public. Cần dùng từ khai báo truy cập nào
để nhận được quy chế truy cập protected trong lớp dẫn suất
а) Private
b) Public
c) Protected
13. Quyền truy cập trong lớp dẫn suất với khai báo private được xác định thế nào?
а) giữ lại tất cả các quyền truy cập có trong lớp cơ sở
b) protected -> private, public -> private
c) protected -> protected, public -> protected
14. Phương thức của lớp phát sinh có thể gọi hàm trùng tên của lớp cơ sở không ?
а) Không
b) Có, chỉ sử dụng tên phương thức của lớp cơ sở
c) Có, sử dụng tên của lớp cơ sở và thao tác cho phép thấy được
d) Có, nếu cả 2 phương thức đều không có đối số
15. Trình biên dịch báo lỗi với đoạn mã sau :
class A
{
public:
int value;
};
class B:public A ... ;
class C:public A ... ;
class D:public B, public C
{
public:
int Value() {return value;}

};
" Field 'value' is ambiguous in function D::Value()"
(trường 'value' có 2 nghĩa trong hàm D::Value()). Đáp án sửa lỗi nào sau đây sử dụng lớp cơ
sở ảo ?
a) int Value() {return C::value;}
b) virtual int Value()$
c)
class B:public virtual A ... ;
class C:public virtual A ... ;
class D:public B, public C
{
public:
int Value() {return value;}
};
d) tất cả các đáp án trên;

2


16. Những biến đổi nào của các kiểu được thực hiện trong đoạn mã sau là có thể

class A ...;
class B: public A ... ;
void main()
// ...
A a; B b;
A* ap = new A;
B* bp = new B;
а) a = b;
b) ap = bp;

c) b = a;
d) bp = ap;
17. Đáp án nào dưới đây không định nghĩa tính đa hình trong C++?
а) Chồng hàm
b) Sử dụng các phương thức ảo
c) Sử dụng con trỏ
d) Sự kế thừa
18. Tính đóng gói là :
а) Bố trí việc khai báo lớp trong 1 tệp riêng
b) Kết hợp và định vị dữ liệu và các hàm xử lý dữ liệu đó trong phạm vi của đối tượng,
giống như 1 thể thống nhất
c) Tính chất của các lớp sinh ra các lớp con và kế thừa từ các đặc tính (dữ liệu và phương
thức) từ các lớp phụ mẫu
d) Tính chất của các đối tượng gần nhau thi hành các phương thức cùng kiểu (thậm chí cùng
tên) theo các cách khác nhau mà không bị nhầm lẫn
19. Các hàm tạo của lớp được sử dụng để
а) Cài đặt các đối tượng ban đầu của lớp
b) Thực hiện các thao tác cần thiết trước khi huỷ đối tượng
c) Biến đổi các đối tượng của lớp dẫn suất thành đối tượng của lớp cơ sở
d) Biến đổi các đối tượng của lớp cơ sở thành đối tượng của lớp dẫn suất
20. Tên của hàm tạo của lớp
а) Có thể là tên cho phép bất kỳ
b) Cần trùng với tên của lớp, mà nó định nghĩa
c) Cần trùng với tên của lớp, trước hàm tạo thêm ký tự (~)
d) Tất cả đều đúng
21. Khi khai báo lớp trong C++ thì việc truy cập tới các thành phần của lớp theo mặc định
là:
а) Private
b) Protected
c) Public

d) không có mặc định
22. Các thành phần của lớp được khai báo public thì được truy cập bởi
а) Chỉ có các phương thức của lớp cho trước
b) Các phương thức của lớp cho trước và lớp dẫn suất
c) Các phương thức của lớp cho trước và các hàm bạn
d) Hàm bất kỳ
23. Hàm tạo mặc định là gì ?
а) Chỉ là hàm tạo không có đối số
b) Chỉ là hàm tạo, tất cả các đối số của nó được cho trước theo mặc định
c) Chỉ là hàm tạo, có dù chỉ 1 đối số được cho trước theo mặc định
d) Hàm tạo không có đối số hoặc hàm tạo mà tất cả các đối số của nó được cho trước theo
mặc định

3


24. Chọn phát biểu sai về các đặc điểm của constructor

a) Constructor có tên trùng với tên lớp
b) Có thể có nhiều constructor
c) Constructor không có giá trị trả về
d) Constructor không có tham số
25. chọn phát biểu sai về các đặc điểm của destructor

a) Destructor có tên trùng với tên lớp
b) Destructor không có giá trị trả về
c) Destructor không có tham số
d) Một lớp chỉ có một destructor
26. Cho a và b là các đối tượng thuộc lớp test. Để có thể sử dụng biểu thức a=7+b. Trong


lớp test phải cài đặt toán tử
a) test::operator+(int , test)
b) test::operator+(test, int)
c) test::operator+(test,test)
d) operator+(int, test) là hàm tự do và là bạn của lớp test
27. Toán tử không thể overload được là

a) &&

b) ||

c)[]

d).*

28. Tính đa hình là

a) Hiện tượng các đối tượng thuộc các lớp khác nhau có khả năng hiểu cùng một thông điệp
theo cách khác nhau
b) Tất cả các đối tượng của lớp đều dùng chung và chia sẽ một vùng dữ liệu
c) Là khả năng một lớp có thể kế thừa từ nhiều lớp
d) Tất cả a, b, c đều sai
29. muốn sử dụng được tính đa hình thì

a) Hàm đa hình ở lớp cơ sở phải là hàm ảo
b) Phải sử dụng con trỏ
c) Phải có kế thừa
d) Cả a, b, c đều đúng
30. lớp kế thừa lớp khác được gọi là


a) lớp cơ sở b) lớp trừu tượng

c) lớp dẫn xuất
4

d) cả a, b đều đúng


31. lớp được lớp khác kế thừa được gọi là

a) lớp thuần ảo

b) lớp dẫn xuất

c) lớp trừu tượng

d) tất cả đều sai

32. Việc lớp con định nghĩa lại một thao tác giống hệt ở lớp cha được gọi là

a) overload

b) override

c) chồng hàmd) tất cả a, b, c đều sai

33. Cho biết kết quả sau khi thực hiện đoạn chương trình sau

#include <iostream.h>
class Dummy{

public:
Dummy() {cout << "Entering a C++ program saying...\n";}
~Dummy() {cout << "And then exitting...";}};
Dummy A;
void main()
{

cout << "Hello, world.\n"; }

a) “Hello, world”

b) “Hello, word” và “And then exiting”

c) “Entering a C++ program saying…”

d) tất cả a, b, c đều sai

34. Lớp con có thể kế thừa tất cả các thuộc tính và phương thức của lớp cha

a) đúng

b) sai

35. Hàm bạn của một lớp có thể truy xuất đến bất kỳ thành phần nào của lớp

a) đúng

b) sai

36. Đối với đối tượng toàn cục thì:


a) Constructor được thi hành sau hàm main
b) Constructor được thi hành trước hàm main
c) Constructor được thi hành song song với hàm main
d) Tất cả a, b, c đều sai

5


37. Cho đoạn chương trình sau:

#include <iostream.h>
class Dummy
{
public:
Dummy() {cout << "Entering a C++ program saying...\n";}
~Dummy() {cout << "And then exitting...";}
};
Dummy A;
void main()
{
cout << "Hello, world.\n";
}
Cho biết kết quả sau khi chạy chương trình trên
a) Entering a C++ program saying…
b) And then exiting…
c) Hello, world
d) Tất cả a, b, c đều sai
38. Cho đoạn chương trình sau, hãy chỉ ra dòng lệnh sai
1. class Diem

2. {
3. double x,y;
4. public:
5. Diem(double xx, double yy) {x = xx; y = yy;}};
6. class TamGiac{
7. Diem A,B,C;
8. public:
9. void Ve() const;};
10. void main(){
11. TamGiac t;
12. Diem D;}

a) Dòng 7

b) Dòng 9

c) Dòng 11

6

d) Dòng 12


39. Để khai báo một mảng các đối tượng thì đối tượng đó phải có

a) Hàm thiết lập 1 tham số b) Hàm thiết lập 2 tham số
c) Hàm thiết lập 3 tham số d) Cả a, b, c đều sai
40. Các thuộc tính của lớp thường là

a) Danh từ


b) Động từ

c) Tính từ

d) Trạng từ

41. Các phương thức của lớp thường là

a) Danh từ

b) Động từ

c) Tính từ

d) Trạng từ

42. Phương thức thiết lập sao chép dung để

a) Khởi tạo một đối tượng mới với các giá trị mặc định
b) Khởi tạo một đối tượng mới từ một đối tượng có sẵn
c) Khởi tạo một đối tượng mới với các giá trị do người dùng nhập vào
d) Cả a, b, c đều sai
43. Đối với việc overload toán tử thì

a) Không thể thay đổi thứ tự ưu tiên của các toán tử
b) Không thể tạo cú pháp mới cho toán tử
c) Không thể định nghĩa lại một định nghĩa có sẵn của một toán tử
d) Cả a, b, c đều đúng
44. Đối với toán tử = đòi hỏi phải được định nghĩa


a) Là hàm bạn của lớp

b) Là hàm thành phần của lớp

c) Là hàm thành phần của một lớp và là bạn của lớp khác
d) Tất cả a, b, c đều đúng
45. Đa kế thừa là khả năng

a) Cho phép một lớp có thể có nhiều lớp dẫn xuất
b) Cho phép nhiều lớp dẫn xuất từ một lớp
c) Một lớp có thể là dẫn xuất từ nhiều lớp cơ sở
d) Cả a, b, c đều sai

7


46. Khi thực thi đoạn chương trình sau kết quả sẽ là :

class Base{
public:
int xVal;
Base(int x=0) : xVal(x){
cout<<"xVal = "<}
};
class Derive:Base{
public:
Derive(){xVal = 10;}
void Print(){

cout<<"xVal = "<}
};
void main(){
Derive d;
d.Print();
}
a. Màn hình xuất hiện: xVal = 0 xVal = 10
b. Màn hình xuất hiện: xVal = 10
c. Chương trình bị lỗi.
d. Màn hình xuất hiện: xVal = 0
47. Kết quả của đoạn chương trình là gì

class A{
public: virtual void In(){cout<<"A";}
};
class B: A{ //public A
public: void In(){ cout<<"B"; }
};
class C: public B{
public: void In(){ cout<<"C";}
};
void main(){
B *pb,b;
C c;
pb = &b;
pb->A::In();
pb->In();
pb = &c;
pb->In();

getch();
}
a. Chương trình in ra ABC
b. Chương trình in ra BBC
c. Chương trình in ra ABB
d. Chương trình báo lỗi
8


48. Cho đoạn chương trình sau:

class A{
private: int x; //protected: int x;|| public
};
class B: protected A{
protected: int y;
};
class C: private B{
private: int z;
public:
C(){
x = 1; //Lệnh L1
y = 2; //Lệnh L2
z = 3; //Lệnh L3
}
};
a. Lệnh L1 sai, lệnh L2, L3 đúng
b. Lệnh L1, L2 sai và lệnh L3 đúng
c. Lệnh L1, L2, L3 đều sai
d. Lệnh L1, L2, L3 đều đúng

49. Cho đoạn chương trình sau:
class A{
public: int x;
};
class B: protected A{
protected: int y;
};
class C: private B{
private: int z;
public:
C(){
x = 1; //Lệnh L1
y = 2; //Lệnh L2
z = 3; //Lệnh L3
}
};
a. Lệnh L1 sai, lệnh L2, L3 đúng
b. Lệnh L1, L2 sai và lệnh L3 đúng
c. Lệnh L1, L2, L3 đều sai
d. Lệnh L1, L2, L3 đều đúng

9


50. Cho biết kết quả biên dịch khi thực hiện đoạn chương trình sau:

class A{
public:
virtual void In() = 0;
};

class B: public A{
};
class C: public B{
public:
void In(){cout<<"C";}
};
void main(){
C c;
B *pb = &c;
pb->In();
getch();
}
a. Chương trình báo lỗi do khai báo biến con trỏ pb thuộc kiểu lớp trừu tượng
b. Chương trình chạy và in ký tự C trên màn hình
c. Chương trình báo lỗi do khai báo biến c là ảo
d. Chương trình chạy và không hiển thị kết quả gì
51. Kết quả của đoạn chương trình là gì
class A{
public: virtual void In(){cout<<"A";}
};
class B: public A{
public: void In(){ cout<<"B"; }
};
class C: public B{
public: void In(){ cout<<"C";}
};
void main(){
B *pb,b;
C c;
pb = &b;

pb->A::In();
pb->In();
pb = &c;
pb->In();
getch();
}
a. Chương trình in ra ABC
b. Chương trình in ra BBC
c. Chương trình in ra ABB
d. Chương trình báo lỗi

10


52. Giả sử cho các lớp như trong khai báo dưới đây. Chỉ ra các dòng lệnh nào sai trong

chương trình viết dưới đây:
class A{
public:
void funcA(); //void funcA(){}
};
class B : private A{};//public ca 2 dung
void main(){
A dt1;
B dt2;
dt1.funcA(); // dòng 1
dt2.funcA(); // dòng 2
}
a. Dòng 1 sai.
b. Cả hai dòng đều sai.

c. Dòng 2 sai.
d. Cả hai dòng đều đúng.
53. Cho đoạn chương trình sau:
class Base{
public:
Base() { cout<<"Base class "; }
};
class Derive: Base{
public: Derive() {cout<<"Derive class ";}
};
void main(){
Base b;
Derive d;
}
Khi thực thi đoạn chương trình trên, kết quả sẽ là:
a. Base class Derive class
b. Base class Derive class Base class
c. Base class Base class Derive class
d. Derive class Base class
54. 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. Tính trừu tượng của một lớp
b. Tính chất public của lớp
c. Tính độc lập của các lớp
d. Tính kế thừa giữa các lớp
55. Chỉ ra khai báo lỗi cho các khai báo đối tượng dưới đây:
class A{
public:
A(); //chua dinh nghia a(){}
A(int i); //chua dinh nghia A(int i){}
};

class B : public A{
public:
B(){}
};
11


Trong hàm main() ta sử dụng 2 dòng lệnh để khai báo:
A a(10); // dòng 1
B b; // dòng 2
a. Cả hai dòng đều lỗi
b. Không có dòng nào lỗi //ket qua nay ok
c. Dòng 2 lỗi
d. Dòng 1 lỗi
56. Chỉ ra khai báo lỗi cho các khai báo đối tượng dưới đây:
class A{
protected:
A(); //a(){}
A(int i); // A(int i){}
};
class B : public A{
public:
B(){}
};
Trong hàm main() ta sử dụng 2 dòng lệnh để khai báo:
A a(10); // dòng 1 ket qua sai
B b; // dòng 2 ok
a. Cả hai dòng đều lỗi
b. Không có dòng nào lỗi
c. Dòng 2 lỗi

d. Dòng 1 lỗi
57. Cho 2 lớp:
class B{
public:
void show();
};
class A : public B{
public:
void show();
};
Khi đó, nếu MyA là một đối tượng lớp A, muốn thực hiện phương thức show của lớp B thì
câu lệnh nào dưới đây là chấp nhận được?
a. B::MyA.show();
b. MyA.B.show();
c. MyA.B::show();
d. MyA.show();
58. Khi thực hiện đoạn chương trình sau, kết quả là gì
class BaseA{
protected: int A;
public: BaseA( ){ A=5;}
void Print( ){ cout<<"A ="<};
class BaseB{
protected: int B;
public: BaseB(){ B = 10; }
void Print( ){ cout<< "B="<12


};

class Derive: public BaseA, public BaseB {};
void main(){
Derive d;
d.BaseB::Print( );
}
a. Màn hình xuất hiện B = 10
b. Chương trình báo lỗi
c. Màn hình xuất hiện A = 5
d. Màn hình xuất hiện A = 5 B = 10
59. Khi thực hiện đoạn chương trình sau, kết quả là gì
class BaseA{
protected: int A;
public: BaseA( ){ A=5;}
void Print( ){ cout<<"A ="<};
class BaseB{
protected: int B;
public: BaseB(){ B = 10; }
void Print( ){ cout<< "B="<};
class Derive: public BaseA, public BaseB {};
void main(){
Derive d;
d.BaseA:Print( );
}
a. Màn hình xuất hiện B = 10
b. Chương trình báo lỗi // d.BaseA::P rint( );
c. Màn hình xuất hiện A = 5
d. Màn hình xuất hiện A = 5 B = 10
60. Giả sử cho các lớp như trong khai báo dưới đây. Chỉ ra kết quả hiển thị của đoạn

chương trình viết dưới đây:
class A{
float x;
public: A(){ x=1.5; }
void funcA() { cout<};
class B: private A{
float y;
public:
B(): A(){ y=2.5; }
void funcA() { A::funcA(); cout<};
void main(){
B *dt2=new B;
dt2->funcA();
}
a. x không xác định và y = 2.5
b. x = 1.5 và y = 2.5
13


c. x= 1.5 và y không xác định.
d. Giá trị của x và y là không xác định.
61. Giả sử cho các lớp như trong khai báo dưới đây. Chỉ ra kết quả hiển thị của đoạn
chương trình?
class A{
protected:
float x;
public:
A(){ x=1.5; }

void funcA() { cout<<"x="<};
class B: private A{
float y;
public:
B():A(){ y=8.5; }
float funcA() { return x+y; }
};
void main(){
B b;
cout<}
a. 8.5
b. 1.5
c. 10
d. Chương trình lỗi, không chạy được.
62. Cho biết kết quả đoạn chương trình sau
class a{
public:
void fun(){ cout<<"class a";}
};
class b: public a{
public:
void fun(){ cout<<"class b";}
};
int main(){
a *obj = new b();
obj->fun();
}
a. class a class b

b. class b
c. Chương trình báo lỗi
d. class a

14


ĐÁP ÁN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

D

D
A
D
C
B
D
C
D
C
D
C
B
D
C
A,B
D
B
A
B

21
22
23
24
25
26
27
28
29
30

31
32
33
34
35
36
37
38
39
40

A
D
A
D
A
D
D
A
D
C
D
C
D
A
A
B
D
B
D

A

41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

15

B
B
D
B
C

A
D
A
D
B
A
B
C
D
A
A
C
A
B
B

61
62

C
D


Câu hỏi trắc nghiệm.
Môn thi: Lập trình hướng đối tượng

Câu 1:
Mức độ
0
Ký tự kết thúc chuỗi trong C++

'.'
'\0'

Không xáo trộn câu
''
'\n'

Câu 2:
Mức độ
0
Không xáo trộn câu
Lệnh nào sau đây dùng để nhập dữ liệu cho biến chuỗi ký tự tên là x từ bàn phím (nhập tối đa 100
ký tự) ?
cin.getline(x, 100, '\n');
cin.getline(100, x, '\n');
readline(x, 100, '\n');
read(x);

Câu 3:
Mức độ
0
Không xáo trộn câu
Mục đích xây dựng lớp (class) trong phương pháp lập trình hướng đối tượng là để:
Đóng gói dữ liệu (data encapsulation)
Tạo cơ chế mô hình hóa các đối tượng trong thế
giới thực.
Sử dụng lại các lớp (reuse)
Tất cả đều đúng

Câu 4:

Mức độ
0
Không xáo trộn câu
Giới hạn truy xuất nào không có trong các lớp của C++
hidden
protected
private
public

Câu 5:
Mức độ
1
Hàm destructor phải trả về giá trị gì ?

Không xáo trộn câu

Một đối tượng của class
Một giá trị cho biết class có được hủy đúng hay
không.

Một con trỏ (pointer) trỏ đến class.
Không trả về giá trị nào cả.
16


Câu 6:
Mức độ
0
Khai báo class nào sau đây là hợp lệ
class A { int x; };

public class A { }

Không xáo trộn câu
class B { }
object A { int x; };

Câu 7:
Mức độ
1
Hàm mà bất kỳ classs nào cũng có:

Không xáo trộn câu

Không có hàm nào cả.
Destructor

Constructor
Constructor và Destructor

Câu 8:
Mức độ
0
Không xáo trộn câu
Khi khai báo lớp trong C++, hành vi của đối tượng được khai báo như là :
Không khai báo trong class
Hàm hay phương thức
Biến hay thuộc tính
Tên lớp

Câu 9:

Mức độ

1

Không xáo trộn câu

Những phát biểu nào sau đây là đúng khi nói về lớp:
Một đối tượng là một thể hiện (instance) cụ thể
của một lớp.

Lớp định nghĩa các thuộc tính và các phương
thức chung cho tất cả các đối tượng của cùng
một loại nào đó.

Một lớp là một thiết kế hay mẫu cho các đối
tượng cùng kiểu

Tất cả đều đúng

Câu 10:
Mức độ

0

Không xáo trộn câu

Kết quả biên dịch – thực thi đoạn chương trình sau:
class Test {
17



};
void main() {
Test t;
}
Lỗi thực thi.
Chương trình thực thi mà không xuất ra gì hết.

Lỗi biên dịch.
Chương trình chạy vô tận

Câu 11:
Mức độ

1

Không xáo trộn câu

Kết quả biên dịch – thực thi chương trình sau:
class Test {
public: int n;
private: void Display(){ cout<public: Test(){ n=5; }
};
void main() {
Test t;
t.Display();
}
Lỗi thực thi
Chương trình thực thi xuất ra màn hình: 5.


Lỗi biên dịch.
Chương trình thực thi mà không xuất gì ra màn
hình.

Câu 12:
Mức độ

2

Không xáo trộn câu

Kết quả biên dịch - thực thi chương trình sau:
class ABC {
int n;
public:
ABC(int x){n=x; }
18


void Print(){ cout<};
void main() {
ABC t;
t.Print();
}
Lỗi thực thi
Chương trình thực thi xuất ra màn hình một số
âm.


Lỗi biên dịch.
Chương trình thực thi mà không xuất gì ra màn
hình.

Câu 13:
Mức độ

0

Không xáo trộn câu

Kết quả biên dịch – thực thi chương trình sau:
class Point {
int xVal, yVal;
public:
Point(int x = 0, int y = 0){
xVal = x ; yVal = y ;
}
void Print(){
cout<<" ("<}
};
void main() {
Point pt(5);
pt.Print();
}
Lỗi do khởi tạo đối tượng không đúng
Hiển thị trên màn hình (0,5)
Hiển thị trên màn hình (5,5)
Hiển thị trên màn hình (5,0)


Câu 14:
Mức độ
1
Kết quả biên dịch - thực thi chương trình sau:

Không xáo trộn câu

class Point {
int xVal, yVal;
public:
Point(int x = 0, int y = 0){
xVal = x ; yVal = y ;
cout<< "So nguyen " ;
}
Point(double x = 0, double y = 0){
19


xVal = x ; yVal = y ;
cout<< "So thuc " ;
}
void Print() ;
};
void Point :: Print(){ cout<< " ("<void main() {
Point pt(5.7);
pt.Print();
getch();
}

Hiển thị trên màn hình So thuc (5,0)
Hiển thị trên màn hình So nguyen (5,0)

Hiển thị trên màn hình So nguyen (5,5)
Chương trình bi lỗi biên dịch.

Câu 15:
Mức độ

1

Không xáo trộn câu

Kết quả biên dịch - thực thi chương trình sau:
class Point {
int n;
Point(int x)
{
n=x;
}
void Print(){cout<};
void main() {
Point pt(4);
pt.Print();
}
Lỗi thực thi
Chương trình thực thi xuất ra màn hình : 4

Lỗi biên dịch.

Chương trình thực thi mà không xuất gì ra màn
hình.

Câu 16:
Mức độ

2

Không xáo trộn câu

Kết quả biên dịch - thực thi chương trình sau:
class Test {
int t;
public :
20


Test(int t){ Test::t = t ; }
void Print(){cout<};
void main() {
Test test(4);
test.Test::Print();
}
Lỗi thực thi
Chương trình thực thi xuất ra màn hình : 4

Lỗi biên dịch.
Chương trình thực thi mà không xuất gì ra màn
hình.


Câu 17:
Mức độ

2

Không xáo trộn câu

Khi thực thi đoạn chương trình sau Kết quả sẽ là :
class AAA {
int na;
public :
AAA(int a=0) {
na = a ;
}
~AAA(){cout<< " "<};
void Func(AAA aaa){
AAA *a1 = new AAA(3);
delete a1;
}
void main() {
AAA aaa(4);
Func(aaa);
}
Xuất ra màn hình : 0 3 4
Xuất ra màn hình : 3 3 4

Xuất ra màn hình : 3 4 4
Xuất ra màn hình : 3 4


Câu 18:
Mức độ

2

Không xáo trộn câu

Khi thực thi đoạn chương trình sau kết quả sẽ là :
class AAA {
int na;
public :
AAA(int a=0) {
21


na = a ;
}
~AAA(){cout<< " "<};
void Func(const AAA& aaa){
AAA *a1 = new AAA(3);
delete a1;
}
void main() {
AAA aaa(4);
Func(aaa);
}
Xuất ra màn hình : 0 3 4
Xuất ra màn hình : 3 3 4


Xuất ra màn hình : 3 4 4
Xuất ra màn hình : 3 4

Câu 19:
Mức độ

3

Không xáo trộn câu

Khi thực thi đoạn chương trình sau kết quả sẽ là:
class Teacher {
public:
static int n;
public :
Teacher (){ cout<<" "<};
int Teacher::n = 0;
void main() {
Teacher t1;
Teacher t2;
Teacher t3;
cout<<" "<getch();
}
Xuất ra màn hình : 0 1 2 3
Xuất ra màn hình : 0 1 2 2

Xuất ra màn hình : 1 2 3 4

Xuất ra màn hình : 1 2 3 1

Câu 20:
Mức độ

1

Không xáo trộn câu

Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Employee {
char ten[30];
22


char ms[10];
int tuoi;
public :
Employee (char te[], char m[], int tu):tuoi(tu)
{
strcpy(ten, te);
strcpy(ms, m);
}
void Display(){
cout<<"Ma so: "<}
};
void main() {
Employee e(" Nguyen Van A", "001",20);
e.Display();

}
Lỗi biên dịch.

Xuất hiện trên,màn hinh: “Ma so: 001 Ten:
Nguyen Van A Tuoi: 20”
Không hiển thị gì trên màn hình.

Lỗi thực thi

Câu 21:
Mức độ
2
Khi thực thi đoạn chương trình sau kết quả sẽ là :

Không xáo trộn câu

class Base{
public:
Base(){ cout<<”Base class”<};
class Derive:Base
{
public: Derive(){ cout<<”Derive class”<};
void main(){
Derive d;
}
Base class Derive class
Base class


Derive class Base class
Derive class

Câu 22:
Mức độ

2

Không xáo trộn câu

Khi thực thi đoạn chương trình sau kết quả sẽ là :
23


class Base{
public:
Base(){}
~Base(){ cout<<”Base class”<};
class Derive:Base
{
public:
Derive(){}
~Derive(){ cout<<”Derive class”<};
void main(){
Derive d;
}
Base class Derive class
Base class


Derive class Base class
Derive class

Câu 23:
Mức độ
3
Không xáo trộn câu
Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Base{
public:
int xVal;
Base(int x=0) : xVal(x){
cout<<”xVal = ”<}
};
class Derive:Base
{
public: Derive(){xVal = 10;}
void Print(){
cout<<”xVal = ”<}
24


};
void main(){
Derive d;
d.Print();
}

Màn hình xuất hiện: xVal = 0 xVal = 10
Màn hình xuất hiện: xVal = 10

Màn hình xuất hiện: xVal = 0
Chương trình bị lỗi

25


×