Trắc nghiệm kĩ thuật lập trình C++
Trang 1Câu hỏi trắc nghiệm
Môn thi: Lập trình hướng đối tượng
Câu 1:
Ký tự kết thúc chuỗi trong C++
Câu 2:
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');
Câu 3:
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:
Giới hạn truy xuất nào không có trong các lớp của C++
Câu 5:
Hàm destructor phải trả về giá trị gì ?
Một đối tượng của class Một con trỏ (pointer) trỏ đến class
Một giá trị cho biết class có được hủy đúng
hay không
Không trả về giá trị nào cả
Câu 6:
Khai báo class nào sau đây là hợp lệ
class A { int x; }; class B { }
Câu 7:
Hàm mà bất kỳ classs nào cũng có:
Trang 2Câu 8:
Khi khai báo lớp trong C++, hành vi của đối tượng được khai báo như là :
Câu 9:
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ươngthứ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:
Kết quả biên dịch – thực thi đoạn chương trình sau:
class Test {
};
void main() {
Test t;
}
Chương trình thực thi mà không xuất ra gì
hết
Chương trình chạy vô tận
Câu 11:
Kết quả biên dịch – thực thi chương trình sau:
};
void main() {
Test t;
t.Display();
Trang 3Chương trình thực thi xuất ra màn hình: 5 Chương trình thực thi mà không xuất gì ra
màn hình
Câu 12:
Kết quả biên dịch - thực thi chương trình sau:
ABC(int x){n=x; }
void Print(){ cout<<n; }
};
void main() {
ABC t;
t.Print();
}
Chương trình thực thi xuất ra màn hình một
số âm
Chương trình thực thi mà không xuất gì ra màn hình
Câu 13:
Kết quả biên dịch – thực thi chương trình sau:
int xVal, yVal;
Point(int x = 0, int y = 0){
xVal = x ; yVal = y ; }
void Print(){
cout<<" ("<<xVal <<","<<yVal<<" )"; }
};
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:
Kết quả biên dịch - thực thi chương trình sau:
int xVal, yVal;
Point(int x = 0, int y = 0){
xVal = x ; yVal = y ; cout<< "So nguyen " ; }
Trang 4Point(double x = 0, double y = 0){
xVal = x ; yVal = y ; cout<< "So thuc " ; }
void Print() ; };
void Point :: Print(){ cout<< " ("<<xVal <<","<<yVal<<" )"; }
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,5) Hiển thị trên màn hình So nguyen (5,0) Chương trình bi lỗi biên dịch
Câu 15:
Kết quả biên dịch - thực thi chương trình sau:
Point(int x)
{
n = x ; }
void Print(){cout<<n; }
};
void main() {
Point pt(4);
pt.Print();
}
Chương trình thực thi xuất ra màn hình : 4 Chương trình thực thi mà không xuất gì ra
màn hình
Câu 16:
Kết quả biên dịch - thực thi chương trình sau:
Test(int t){ Test::t = t ; }
void Print(){cout<<t; }
};
void main() {
Test test(4);
test.Test::Print();
}
Chương trình thực thi xuất ra màn hình : 4 Chương trình thực thi mà không xuất gì ra
màn hình
Câu 17:
Trang 5Mứ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à :
AAA(int a=0) {
na = a ; }
~AAA(){cout<< " "<<na ;}
};
AAA *a1 = new AAA(3);
}
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 4 4 Xuất ra màn hình : 3 3 4 Xuất ra màn hình : 3 4 Câu 18:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
AAA(int a=0) {
na = a ; }
~AAA(){cout<< " "<<na ;}
};
void Func(const AAA& aaa){
AAA *a1 = new AAA(3);
}
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 4 4 Xuất ra màn hình : 3 3 4 Xuất ra màn hình : 3 4 Câu 19:
Khi thực thi đoạn chương trình sau kết quả sẽ là:
Teacher (){ cout<<" "<<n++ ; } };
Trang 6void main() {
Teacher t1;
Teacher t2;
Teacher t3;
cout<<" "<<t1.n ;
getch();
}
Xuất ra màn hình : 0 1 2 3 Xuất ra màn hình : 1 2 3 4
Xuất ra màn hình : 0 1 2 2 Xuất ra màn hình : 1 2 3 1
Câu 20:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
char ten[30];
char ms[10];
int tuoi;
Employee (char te[], char m[], int tu):tuoi(tu)
strcpy(ms, m);
}
void Display(){
cout<<"Ma so: "<<ms<<" Ten: "<<ten<<" Tuoi:"<<tuoi<<endl ; }
};
void main() {
Employee e(" Nguyen Van A", "001",20);
e.Display();
}
Nguyen Van A Tuoi: 20”
Câu 21:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
Base(){ cout<<”Base class”<<endl; }
};
{
};
void main(){
Derive d;
}
Base class Derive class Derive class Base class
Câu 22:
Trang 7Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Base{
public:
Base(){}
~Base(){ cout<<”Base class”<<endl; }
};
class Derive:Base
{
public:
Derive(){}
~Derive(){ cout<<”Derive class”<<endl; }
};
void main(){
Derive d;
}
Base class Derive class Derive class Base class
Câu 23:
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 = ”<<xVal<<endl;
}
};
class Derive:Base
{
public: Derive(){xVal = 10;}
void Print(){
cout<<”xVal = ”<<xVal<<endl;
}
};
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 = 0 Màn hình xuất hiện: xVal = 10 Chương trình bị lỗi
Trang 8Câu 24:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Base{
protected:
int xVal;
public:
Base(){ xVal = 5; } public:
void Print(){
cout<<”xVal = ”<<xVal<<endl;
} };
class Derive:public Base
{
public:
Derive(int x) { xVal = x;}
};
void main(){
Derive d(10);
d.Print();
}
Màn hình xuất hiện: xVal = 5 xVal = 10 Màn hình xuất hiện: xVal = 5 Màn hình xuất hiện: xVal = 10 Chương trình bị lỗi
Câu 25:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Base{
protected:
int xVal;
public: Base(){ xVal = 5; }
public: void Print(){
cout<<”xVal = ”<<xVal<<endl;
} };
class Derive:protected Base
{
public: Derive(int x) { xVal = x; }
};
void main(){
Derive d(10);
d.Print();
}
Màn hình xuất hiện: xVal = 5 xVal = 10 Màn hình xuất hiện: xVal = 5 Màn hình xuất hiện: xVal = 10 Chương trình bị lỗi
Câu 26:
Khi thực thi đoạn chương trình sau kết quả sẽ là:
Trang 9class BaseA{
protected:
int A;
public:
BaseA(){ A = 5; } void Print(){ cout<<”A = ”<<A<<endl; } };
class BaseB {
protected:
int B;
public:
BaseB(){ B = 10; } void Print(){ cout<<”B = ”<<B<<endl; } };
class Derive:public BaseA,public BaseB {};
void main(){
Derive d();
d.BaseA::Print();
}
Chương trình bị lỗi Màn hình xuất hiện: A = 5
10
Câu 27:
Khi thực thi đoạn chương trình sau kết quả sẽ là:
int xVal, yVal;
void Print(){
cout<<"("<<xVal<<","<<yVal<<")"; }
Point(int x=0, int y=0):xVal(x),yVal(y){}
Point(int x){
Point::xVal = Point::yVal = x;
}
};
Point operator + (Point p1, Point p2)
{
}
void main(){
Point p1(3,4);
Point p = p1+3;
p.Print();
}
Câu 28:
Trang 10Khi thực thi đoạn chương trình sau kết quả sẽ là :
int xVal, yVal;
void Print() {
cout<<"("<<xVal<<","<<yVal<<")"; }
Point(int x, int y):xVal(x),yVal(y){ }
Point(int x)
{
Point::xVal = Point::yVal = x;
}
};
Point operator + (Point p1, Point p2)
{
}
void main(){
Point p1(3,4); Point p = p1+6; p.Print();
system("pause");
}
Kết quả là (9,10) Kết quả là (9,4)
Câu 29:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Set{
int n, size, *elems;
public:
Set(int s=0):size(s), n(0), elems(new int[s]) { for(int i=0; i<s; i++)
elems[i] = i;
} void Print(){
for(int i=0; i<size; i++) cout<<" "<<elems[i];
} Set Func(Set);
~Set() {delete []elems;}
Set Set::Func (Set s1 ){
Set s = s1;
return s;
}
void main(){
Set s(10);
Set s1= s.Func(s); s.Print();
}
Kết quả là : 0 1 2 3 4 5 6 7 8 9 Là một kết quả khác
Trang 11Câu 30:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
class Test{
public:
Test(){cout<<" A ";}
Test(const Test& t){ cout<<" B "; } void operator=(const Test&t){ cout<<" C "; } };
void main(){
Test t1;
Test t2;
t2 = t1;
}
Câu 31:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
A(){cout<<" A ";}
};
B(){cout<<" B ";}
};
void SinhLoi(int a){
if(a>0) throw A(); throw B();
}
void main(){
int n=-1;
SinhLoi(n);
}
Câu 32:
Trang 121: template <class T> T max(T a, T b) {
2: if (a > b) return a;
3: return b;
4: }
5: float max (float fa, float fb) {
6: if (fa - fb >0) return fa;
7: return fb;
8: }
9: void main(){
10:
11: cout<<max(a,b);
12: }
Khi thêm lệnh nào vào dòng 10 thì chương trình báo lỗi:
float a = 5.0, b = 6.0 ; char a = ‘A’, b = ‘B’ ;
float a = 5.0; int b = 6 ; int a = 5; int b = 6 ;
Câu 33:
1: template <class T, class U>
2: void func (T a, U b){
3: cout<<a<<b ;
4: }
5: void main(){
6:
7: func(a,b);
8: }
Thêm lệnh nào đúng nhất dưới đây mà khi thêm vào dòng 6 thì chương trình không báo lỗi float a = 5.0, b = 6.0 ; char a = ‘A’ ; char *b = “Hello” ;
float a = 5.0; int b = 6 ; Tất cả câu trên
Câu 34:
Khi thực thi đoạn chương trình sau kết quả sẽ là :
template <class T> class Test {
T x, y;
public:
Test(T a = 0, T b = 0) {
x = b; y = a;
} void display();
}
void point<T>::display() {
cout<<"("<<x<<","<<y<<") ";
}
void main() {
Test<int> ti(3,5); ti.display();
Test<char> tc('a','b'); tc.display();
}
Kết quả là : (3, 5) (a, b) Chương trình bị lỗi
Kết quả là : (5, 3) (b, a) Một kết quả khác
Trang 13Câu 35:
Khi thực thi đoạn chương trình sau kết quả sẽ là:
template <class T, int n> class table{
T data[n];
public:
table() { }
T & operator[](int i){ return data[i]; } };
void main(){
int n = 2;
table <int, n>t;
t[0] =0; t[1] =1;
cout<<t[0]<<" "<<t[1];
}