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

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

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

Что такое конкретный тип?


Ответ:

 (1) представляет встроенные типы данных 

 (2) то же, что абстрактный тип 

 (3) создается пользователем для представления простых понятий 


Номер 2

Перечислите свойства абстрактного типа?


Ответ:

 (1) нельзя создать объект этого типа  

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

 (3) любой базовый класс должен быть абстрактным 

 (4) обязательно объявляется с ключевым словом abstract 

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


Номер 3

Приведите примеры конкретного типа:


Ответ:

 (1) списки  

 (2) целые числа 

 (3) строки 

 (4) символы 


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

Что произойдет, если чисто виртуальный метод не определить в производном классе?


Ответ:

 (1) ошибка компиляции 

 (2) не удастся создать объект данного класса 

 (3) будет вызываться метод базового абстрактного класса 

 (4) зависит от реализации С++ 


Номер 2

Что представляет собой обширный интерфейс?


Ответ:

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

 (2) объединение базовых классов представляющих какое-либо понятие 

 (3) объединение интерфейсов классов, представляющих множество понятий 


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

Что может представлять собой интерфейс?


Ответ:

 (1) абстрактный базовый класс  

 (2) класс обобщающий понятия, реализованные в других классах 

 (3) класс, связывающий программы на С++, с программами на других языках 


Номер 2

Что произойдет если вызвать delete для несуществующего указателя?


Ответ:

 (1) компилятор выдаст ошибку 

 (2) сбой в системе распределения памяти 

 (3) операция будет проигнорирована компилятором 


Номер 3

Перечислите принципы управления памятью


Ответ:

 (1) вся память, выделенная в конструкторе, должна освобождаться в деструкторе  

 (2) глобальные операторы new и delete должны быть обязательно перегружены в классе 

 (3) область, передаваемая оператору new должна быть достаточной для создания объекта 


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

Что делает оператор new?


Ответ:

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

 (2) выделяет пямять под объект 

 (3) освобождает память 


Номер 2

Когда освобождается память, выделенная для объекта?


Ответ:

 (1) когда вызывается оператор delete 

 (2) когда объект больше не используется 

 (3) если реализован сборщик мусора 


Номер 3

Реализован ли в стандарте С++ "сборщик мусора"?


Ответ:

 (1) да 

 (2) нет 


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

Можно ли перегружать операции new и delete?


Ответ:

 (1) можно 

 (2) можно только для отдельного класса 

 (3) можно только глобально 

 (4) нельзя 


Номер 2
Узловой класс:

Ответ:

 (1) пользуется сервисом, предоставляемым базовым классом 

 (2) предоставляет виртуальные функции и защищенный интерфейс для базовых классов 

 (3) не зависит от своих базовых классов 


Номер 3

К какому виду относится класс, объявленный так:

class dim { public: virtual void add(X*) = 0; virtual void sub(X*) = 0; virtual int sum() = 0; virtual ~dim(){}; }

Ответ:

 (1) конкретный тип 

 (2) абстрактный тип 

 (3) узловой класс 

 (4) интерфейсный класс 

 (5) управляющий класс 


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

Какая функция обеспечивает возможность использования имени в качестве уникального ключа объекта?


Ответ:

 (1) const char* name()const; 

 (2) int has_base(const Type_info*, int direct=0) const; 

 (3) int same(const Type_info* p) const; 

 (4) int can_cast(const Type_info* p) const; 


Номер 2

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


Ответ:

 (1) класс, образующий дерево классов, предоставляемых программистом или библиотечных 

 (2) класс с обширным интерфейсом 

 (3) чисто прикладной класс 


Номер 3

Какую функцию можно использовать для определения, является ли заданный класс базовым для другого класса?


Ответ:

 (1) const char* name()const; 

 (2) int has_base(const Type_info*, int direct=0) const; 

 (3) int same(const Type_info* p) const; 

 (4) int can_cast(const Type_info* p) const; 


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

Интерфейсный базовый класс - это:


Ответ:

 (1) класс, предназначенный для совместного использования полезных функций 

 (2) класс, использующий только функции-подстановки 

 (3) абстрактный базовый класс, который представляет абстрактный тип, реализуемый конкретными типами, предназначенный для адаптации интерфейса 


