You are on page 1of 11

Câu 1:Khi đa năng hóa toán tử xuất (trích dòng) cho lớp SP ta khai báo dòng tiêu

đề như sau:

A. friend ostream & operator <<(ostream & ostr, SP &a);


B. friend void ostream & operator <<(ostream & ostr, SP &a);
C. friend istream & operator <<(istream istr, SP &a);
D. friend istream & operator >>(istream & istr, SP a);

Câu 2: Lập trình hướng đối tượng là gì?

A. Tất cả
B. Phương pháp đặt trọng tâm vào các đối tượng
C. Nó không cho phép dữ liệu chuyển động một cách tự do trong hệ thống
D. Dữ liệu được gắn với các hàm thành phần

Câu 3: Đặc điểm cơ bản của lập trình hướng đối tượng thể hiện ở

A. Tính đóng gói, tính kế thừa.


B. Tất cả
C. Tính đa hình
D. Tính trừu tượng

Câu 4: OOP là viết tắt của:

A. Tất cả đều sai


B. Object Open Programming
C. Open Object Programming
D. Object Oriented Proccessing

Câu 5: Chọn câu đúng về thành phần public của lớp:

A. Tất cả đều sai


B. Tại chương trình chính chỉ có thể truy cập đến thành phần private của lớp
C. Tại chương trình chính có thể truy cập đến bất kì thành phần nào của lớp
D. Tại chương trình chính không thể truy cập đến thành phần nào của lớp

Câu 6:Cho đoạn chương trình sau:

A. Dòng khác;
B. Lỗi tại dòng obj2.y=8;
C. Lỗi tại dòng A.obj1;
D. Lỗi tại dòng int x;

Câu 7: Cho đoạn chương trình sau:


A. Chưa khai báo x
B. x khai báo kiểu private
C. Không xác định được giá trị x
D. Phải gọi thông quan tên lớp không được gọi thông qua tên đối tượng

Câu 8: Khi khai báo lớp trong các ngôn ngữ lập trình hướng đối tượng phải sử dụng
từ khóa:

A. Object.
B. Record
C. File
D. Từ khác

Câu 9: Thành phần private của lớp là thành phần:

A. Không cho phép truy xuất từ bên ngoài của lớp chỉ có các phương thức bên trong lớp mới
có thể truy xuất được
B. Không cho phép truy xuất từ bên ngoài của lớp nhưng cho phép lớp kế thừa truy xuất tới
C. Cho phép truy xuất từ bên ngoài lớp
D. Cho phép truy xuất từ bên ngoài lớp và cho phép kế thừa

Câu 10:Hàm huỷ trong ngôn ngữ C++ có cú pháp:

