игра брюс 2048
Главная / Программирование / Язык программирования C++ для профессионалов / Тест 5

Язык программирования C++ для профессионалов - тест 5

Упражнение 1:
Номер 1

Какие принципы объектно-ориентированного программирования реализуются классами?


Ответ:

 (1) полиморфизм 

 (2) инкапсуляция 

 (3) абстракция 

 (4) модульность 


Номер 2

Чем класс отличается от структуры?


Ответ:

 (1) в структуре все элементы по умолчанию открытые 

 (2) в структуре не может быть конструктора 

 (3) класс занимает больше памяти 


Номер 3

Как получить доступ к закрытым членам класса из других объектов?


Ответ:

 (1) через функции-члены класса 

 (2) через конструктор класса 

 (3) через дружественные функции 


Упражнение 2:
Номер 1
Верно ли объявлен следующий класс?

class MyClass
   {
     int n;
     MyClass (int);
     ~MyClass ();
   };


Ответ:

 (1) нет, ошибочна четвертая строка 

 (2) неизвестен тип элементов класса, и потому такое объявление ошибочно 

 (3) ссылка на класс задана неявно, такая запись ошибочна 

 (4) класс объявлен верно 


Номер 2

Выберите корректное определение класса Name


Ответ:

 (1) Name class{} 

 (2) Name{} 

 (3) class Name(){} 

 (4) class Name{}; 


Номер 3

Верно ли такое объявление класса Name?

class Name { public: int Age; char* name; };

Ответ:

 (1) да, верно 

 (2) нет, неправильно заданы указатели 

 (3) нет, существует несоответствие в типах 

 (4) нет, такое объявление вызовет ошибку компиляции в пятой строке 


Упражнение 3:
Номер 3

Верно ли такое объявление класса?

class A { int x; };

Ответ:

 (1) да, верно 

 (2) нет, отсутствуют указатели 

 (3) нет, существует несоответствие в типах 

 (4) нет, такое объявление не формирует ссылок, и потому неверно 


Номер 4

Класс А определен следующим образом:

class A { int x; }; Отметьте корректный вариант обращения и использования класса A:

Ответ:

 (1) A a[100]; 

 (2) A a = (A)12; 

 (3) A a = new A(); 


Упражнение 4:
Номер 1

Выберите правильный вариант обращения к элементам и использования класса A:

class A { int x; };

Ответ:

 (1) A *\a* = [120]; 

 (2) A a[100]; 

 (3) A int [20]; 

 (4) A /a*/ = [11]; 


Номер 2

В каком из вариантов объявление класса ошибочно?

1.class A { void F(); public: int Func(int x){ F();} }; 2.class A { char* name; public: void Func(){ printf("Hello");} };

Ответ:

 (1) в первом 

 (2) во втором 

 (3) в обоих неверно 

 (4) в обоих верно 


Упражнение 5:
Номер 1

Объявлен класс A и объект d:

class A { int a, b, c; public: A() {a = 1; b = 2; c = 3; }; int get_a() { return a; } int get_c() { return c; } int get_b() { return b; } }; A* d = new A; Как обратиться к переменной с?

Ответ:

 (1) d.c; 

 (2) d.get_c(); 

 (3) d->get_c(); 

 (4) d->c; 


Номер 2

Объявлен класс class A { public: int a,b,c;}; A *obj; Как обратиться к переменной с?


Ответ:

 (1) obj.c 

 (2) obj->a->b->c 

 (3) obj->c 

 (4) obj->a.c 


Номер 3

Объявлен класс class A { public: int a,b,c;}; A obj; Как обратиться к переменной с?


Ответ:

 (1) obj.c 

 (2) obj->a->b->c 

 (3) obj->c 

 (4) obj->a.c 


Упражнение 6:
Номер 1

Какое из следующих объявлений класса не вызовет ошибки при компиляции?


Ответ:

 (1) class A { int x,y; public: A(int,int); int getX(); int getY(); };  

 (2) class A { int x = 1, y = 2; A(int,int); int getX(); int getY(); };  

 (3) class A { int x,y; int getX(); int getY(); }A1, A2;  


Номер 2

Отметьте правильное создание объекта вложенного класса cls2, если имеется следующее объявление:

class cls1 { public : int yy; class cls2 { public : int zz; }; };

Ответ:

 (1) cls1::cls2 c2; 

 (2) cls2 c2; 

 (3) cls2::cls1 c2; 


Упражнение 7:
Номер 1

Выберите правильные объявления дружественного класса:


Ответ:

 (1) class B{ ... }; class A { friend class B; }; 

 (2) class B{ ... }; class A { friend class A::B; }; 

 (3) class B{ ... }; class A { friend class B; }; class C { friend class A; }; 


Номер 2

Выберите правильное объявление дружественной функции:


