Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тестовые вопросы по ООП .doc
Скачиваний:
1
Добавлен:
16.12.2018
Размер:
361.47 Кб
Скачать

Int f (int X) const;

[a] Значения данных (атрибутов) текущего объекта ( который вызовет эту функцию) не могут быть изменены

[a] Функция возвращает константу

[a] Значение аргумента не будет подвергаться изменению

[a] Операции тела функции не могут быть модифицированы при изменении функциональности класса

[a] Служит для поиска случайных ошибок при попытке изменения класса

[q]3:1 Укажите ошибку в описании класса Point?

#include < iostream.h >

class Point

{ int x,y;

Point (int a, int b) { x = a; y = b; }

void Print (){ cout << x << y;}

};

[a] Члены-данные класса x и y не доступны функциям класса

[a] Отсутствует тип возвращаемого значения у конструктора

[a] Отсутствует тип возвращаемого значения функции Print

[a] Отсутствует спецификатор private перед описанием переменных Х и Y

[a] Члены-данные класса x и y доступны функциям класса

[q]3:1 Как объявить многомерный массив?

[a] Запишите отдельный набор индексов для каждого измерения. Например, массив SomeArray[2][3][2] является трехмерным. Первое измерение содержит два элемента, второе–три, а третье-два.

[a] Запишите общий набор индексов для каждого измерения. Например, массив SomeArray[2][3][2] является трехмерным. Первое измерение содержит два элемента, второе–три, а третье-два.

[a] Хватит одной записи отделного набора индекса для одного измерения

[a] Не возможно объявить многомерный массив

[a] Все ответы не правильны

[q]3:1 Что такое локальная переменная?

[a] Это переменная, передаваемая или объявленная внутри некоторого блока (обычно функции). Она действует только в пределах этого болка

[a] Это переменная, передаваемая или объявленная снаружи некоторого блока. функции). Она действует за пределами блока

[a] Это переменная, передаваемая, но не объявленная внутри некоторого блока

[a] Все ответы неправильны

[a] Такой переменной не существует

[q]3:1 Что такое ссылка?

[a] Это псевдоним переменной объекта

[a] Это тип переменной объекта

[a] Это адрес переменной объекта

[a] Это оператор ссылки (&) и имя ссылки

[a] Это такая же стандартная переменная

[q]3:1 Сколько элементов содержит массив SomeArray[10][5][20]?

[a] 10*5*20=1000

[a] 10*5*20=100

[a] 10*3*20=1000

[a] 1*5*20=1000

[a] 1*5*20=10

[q]3:1 Что такое полиморфизм?

[a] Это возможность вызова одноименных методов для объектов разных, взаимосвязанных типов с учетом различий в выполнении функции для разных типов. В С++ полиморфизм реализуется путем создания производных классов и виртуальных функций

[a] Это возможность вызова одноименных методов для объектов одинаковых, взаимосвязанных типов с учетом различий в выполнении функции для одинаковых типов. В С++ полиморфизм реализуется путем создания производных классов и виртуальных функций

[a] Это возможность вызова разноименных методов для объектов разных, взаимосвязанных типов с учетом различий в выполнении функции для разных типов. В С++ полиморфизм реализуется путем создания производных классов и виртуальных функций.

[a] Это возможность вызова параметров для объектов разных, взаимосвязанных типов с учетом различий в выполнении функции для разных типов. В С++ полиморфизм реализуется путем создания производных классов и виртуальных функций

[a] Все ответы не правильны

[q]3:1 Что такое «объектная декомпозиция»?

[a] Процесс разбиения предметной области на части, соответствующие классам и объектам предметной области

[a] Такое отношение между классами, когда один является частью другого

[a] Реализация включений нескольких однотипных объектов в один агрегатный объект

[a] Методология, при которой мир рассматривается как совокупность объектов, согласованно действующих для обеспечения требуемого поведения

[a] Совокупность основополагающих принципов, лежащих в основе объектно-ориентированного проектирования

[q]3:1 Имеются ли ошибки в следующем описании класса Point?

#include < iostream.h >

class Point

{ private:

int x;

public:

Point (){}

void Print () { cout << “x=” <<x;}

};

[a] Нет, не имеется

[a] Нельзя перед членами-данными класса ставить спецификатор доступа private, так как это очевидно по умолчанию

[a] Поскольку класс описывается с ключевым словом «class», слово private- излишне

[a] Конструктор должен иметь параметры

[a] Члены - данные класса должны определяться с начальными значениями

[q]3:1 Наиболее важное применение родовой функции:

[a] независимо от типа данных определить суть алгоритма;

[a] при определении базового набора операций к разным типам данных;

[a] для оперирования с типом данных, который она получает в качестве параметра;