A. ~Tên_lớp{ //nội dung}


B. Destructor Tên_hàm {//nôi dung}
C. Tên_lớp{//nội dung}
D. Done {//nội dung}

Câu 11: Cho đoạn chương trình sau:


class A{
private:
int x,y;
public:
A(int x=0,int y=0);
void xuat();
~A();
};
~A(); được gọi là:

A. Hàm tạo
B. Hàm huỷ
C. Hàm bạn
D. Hàm thông thường

Câu 12: Cho đoạn chương trình:


class A
{
private:
int x,y;
};
Làm nhiệm vụ:

A. Khai báo A là một lớp với hai thành phần thuộc tính là x, y kiểu số nguyên, không cho
phép truy cập từ ngoài lớp
B. Khai báo A là một đối tượng với hai thành phần thuộc tính x, y kiểu integer
C. Đoạn chương trình trên bị lỗi
D. Khai báo lớp A với hai thành phần thuộc tính x,y kiểu số nguyên cho phép truy cập từ bên
ngoài lớp
Câu 13: Xây dựng lớp Time trong C++ như hình trên, phương thức là:

A. Tất cả đều sai


B. Phương thức nhập dữ liệu cho lớp Time
C. Phương thức kiểm tra thời gian của lớp Time
Câu 14:Xây dựng lớp Time trong C++ như hình trên, phương thức khởi tạo public
Time() làm nhiệm vụ:
A. Gọi tới hàm setTime để thiết lập giá trị khởi tạo cho giờ, phút, giây
B. Gọi tới hàm setTime để hủy bỏ toàn bộ dữ liệu thuộc tính của lớp hour
C. Khởi tạo giá trị ban đầu cho dữ liệu của lớp

Câu 15: Cho đoạn chương trình trên, câu nhận định đúng cho đoạn chương trình
trên là:
A. DisplayData() không thể được khai báo với từ khóa private
B. DisplayData() không thể truy cập vào j
C. ShowData() không thể truy cập vào i
D. ShowData() có thể truy cập vào i, j

Câu 16: Khi khai báo dùng toán tử nhập (trích dòng) cho lớp SP ta khai báo dòng
tiêu đề như sau:

A. friend istream & operator >>(istream & istr, SP &a);


B. friend void istream & operator <<(istream & istr, SP &a);
C. friend istream & operator >>(istream istr, SP &a);
D. friend istream & operator <<(istream & istr, SP a);
Câu 17: Hàm fabs() trong đoạn sau có tác dụng gì?
ostream&operator<<(ostream &xuat, SoPhuc a)
{
if(a.pa>=0)
xuat<<a.pt<<"+j"<<a.pa<<endl;
else
xuat<<a.pt<<"-j"<<fabs(a.pa)<<endl;
return xuat;
}
A. Tất cả đều sai
B. Đặt cờ cho a.pa
C. Định dạng số phức
D. Trả về phần ảo của số phức
Câu 18: Đoạn lệnh sau sai chổ nào?
double DTB(double a)
{
return (a+b)/2;
}
A. Giá trị trả về
B. Tham số trong hàm
C. Thiếu lệnh
D. Thiếu khai báo b.
Câu 19: Đoạn lệnh sau thể hiện tính năng gì của hàm??
double DTB(double a, double b)
{
return (a+b)/2;
}
double DTB(double a, double b,double c)
{
return (a+b+c)/3;
}
A. Nạp chồng hàm
B. Nạp chồng toán tử
C. Hàm tạo
D. Hàm khởi tạo
Câu 20: Cho đoạn lệnh sau:
double DTB(double a, double b)
{
return (a-b)/2;
}
double DTB(double a, double b,double c)
{
return (a+b-c)/3;
}
Nếu trong hàm main gọi hàm DTB(5,1) thì kết quả ra bao nhiêu??
A. 4/3
B. 2/1
C. 3
D. Không ra kết quả vì sai
Câu 21: Định nghĩa toán tử xuất (<<) sau đây đúng hay sai:
friend ostream& operator<<(ostream &xuat, SoPhuc &a);
A. Đúng
B. Sai
Câu 22: Đoạn lệnh sau sai dòng nào trong định nghĩa toán tử nhập?
1. istream& operator>>(istream &nhap, SoPhuc &a)
{
//pt la phan thuc, pa la phan ao cua so phuc
a. cout<<"Nhap phan thuc:";
b. nhap>>a.pt;
c. cout<<"Nhap phan ao:";
d. nhap>>a.pa;
e. return nhap;
}
A. 1
B. a
C. d
D. Không sai
Câu 23: Kết quả in ra của đoạn mã sau là gì? (Nếu nó được gắn trong một chương trình hoàn
chỉnh).
For(int count=1;count<=5;count++)
Cout<<(2*count)<<” “;
A. 2 4 6 8 10
B. 12345
C. 2468
D. 123456
Câu 24: Ta có thể gọi 1 hàm từ 1 hàm khác.
A. Không được
B. Được
Câu 25: Viết 1 định nghĩa hàm void cho một hàm có tên A, hàm này có 2 tham số (x và y), cả
2 đều là các biến có kiểu int và hàm này thiết lập giá trị cả 2 biến bằng 0
A. void A(int &x,int &y)
{
x=0;
y=0;
}
B. void A(int &x int &y)
{
x=0
y=0;
}
C. void A(int &x,int y)
{
X=0;
Y=0;
}
D. void A(int x,int &y)
{
X=0;
Y=0;
}

Câu 26: Giả sử rằng bạn có hai định nghĩa hàm với các khai báo sau đây:
double score (double time, double distance);
int score(double points);
Định nghĩa hàm nào sẽ được sử dụng trong lời gọi hàm sau
double finalScore=score(x,y);
A. double score (double time, double distance)
B. int score(double points)
C. Không có, vì lời gọi hàm sai
Câu 27: Giả sử rằng bạn có 2 định nghĩa hàm với các khai báo sau đây:
double A(double x, double y);
double A(int z, int yt);
Định nghĩa hàm nào sẽ được sử dụng trong lời gọi hàm sau:
X=A(y, 6);
A. Double A(double x, double y)
B. Double A(int z, int yt)
C. Không có, vì lệnh gọi hàm sai
Câu 28: Định nghĩa cấu trúc dưới đây có lỗi gì?
struct stuff
{
Int b;
Int c;
};
Int main()
{
stuff x;
//phần mã khác
}
A. Thiếu ; tại phần kết thúc định nghĩa stuff
B. Thiếu ; sau main()
C. Thiếu ; sau struct stuff
D. Không có lỗi
Câu 29: Viết một định nghĩa cho kiểu cấu trúc dùng để ghi mức lương của một người, tổng số
ngày nghỉ việc tích lũy, và trạng thái của người đó (nhận lương theo tuần hay nhận lương theo
giờ).Biểu diễn trạng thái là một trong hai kí tự “H” hoặc “S”. Đặt tên cho kiểu này là
LuuCongNhan.
A. struct LuuCongNhan
{
double mucluong;
int ngaynghi;
char status;
};
B. struct LuuCongNhan
{
double mucluong;
int ngaynghi;
char status “H” or “S”
};
C. struct LuuCongNhan
{
double mucluong;
int ngaynghi;
double status;
};
D. void struct LuuCongNhan
{
double mucluong;
int ngaynghi;
char status;
};
Câu 30: Điểm khác nhau giữa một toán tử (hai ngôi) và một hàm là gì?
A. Điểm khác nhau giữa toán tử (hai ngôi chẳng hạn như +, -, *, /) và một hàm chính là ở
cú pháp gọi chúng. Trong một lời gọi hàm thì đối số nằm trong cặp ngoặc đơn sau tên
hàm. Với một toán tử thì đối số được đặt ở trước và sau toán tử. Bạn cũng sử dụng từ
khóa operator trong phần khai báo và trong phần định nghĩa của toán tử được nạp
chồng.
B. Điểm khác nhau giữa toán tử (hai ngôi chẳng hạn như +, -, *, /) và một hàm chính là ở
cú pháp gọi chúng. Trong một lời gọi hàm thì đối số nằm trong cặp ngoặc đơn trước
tên hàm. Với một toán tử thì đối số được đặt ở trước và sau toán tử. Bạn cũng sử dụng
từ khóa operator trong phần khai báo và trong phần định nghĩa của toán tử được nạp
chồng.
C. Điểm khác nhau giữa toán tử (hai ngôi chẳng hạn như +, -, *, /) và một hàm chính là ở
cú pháp gọi chúng. Trong một lời gọi hàm thì đối số nằm trong cặp ngoặc đơn sau tên
hàm. Với một toán tử thì đối số được đặt ở trong và trước toán tử. Bạn cũng sử dụng
từ khóa operator trong phần khai báo và trong phần định nghĩa của toán tử được nạp
chồng.
D. Điểm khác nhau giữa toán tử (hai ngôi chẳng hạn như +, -, *, /) và một hàm chính là ở
cú pháp gọi chúng. Trong một lời gọi hàm thì đối số nằm trong cặp ngoặc đơn sau tên
hàm. Với một toán tử thì đối số được đặt sau toán tử. Bạn cũng sử dụng từ khóa
operator trong phần khai báo và trong phần định nghĩa của toán tử được nạp chồng.

You might also like