Главная страница

Тест по курсу ООАиП 2021_011. Экзаменационный тест по дисциплине Объектноориентированный анализ и программирование


Скачать 98 Kb.
НазваниеЭкзаменационный тест по дисциплине Объектноориентированный анализ и программирование
Дата03.06.2022
Размер98 Kb.
Формат файлаdoc
Имя файлаТест по курсу ООАиП 2021_011.doc
ТипДокументы
#567565

Экзаменационный тест по дисциплине

«Объектно-ориентированный анализ и программирование»


Используется 3 типа заданий:

  1. С выбором ответа: На каждый вопрос дано по 4 ответа: А, В, С, Д. Обведите один правильный ответ.

  2. Написать определение данному понятию

  3. Вставить команды


1. Какая из перечисленных функций не может быть конструктором?

A. String (String & s) B. String (); C. void String () D. String (const int a)

2. С помощью чего реализуется принцип полиморфизма в С++?

A. наличия множественного наследования. B. наличия виртуальных методов.

C. использование виртуального наследования. D. наличия абстрактных классов.

3. Отметьте правильное утверждение для абстрактного класса для языка С++.

A. В абстрактном классе не описываются методы вообще.

B. Абстрактный базовый класс навязывает определенный интерфейс всем производным из него классам.

C. Класс, у которого все методы чисто-виртуальные, называется абстрактным

D. Невозможно создать объект абстрактного класса.

4. В программе описаны класс и указатель на объект:

class A {public: int a, b, c; };



A * obj = new A;

Как обратиться к полю c?

A. obj.c B. obj A -> -> с C. obj-> с D. obj-> A.с

5. Укажите правильное объявление виртуального метода в С++, который принимает одно целочисленное значение и возвращает void.

A. void SomeFunction (int х) virtual;

B. virtual void SomeFunction (int х);

C. virtual SomeFunction (int х);

D. virtual void SomeFunction (int * x);

6. Есть функция: void f (int i; int j=2) {}; Впишите варианты вызова функции f и значения i и j:

Вызов: _______ i =___ j =___ Вызов: _______ i =___ j =___ Вызов: _______ i =___ j =___

7. В программе описаны абстрактный класс А и производный от этого класса - класс А1. Какой фрагмент кода заведомо неверный?

A. A a1; A1 a2; B. A1 a1; C. A * a = new A1; D. A1 a1; A1 a2;

8. Даны 2 фрагмента программы и 2 возможных результата их работы.

Ф1. class A { protected: int x;

public: A(){cout<< "Constr-r A default \n"; };

A(int i){cout<< "Constr-r A initialized \n"; }; };

class B { protected: int y;

public: void Show(void) {cout<< "function Show \n"; };

};

int main() { A aobj(25); A a1obj; B b1obj; b1obj.Show(); return 0; }

Ф2. class A { protected: int x;

public: A(){cout<< "Constr-r A default \n"; };

A(int i){cout<< "Constr-r A initialized \n"; }; };

class B: public A { protected: int y;

public: void Show(void) {cout<< "function Show \n"; };

};

int main() { A aobj(25); A a1obj; B b1obj; b1obj.Show(); return 0; }

P1.



P2.



Найдите верное соответствие фрагмента и результата

А. Ф1– Р1 Ф2– Р2 В. Ф1– Р2 Ф2 – нет ответа С. Ф1 – Р1 Ф2 – нет ответа D. Ф1– Р2 Ф2 – Р1

9. Какая функция, не являющаяся методом класса, имеет доступ к его защищенным элементам?

A. Шаблонная. B. Полиморфная. C. Виртуальная. D. Дружественная.

10. Какой из перечисленных методов может быть конструктором для класса TString в языке С++?

A. TString * TString (); B. TString (int х); C. void TString (); D. const TString (int a);

11. Назовите принцип объектно-ориентированного программирования, который заключается в объединении полей и методов объекта с целью обеспечения сохранности данных.