[a] для создания функции, которая может автоматически перегружаться сама;

[a] для создания шаблона(или каркаса), который описывает то, что будет делать функция.

[q]3:1 Объявление класса является его интерфейсом или реализацией?

[a] Объявление класса является его интерфейсом, который сообщает клиентам класса, как с ним взаимодействовать. Реализация класса – это набор функций-членов, сохраняемых обычно в файле с расширением .срр.

[a] Объявление класса является его реализацией, который сообщает клиентам класса, как с ним взаимодействовать. Интерфейс класса – это набор функций-членов, сохраняемых обычно в файле с расширением .срр.

[a] Объявление класса является его интерфейсом, который сообщает клиентам класса, как с ним взаимодействовать. Реализация класса – это набор функций-членов, сохраняемых обычно в файле с расширением .hрр

[a] Объявление класса является его реализацией, который сообщает клиентам класса, как с ним взаимодействовать. Интерфейс класса – это набор функций-членов, сохраняемых обычно в файле с расширением .hрр.

[a] Все ответы не правильны

[q]3:1 Пусть имеем совокупность понятий, кандидатов в классы. Отметьте совокупность понятий, которые можно смело отнести к классам, принадлежащих иерархии геометрических фигур:

[a] Фигура, круг, квадрат.

[a] Фигура, координаты центра, квадрат.

[a] Цвет, размер, координаты центра.

[a] Фигура, меню, размер.

[a] Круг, квадрат, координаты центра.

[q]3:1 Благодаря обработке исключительных ситуаций можно:

[a] упростить управление и реакцию на ошибки во время выполнения программ;

[a] сделать программу надежной и устойчивой к ошибкам;

[a] обеспечить программу встроенным механизмом обработки ошибок ;

[a] структурировать текст программы;

[a]обеспечить нормальное завершение программы.

[q]3:1 Могут ли функции-члены класса быть закрытыми?

[a] Да. Как функции-члены, так и переменные-члены класса могут быть закрытыми.

[a] Нет. Не могут.

[a] Все ответы не правильны.

[a] Да. Как функции-члены, так и функции класса могут быть закрытыми.

[a] Нет. Как функции-члены, так и переменные-члены не могут быть закрытыми.

[q]3:1 Поведение объектов характеризуется:

[a] Набором реакций объекта на получаемые сообщения. Каждая реакция, при этом, зависит от состояния объекта.

[a] Реакцией объекта на получаемое сообщение

[a] Наличием внутреннего состояния объекта.

[a] Порядком выполнения объектом операций в ответ на получаемое сообщение.

[a]Полным списком возможных операций объекта

[q]3:1 В чем разница между символами комментариев // и /* ?

[a] Первый – однострочный, т.е. распространяется до конца строки, а второй – пока не встретится символ завершения комментария

[a] Разницы никакой нет

[a] Оба символа могут обеспечивать многострочный комментарий

[a] Оба символа обеспечивают только однострочный комментарий

[a] Разница лишь в написании символов

[q]3:1 Если перечисление (enum) задано следующим образом, то каково значение элемента Blue?

enum Color {WHITE, BLACK=100, RED, BLUE, GREEN=300};

[a] BLUE=102

[a] BLUE=103

[a] BLUE=104

[a] BLUE=105

[a]BLUE=106

[q]3:1 Если объявить два объекта класса Cat, могут ли они иметь различные значения переменных-членов itsAge?

[a] Да. Каждый объект класса имеет собственные переменные-члены.

[a] Нет. Объекты класса имеют общие переменные-члены.

[a] Нет. Каждый объект класса не имеет собственные переменные-члены.

[a] Все ответы не правильны.

[a]Нет. Каждый объект класса имеет общие переменные-члены.

[q]3:1 Среди диаграмм UML наиболее часто используемой является диаграмма:

[a] классов

[a] вариантов использования (прецедентов)

[a] пакетов

[a] взаимодействий

[a]деятельности

[q]3:1 Каким образом в программе можно вводить удобные обозначения для сложных описаний типов?

[a] Использовать спецификатор typeid

[a] Введением нового типа

[a] Использованием базовых типов и их сочетаний

[a] Конструированием производных типов

[a] С помощью различных сочетаний служебных слов

[q]3:1 Что представляет собой указатель this?

[a] Это скрытый параметр, который указывает на сам объект

[a] Это закрытый параметр, который указывает на сам объект.

[a] Это открытый параметр, который указывает на сам объект.

[a] Это скрытый параметр, который указывает на другой объект.

[a] Это скрытый параметр, который не указывает на сам объект

[q]3:1 Как выглядел бы заголовок функции-члена Meow класса Cat, которая не принимает параметров и возвращает значение void?