Ответ:

 (1) class A { public: friend bool fun(A & obj1, A & obj2); }; 

 (2) class A { public: bool friend fun(A & obj1, A & obj2); }; 

 (3) class A { public: bool fun(A & obj1, A & obj2) friend; }; 


Номер 3
Выберите варианты правильного объявления классов?

Ответ:

 (1) class A { A* pNext; };  

 (2) class A { int Age; void Func(int x){ Age = x;} };  

 (3) class A { void F(); public: int Func(int x){ void* F();} };  


Упражнение 8:
Номер 1

Какие типы конструкторов используются для инициализации объектов?


Ответ:

 (1) конструкторы по умолчанию  

 (2) конструкторы с параметрами 

 (3) конструкторы копирования 

 (4) конструкторы виртуальные 

 (5) конструкторы статические 


Номер 2

Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором по умолчанию?


Ответ:

 (1) T();  

 (2) T(int, int); 

 (3) T(const A&); 


Номер 3

Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором копирования?


Ответ:

 (1) T();  

 (2) T(int, int); 

 (3) T(const T&); 


Упражнение 9:
Номер 1

Какие утверждения являются правильными?


Ответ:

 (1) конструкторы предназначены для инициализации объектов 

 (2) конструктор имеет возвращаемое значение – объект класса 

 (3) классу без конструктора предоставляется конструктор по умолчанию 

 (4) конструкторы нельзя перегружать 

 (5) конструкторы не наследуются 

 (6) можно определить указатель на конструктор 


Номер 2

Какие утверждения являются правильными?


Ответ:

 (1) имя деструктора совпадает с именем класса, но предваряется символом ~ 

 (2) деструктор может иметь возвращаемое значение 

 (3) классу без деструктора предоставляется деструктор по умолчанию 

 (4) деструкторы можно перегружать 

 (5) деструкторы не наследуются 

 (6) можно определить указатель на деструктор 


Номер 3

Какие служебные слова предназначены для указания видимости членов класса?


Ответ:

 (1) public 

 (2) private 

 (3) protected 

 (4) void 

 (5) const 

 (6) static 


Упражнение 10:
Номер 1

Какие служебные слова могут быть использованы в качестве типа класса?


Ответ:

 (1) class 

 (2) struct 

 (3) operator 

 (4) friend 

 (5) enum 


Номер 3
Выберите наиболее правильное определение функций-членов класса:

Ответ:

 (1) функции, объявляемые внутри описания класса 

 (2) функции, имеющие доступ к данным-членам класса 

 (3) функции, которые могут манипулировать объектами класса 

 (4) функции, определяющие интерфейс класса 


Упражнение 11:
Номер 1

Какими по умолчанию являются элементы структуры?


Ответ:

 (1) protected 

 (2) public 

 (3) private 


Номер 2

Какими по умолчанию являются элементы класса?


Ответ:

 (1) protected 

 (2) public 

 (3) private 


Номер 3

Объявлены классы:

class A { public: int a; A() { a = 0; }; }; class B : public A { public: B():A() {}; }; class C : protected A { public: C():A() {}; }; class D : private A { public: D():A(){}; }; Созданы объекты и ссылки: B* b = new B; C* c = new C; D* d = new D; Какие из следующих операторов приведут к ошибкам компиляции?

Ответ:

 (1) c->a = 7; 

 (2) A* p = (A*)c; 

 (3) d->a = 7; 

 (4) A* p = d; 


Упражнение 12:
Номер 1

Какой будет результат следующей программы?

class t { public: t() { s = 2; } ~t() {}; int s; int f(int a) { s++; return s * a; } class t2 { public : int i; }; }; main() { t obj_t; t::t2 obj_t2; obj_t2.i = 5; cout << (obj_t.f(2) + obj_t2.i) << endl; }

Ответ:

 (1) 11 

 (2) 10 

 (3) 12 

 (4) ошибка выполнения 


Номер 2

Какой будет результат следующей программы?

class t { public: t() { s = 4; } ~t() {}; int s; int f(int a) { s--; return s * a; } class t2 { public : int i; }; }; int main() { t obj_t; t::t2 obj_t2; obj_t2.i = 10; cout << (obj_t.f(2) + obj_t2.i) << endl; }

Ответ:

 (1) 15 

 (2) 12 

 (3) 16 

 (4) ошибка выполнения 


Номер 3

Какой будет результат следующей программы?

class t { public: t(int i, int j); ~t() {}; int s, m; class t2 { public : int i; }; }; t::t(int i, int j) { s = i; m = j; } int main() { t obj_t(5, 10); t::t2 obj_t2; obj_t2.i = 10; cout << (obj_t.s + obj_t.m + obj_t2.i) << endl; return 0; }

Ответ:

 (1) 15 

 (2) 10 

 (3) 25 

 (4) ошибка выполнения 




Главная / Программирование / Язык программирования C++ для профессионалов / Тест 5