A. Наследование. B. Сочетание. C. Инициализация. D. Инкапсуляция.

12. Вызовет ли данный код ошибку компиляции?

class Rectangle {public: int a, b; int sum ();

int square (); Rect (); };

A. Ошибки нет, все записано верно.

B. Ошибка: никакой из идентификаторов в С ++ не может начинаться со знака «».

C. Ошибка: имя деструктора не может начинаться с маленькой буквы.

D. Ошибка: имя деструктора должно совпадать с именем класса.

13. Что будет выведено на экран по окончанию программы?

class A { public: A(){this->_num = 0;}

A(int num){this->_num = num; cout<_num;}

A(){cout<_num;}

private: int _num; };

int main(void){ A val(4); return 0; }
A. Ничего выведено не будет, т. к. поле “int _num“ скрыто от конструктора;

B. 4; C. 44;

D. Ничего выведено не будет, т. к. имя поля не должно начинаться с нижнего подчёркивания;

14. Какой из вариантов записи абстрактного класса в С++ является правильным?

A. abstract class A {virtual int f () = 0;}; B. class A {virtual int f ();};

C. class A {virtual int f () = 0;} abstract; D. class A {virtual int f ()= 0;};

15. Укажите правильный вариант доступа к элементам класса (язык С ++), описанных следующим образом:

class my {

char s;

public: double Z;

int f (int c, int d) {return c + d;};

} T1, T2;

A. T2-> f (2,1); B. T1.s = ‘#’; C. T1.Z = 23.1; D. my.T2-> s = ‘L‘;

16. Выберите верное утверждение о деструкторе класса в С ++.

A. Деструктор не содержит параметров.

B. Деструктор принимает в качестве параметра адрес того объекта, который нужно уничтожить.

C. Деструктор принимает в качестве параметра указатель this.

D. Деструктор принимает в качестве параметра тот объект, который нужно уничтожить.

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

A. public; B. protected; C. private; D. static;

18. Дана программа:

class X {

protected: int x;

public:

X(): x(0){cout<<" x="<
X(int i):x(i) { cout<< " x="<
class Y: public X {

protected: int y;

public:

Y() {y=1; cout<<" y="<
Y(int i, int j=15):X(i)

{y=j; cout<<" y="<

int main()

{

X obj_x(5);

Y obj_y(7);

}

Что выведется на экран после ее работы:


19. Что напечатает следующий код при создании объекта (экземпляра) класса X:

class Y { public: Y() { cout<<"Y"; } };

class Z { public: Z() { cout<<"Z"; } };

class X : public Z { private: Y m_objY;

public: X(){ cout<<"X"; } }; 

int main() {X obj; return 0;}

A. X; B. YX; C. ZYX; D. ZX;

20. Что будет выведено на экран по окончанию программы?

class user {private: int id; static int next_id;

public: static int next_user_id(){next_id++; return next_id;}

user(){id = user::next_id++;}

};

int user::next_id = 0;

int main() {user obj; user obj2;

cout<
A. 3; B. 2; C. 0; D. 1;

21. Что понимается под определением в одной области действия нескольких функций с одинаковым именем, но различными параметрами?

A. Наследование; B. Дружественность; C. Переопределение; D. Перегрузка;

22. Есть класс

class DD {

private: int x; int y;

public: void f1(int d, int p) { x = d; y = p; } };

В следующем фрагменте замените фразы на команды:

int main() {

создание объекта класса; ______________________

вызов метода f1; ________________________________

return 0;}

23. Чем обличается класс от объекта?_____________________________________________________________________________

24. Что такое метод?________________________________________________________________

25. Может ли метод быть приватный?_______

26. Можно в методах присваивать параметрам значения по умолчанию?________

27. Чем отличается модификатор доступа protected:

от модификатора private_______________________________________________________

от модификатора public_______________________________________________________



написать администратору сайта