[a] Заголовок функции-члена Meow() класса Cat, которая не принимает параметров и возвращает значение типа void, должен иметь следующий вид:

void Cat::Meow()

[a] Заголовок функции-члена Meow() класса Cat, которая не принимает параметров и возвращает значение типа void, должен иметь следующий вид:

void Cat<<Meow()

[a] Заголовок функции-члена Meow() класса Cat, которая не принимает параметров и возвращает значение типа void, должен иметь следующий вид:

void Cat:;Meow()

[a] Заголовок функции-члена Meow() класса Cat, которая не принимает параметров и возвращает значение типа void, должен иметь следующий вид:

void Cat::Meow{}

[a] Заголовок функции-члена Meow() класса Cat, которая не принимает параметров и возвращает значение типа void, должен иметь следующий вид:

void Cat>>Meow()

[q]3:1 Что обозначает следующий формат: type1 * имя (type2);

[a] Функция, принимающая аргумент типа type2 и возвращающая указатель на объект типа type1

[a] Указатель на функцию, принимающую параметр типа type2 и возвращающую значение типа type1

[a] Указатель на функцию, принимающую параметр типа type2 и возвращающую указатель на объект типа type1

[a] Ссылка на функцию, возвращающую значение типа type1

[a] Функция с параметром type2 и результатом типа type1

[q]3:1 Что такое дружественная функция?

[a] Функция, объявленная дружественной, обладает правом доступа к защищенным и закрытым членам данного класса.

[a] Функция, объявленная дружественной, обладает правом доступа к не защищенным и закрытым членам данного класса

[a] Функция, объявленная дружественной, обладает правом доступа к защищенным и открытым членам данного класса

[a] Все ответы не правильны

[a] Функция, объявленная дружественной, не обладает правом доступа к защищенным и закрытым членам данного класса

[q]3:1 В чем разница между определением и объявлением?

[a] Определение резервирует память, а объявление – нет. Объявления часто являются и определениями, за исключением объявлений классов, прототипов функций и новых типов с помощью ключевого слова typedef.

[a] Все ответы не правильны

[a] Определение не резервирует память, а объявление – да. Объявления часто являются и определениями, за исключением объявлений классов, прототипов функций и новых типов с помощью ключевого слова typedef.

[a] Определение резервирует память, а – нет. Объявления часто являются и определениями, за исключением объявлений классов, прототипов функций и новых типов с помощью ключевого слова typerun.

[a] Нет никакой разницы

[q]3:1 Какой смысл носит тип отношения между классами, изображаемый стрелкой, с полым треугольником на одном конце ?

[a] Наследование

[a] Ассоциация

[a] Зависимость

[a] Реализация

[a] Агрегация

[q]3:1 Инкапсуляция-это:

[a] способ связывания атрибутов и методов для формирования объектов;

[a] основной принцип в объектно-ориентированном программировании;

[a] способ описания атрибутов класса;

[a] способ описания методов класса;

[a] определение правил для управления доступом к членам.

[q]3:1 Спецификатор доступа - это:

[a] ключевое слово языка программирования, определяющее получение доступа к членам класса;

[a] обязательное ключевое слово для атрибутов класса;

[a] обязательное ключевое слово доступа к методам класса;

[a] ключевое слово доступа к переменным экземпляра класса;

[a]ключевое слово применяемое программистом по своему усмотрению.

[q]3:1 Спецификатор доступа private: определяет:

[a] атрибуты и процедуры, доступные только методам, определенным в классе;

[a] атрибуты, доступные из main;

[a] атрибуты и процедуры, доступные процедурам, определенным в классе и его наследнике;

[a] доступ из наследуемого класса;

[a]доступ к переменным экземпляра класса.

[q]3:1 Подкласс наследует:

[a] public: и protected: - члены базового класса ;

[a] public: - члены базового класса;

[a] только protected: - члены базового класса;

[a] не private: - члены базового класса;

[a]все методы базового класса, кроме дружественных.

[q]3:1 Доступны ли члены базового класса из производного в случае, когда их имена в производном определены по-новому?

[a] не доступны;

[a] доступны;

[a] доступны все со спецификатором protected:;

[a] доступны все со спецификатором public:;

[a]зависит от реализации.

[q]3:1 К какому компоненту класса доступ возможен только после его инициализации?

[a] члену- данному со модификатором доступа static;

[a] члену- данному со спецификатором доступа public:;

[a] члену- данному со спецификатором доступа private:;

[a] к переменной экземпляра класса;

[a] члену- данному со спецификатором доступа protected:

[q]3:1 Учитывая объявления: char c; const char cc= ‘x’; char*pc; const char*pcc;

const char*const cpcc =&cc;

Какое из следующих присваиваний правильное:

[a] pcc = &c;

[a] cc = c;

