Trắc nghiệm kĩ thuật lập trình C++
Câ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++ '.' ' ' '\0' '\n' 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'); readline(x, 100, '\n'); read(x); 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++ hidden protected private public 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 { } public class A { } object A { int x; }; Câu 7: Hàm mà bất kỳ classs nào cũng có: Không có hàm nào cả. Constructor Destructor Constructor và Destructor Câu 8: 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: 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: Kết quả biên dịch – thực thi đoạn chương trình sau: class Test { }; void main() { Test t; } Lỗi thực thi. Lỗi biên dịch. 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: 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<<n; } public: Test(){ n=5; } }; void main() { Test t; t.Display(); } Lỗi thực thi Lỗi biên dịch. Chươ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: 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; } void Print(){ cout<<n; } }; void main() { ABC t; t.Print(); } Lỗi thực thi Lỗi biên dịch. 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: 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<<" ("<<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: 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 xVal, yVal; public: Point(int x = 0, int y = 0){ xVal = x ; yVal = y ; cout<< "So nguyen " ; } Point(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: 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<<n; } }; void main() { Point pt(4); pt.Print(); } Lỗi thực thi Lỗi biên dịch. 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: 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 : Test(int t){ Test::t = t ; } void Print(){cout<<t; } }; void main() { Test test(4); test.Test::Print(); } Lỗi thực thi Lỗi biên dịch. 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: 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<< " "<<na ;} }; 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 4 4 Xuất ra màn hình : 3 3 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) { na = a ; } ~AAA(){cout<< " "<<na ;} }; 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 4 4 Xuất ra màn hình : 3 3 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<<" "<<n++ ; } }; int Teacher::n = 0; void 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: 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]; 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: "<<ms<<" Ten: "<<ten<<" Tuoi:"<<tuoi<<endl ; } }; 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” Lỗi thực thi Không hiển thị gì trên màn hình. Câu 21: 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 Base{ public: Base(){ cout<<”Base class”<<endl; } }; class Derive:Base { public: Derive(){ cout<<”Derive class”<<endl; } }; void main(){ Derive d; } Base class Derive class Derive class Base 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à : 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 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 = ”<<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 Câu 24: 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 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: 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{ 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: 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 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 Màn hình xuất hiện: B = 10 Màn hình xuất hiện: A = 5 B = 10 Câu 27: 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 Point{ private: int xVal, yVal; public: void Print(){ cout<<"("<<xVal<<","<<yVal<<")"; } Point(int x=0, int y=0):xVal(x),yVal(y){} Point(int x){ Point::xVal = Point::yVal = x; } friend Point operator + (Point, Point); }; Point operator + (Point p1, Point p2) { return Point(p1.xVal+p2.xVal, p1.yVal+p2.yVal); } void main(){ Point p1(3,4); Point p = p1+3; p.Print(); } Lỗi biên dịch Lỗi thực thi Kết quả là (6,7) Kết quả là (6,4) Câu 28: 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 Point{ private: int xVal, yVal; public: void Print() { cout<<"("<<xVal<<","<<yVal<<")"; } Point(int x, int y):xVal(x),yVal(y){ } Point(int x) { Point::xVal = Point::yVal = x; } friend Point operator + (Point, Point); }; Point operator + (Point p1, Point p2) { return Point(p1.xVal+p2.xVal, p1.yVal+p2.yVal); } void main(){ Point p1(3,4); Point p = p1+6; p.Print(); system("pause"); } Lỗi biên dịch Lỗi thực thi Kết quả là (9,10) Kết quả là (9,4) Câu 29: 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 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(); } Lỗi biên dịch Lỗi thực thi Kết quả là : 0 1 2 3 4 5 6 7 8 9 Là một kết quả khác [...]... 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 Test{ public: Test(){cout