Tải bản đầy đủ (.doc) (13 trang)

Trắc nghiệm kĩ thuật lập trình C++

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 (126.38 KB, 13 trang )

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
Câu 30:
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 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;
}
Kết quả là : A A B Kết quả là : A A C
Kết quả là : A B C Là một kết quả khác
Câu 31:
Mức độ 4 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 A{
public:
A(){cout<<" A ";}
};
class B{

public:
B(){cout<<" B ";}
};
void SinhLoi(int a){
if(a>0) throw A(); throw B();
}
void main(){
int n=-1;
try{
SinhLoi(n);
}catch(A){ cout<<" C " ; }
catch(B){ cout<<" D "; }
}
Kết quả là : B D Kết quả là : A D
Kết quả là : B C Kết quả là : A C
Câu 32:
Mức độ 4 Không xáo trộn câu
1: 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:
Mức độ 4 Không xáo trộn câu
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:
Mức độ 4 Không xáo trộn câu
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
Câu 35:
Mức độ 4 Không xáo trộn câu
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];
}
Lỗi biên dịch Lỗi thực thi
0 1 Một kết quả khác

×