Номер 2

В каких случаях использование интерфейсных классов обеспечивает более эффективный интерфейс?


Ответ:

 (1) если при слиянии двух иерархий с помощью множественного наследования в каждом из них используются виртуальные функции с одним именем, производящие разные операции 

 (2) если нужно организовать интерфейс между программой на С++ и программой на другом языке 

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


Номер 3

Каково назначение управляющих классов?


Ответ:

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

 (2) управляющий класс предназначен для управления памятью, выделяемой объектам 

 (3) управляющий класс определяет интерфейс объекта и содержит ссылку на содержательную часть объекта 


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

Что подразумевает термин "сборщик мусора"?


Ответ:

 (1) функция, осуществляющая управление памятью 

 (2) функция, предназначенная для уничтожения объектов 

 (3) часть системы, которая определяет, в какой момент объект может быть уничтожен, и уничтожает его 


Номер 2

Для чего предназначен сервер заявок?


Ответ:

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

 (2) для хранения адресов объектов и указателей на соответствующие им функции очистки памяти 

 (3) для удаления объектов, не удаленных с помощью явных операций 


Номер 3

Может ли быть освобождена память, выделенная объектам класса Х с помощью класса Рool?


Ответ:

 (1) может при вызове оператора delete 

 (2) не может до окончания работы программы  

 (3) может, при уничтожении объекта Pool 


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

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


Ответ:

 (1) постоянная связь между интерфейсом, заданным абстрактным типом, и реализацией, представленной конкретным типом 

 (2) теряются преимущества виртуальных функций 

 (3) объект абстрактного класса всегда имеет один и тот же размер, а классы, отражающие реальные понятия, могут иметь память разных размеров 

 (4) невозможно разделить интерфейс класса и его реализацию 


Номер 2

Определены классы:

class window { virtual void move(); }; class figure { virtual void move(); }; class cwindow : public window { virtual int wmove(int) = 0; void move() { wmove(); } }; class cfigure { virtual int fmove(int) = 0; void move() { fmove(); } }; class wind_fig : public cwindow, public cfigure { void wmove(); void fmove(); }; К какому виду относится класс wind_fig?

Ответ:

 (1) конкретный тип 

 (2) абстрактный тип 

 (3) узловой класс 

 (4) интерфейсный класс 

 (5) управляющий класс 


Номер 3

К какому виду относится класс, объявленный так:

class vector_handler { vector* p; public: vector* operator->() { return p; } vector_handler(vector* pp) : p(pp) { } };

Ответ:

 (1) конкретный тип 

 (2) абстрактный тип 

 (3) узловой класс 

 (4) интерфейсный класс 

 (5) управляющий класс 


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

Что такое библиотека?


Ответ:

 (1) предоставляет решение конкретной задачи для конкретной области приложения 

 (2) предоставляет решение для множества задач 

 (3) может использоваться в разнообразных окружениях 


Номер 2

Какая из функций является чисто виртуальной?


Ответ:

 (1) virtual void f(); 

 (2) virtual void f(int x)=0; 

 (3) virtual void f(){}; 


Номер 3

Может ли виртуальная функция быть встроенной?


Ответ:

 (1) может 

 (2) не может 

 (3) может, только если ее объявить как inline 


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

Может ли деструктор быть виртуальным?


Ответ:

 (1) может 

 (2) не может 


Номер 3

Может ли статическая функция-член быть виртуальной?


Ответ:

 (1) может 

 (2) не может 


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

В каком случае подкласс абстрактного класса сам не является абстрактным?


Ответ:

 (1) когда в нем переопределена хотя бы одна чисто виртуальная функция 

 (2) когда в нем переопределены все чисто виртуальные функции 

 (3) подкласс абстрактного класса никогда не может быть абстрактным 


Номер 2

Выберите верные утверждения для операторов new и delete, перегруженных в базовом классе:


Ответ:

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

 (2) они не могут быть переопределены в производных классах 

 (3) в одном классе можно определить по несколько этих операторов с разным описанием 


Номер 3

Можно ли определить оператор new, принимающим несколько параметров?


Ответ:

 (1) нельзя 

 (2) можно 




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