[a] pc = &cc;

[a] pc = pcc;

[a]pc = cpcc.

[q]3:1 Полиморфизм реализуется с помощью:

[a] перегрузки методов или с помощью виртуальных функций в иерархии наследования.

[a] разнообразия атрибутов при описании абстракции;

[a] разнообразия методов, характеризующих поведения абстракции;

[a] перегрузки методов в иерархии наследования;

[a]виртуальных функций;

[q]3:1 Каким образом для дружественной функции осуществляется доступ к закрытым элементам класса?

[a] через объект этого класса, который объявлен внутри функции или передан ей

[a] через указатель на объект класса;

[a] через обращение к функции- члену класса;

[a] через объект этого класса;

[a] через свой параметр;

[q]3:1 Функции можно перегружать, благодаря:

[a] отличиям в числе или типе их параметров;

[a] отличиям в их именах или типе их результатов;

[a] отличиям в числе их параметров ;

[a] возможности наследования в иерархии классов;

[a]особенностям реализации.

[q]3:1 Наиболее важное применение ссылки:

[a] передача ее в качестве параметра функции;

[a] как скрытый указатель;

[a] как еще одно имя переменной;

[a] для передачи ее в функцию;

[a]для возврата ее из функции.

[q]3:1 В соответствии с семантикой бинарных операций C++, операции- функции с названиями operator =, operator [], operator → должны быть:

[a] нестатическими(обычными) функциями класса;

[a] функциями класса без параметров

[a] статическими функциями класса;

[a] глобальными функциями;

[a] дружественными функциями;

[q]3:1 Механизм виртуального вызова может быть подавлен с помощью:

[a] явного использования полного квалифицированного имени;

[a] полного уточненного имени функции;

[a] глобальной функции;

[a] статической функции класса;

[a] явного вызова с помощью объекта производного класса.

[q]3:1 Наиболее важное применение родовой функции:

[a] независимо от типа данных определить суть алгоритма;

[a] при определении базового набора операций к разным типам данных;

[a] для оперирования с типом данных, который она получает в качестве параметра;

[a] для создания функции, которая может автоматически перегружаться сама;

[a]для создания шаблона(или каркаса), который описывает то, что будет делать функция

[q]3:1 Наиболее полное определение родового класса:

[a] класс, в котором определены все необходимые алгоритмы, а фактические типы обрабатываемых данных задаются в виде параметров позже, при создании объектов этого класса;

[a] класс, в котором определены все необходимые алгоритмы;

[a] класс, который содержит общую логику работы;

[a] это библиотека, предоставляющая часто используемые алгоритмы и родовые типы данных;

[a] это мощный инструмент экономии времени при программировании

[q]3:1 Благодаря обработке исключительных ситуаций можно:

[a]упростить управление и реакцию на ошибки во время выполнения программ;

[a] сделать программу надежной и устойчивой к ошибкам;

[a] обеспечить программу встроенным механизмом обработки ошибок ;

[a] структурировать текст программы;

[a] обеспечить нормальное завершение программы.

[q]3:1 Наиболее важное применение оператора dynamic- cast:

[a] упрощает логику приведения типа указателя базового класса к типу указателя производного класса;

[a] упрощает логику программы;

[a] можно использовать, как и оператор typeid, с классами- шаблонами;

[a] обеспечивает более безопасный и интуитивно понятный способ выполнения операции преобразования типа;

[a] в языках программирования, в которых реализуется полиморфизм.

[q]3:1 Что образует ядро библиотеки стандартных шаблонов?

[a] контейнеры, алгоритмы и итераторы;

[a] контейнеры;

[a] алгоритмы :

[a] итераторы;

[a] распределители памяти, предикаты и функции сравнения.

[q]3:1 Каким образом можно получить доступ к членам вектора?

[a] либо через оператор индекса, либо через итератор .

[a] через оператор индекса;

[a] через указатель;

[a] через итератор;

[a] либо через оператор индекса, либо через указатель;

[q]3:1 Каково главное достоинство строкового класса?

[a] с объектами типа string можно обращаться так же, как и со встроенными

типами данных типа C++;

[a] возможность манипулирования со строками с помощью обычных операторов

присваивания, конкатенации и сравнения;

[a] объекты типа string можно совершенно свободно указывать в выражениях вместе с ‘\0’ ;

[a] нет необходимости задавать размеры строк;

[a] объекты типа string автоматически настраиваются на хранение строк требуемой длины .

[q]3:1

[q]3:1 Доступны ли члены базового класса из производного в случае, когда их имена в производном определены по-новому?

[a]не доступны;

[a] доступны;

[a] доступны все со спецификатором protected:;

[a] доступны все со спецификатором public:;

[a] зависит от реализации.

33