игра брюс 2048
Главная / Программирование / Объектно-ориентированное программирование и программная инженерия / Тест 1

Объектно-ориентированное программирование и программная инженерия - тест 1

Упражнение 1:
Номер 1
При описании математических структур – моноида, группы и кольца - Вы создали три класса, связав их отношением наследования. Укажите правильный порядок наследования, начиная с родительского класса?

Ответ:

 (1) группа, кольцо, моноид 

 (2) группа, моноид, кольцо 

 (3) кольцо, моноид, группа 

 (4) кольцо, группа, моноид 

 (5) моноид, группа, кольцо 

 (6) моноид, кольцо, группа 


Номер 2
При моделировании 7-и уровневой классификации Линнея создан объект prima класса "Примат". (В классификации Линнея это уровень – отряд. Согласно Линнею, к приматам относятся люди, обезьяны, летучие мыши, ленивцы). Какие утверждения справедливы по отношению к этому объекту?

Ответ:

 (1) он полностью описывает все свойства приматов - прикладных математиков 

 (2) он описывает некоторые свойства прикладных математиков 

 (3) если создан объект homo класса "Человек Разумный", то возможно присваивание: homo := prima 

 (4) если создан объект homo класса "Человек Разумный", то возможно присваивание: prima := homo 


Номер 3
При моделировании транспортной системы Traffic созданы объекты yellow_taxi класса TAXI и объект transport класса VEHICLE. Какие утверждения справедливы по отношению к этим объектам:

Ответ:

 (1) эти объекты принадлежат разным классам и не имеют ничего общего 

 (2) объект yellow_taxi обладает всеми свойствами объекта transport 

 (3) объект transport обладает всеми свойствами объекта yellow_taxi 

 (4) возможно присваивание yellow_taxi := transport 

 (5) возможно присваивание transport := yellow_ taxi 


Упражнение 2:
Номер 1
При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

Ответ:

 (1) если класс В наследует от А, то А родитель В 

 (2) если класс А родитель В, то В наследник А 

 (3) наследник и потомок эквивалентные понятия 

 (4) если класс В является наследником А, то В является потомком А 

 (5) если класс В является потомком А, то В является наследником А 


Номер 2
При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

Ответ:

 (1) класс А является своим потомком 

 (2) класс А является своим предком 

 (3) если класс А является наследником класса В, а класс В является наследником класса С, то класс А является наследником класса С 

 (4) если класс А является потомком класса В, а класс В является потомком класса С, то класс А является потомком класса С 


Номер 3
При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

Ответ:

 (1) класс А является своим правильным потомком 

 (2) класс А является своим правильным предком 

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

 (4) если класс А является правильным потомком класса В, а класс В является правильным потомком класса С, то класс А является правильным потомком класса С 


Упражнение 3:
Номер 1
Для отображения отношений между классами Eiffel Studio позволяет построить диаграмму классов. Какие утверждения справедливы для этой диаграммы?

Ответ:

 (1) одинарная линия связывает родителя и его наследника 

 (2) одинарная линия связывает клиента и его поставщика 

 (3) двойная линия связывает родителя и его наследника 

 (4) двойная линия связывает клиента и его поставщика 


Номер 2
Для отображения отношений между классами Eiffel Studio позволяет построить диаграмму классов. Какие утверждения справедливы для этой диаграммы?

Ответ:

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

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

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

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


Номер 3
Eiffel Studio позволяет отображать различные облики класса. Плоский облик класса отображает:

Ответ:

 (1) только компоненты, введенные в классе 

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

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

 (4) все компоненты, введенные как самим классом, так и его предками 


Упражнение 4:
Номер 1
Полиморфизм - одно из важнейших понятий, связанных с наследованием. Полиморфными могут быть:

Ответ:

 (1) присваивание 

 (2) замена аргумента при вызове метода 

 (3) класс 

 (4) сущность 

 (5) выражение 

 (6) оператор выбора 

 (7) контейнерная структура данных 


Номер 2
Полиморфизм - одно из важнейших понятий, связанных с наследованием. Какие высказывания справедливы для присваивания?

Ответ:

 (1) присваивание всегда рассматривается как полиморфное 

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

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

 (4) при полиморфном присваивании тип источника должен быть потомком типа цели 

 (5) при полиморфном присваивании тип цели должен быть потомком типа источника 


Номер 3
Полиморфизм - одно из важнейших понятий, связанных с наследованием. Какое высказывания справедливы для присваивания?

Ответ:

 (1) только ссылочное присваивание может быть полиморфным 

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

 (3) как ссылочное, так и значимое присваивание может быть полиморфным 

 (4) полиморфное присваивание предполагает трансформацию значения 


Упражнение 5:
Номер 1
Трансформация и полиморфное присоединение – два механизма, поддерживающие семантику присваивания и аналогичную семантику замены формальных аргументов при вызове метода. Какие утверждения справедливы для этих механизмов?

Ответ:

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

 (2) если применяется полиморфное присоединение, то может выполняться и трансформация объекта источника 

 (3) если применяется полиморфное присоединение, то трансформация объекта источника не применяется 

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

 (5) трансформация допустима для ссылочного присваивания, если оно не является полиморфным 


Номер 2
Какие утверждения справедливы для полиморфного контейнера:

Ответ:

 (1) может хранить объекты разных типов 

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

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

 (4) контейнер является полиморфным, если таковыми являются сущности, задающие элементы контейнера 

 (5) структура типа ARRAY[REAL] является полиморфной 


Номер 3
Только одно из утверждений относительно полиморфизма и динамического связывания является справедливым. Какое?

Ответ:

 (1) метод, описываемый в некотором классе А, может вызывать только методы этого класса 

 (2) метод, описываемый в некотором классе, может вызывать только методы этого класса и методы, описанные в классах, являющихся предками класса А 

 (3) метод, описываемый в некотором классе, может вызывать методы этого класса, методы, описанные в классах, являющихся предками класса А, и методы потомков класса А, несмотря на то, что эти потомки еще не созданы в момент создания класса А 

 (4) если x – объект класса А и М – метод этого класса, то вызов x.M(…) всегда будет вызывать метод М класса А 


Упражнение 6:
Номер 1
Какая комбинация стратегий применяется в Eiffel?

Ответ:

 (1) динамический анализ типов и динамическое связывание 

 (2) динамический анализ типов и статическое связывание 

 (3) статический анализ типов и динамическое связывание 

 (4) статический анализ типов и статическое связывание 


Номер 2
Динамическое связывание и полиморфное присоединение – два механизма, поддерживающие семантику присваивания и аналогичную семантику замены формальных аргументов при вызове метода. Какие утверждения справедливы для этих механизмов?

Ответ:

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

 (2) если применяется полиморфное присоединение, то динамическое связывание может выполняться, а может и не выполняться 

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

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

 (5) альтернативой динамического связывания является статическое связывание 


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

Ответ:

 (1) при вызове x.M(…), где x – полиморфная сущность, будет вызываться метод М из класса, заданного статическим типом x (типом, заданным при объявлении x

 (2) при вызове x.M(…), где x – полиморфная сущность, будет вызываться метод М из класса, заданного динамическим типом x (типом объекта, присоединенного к x в момент вызова) 

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

 (4) в C++, C#, Java по умолчанию применяется динамическое связывание 


Упражнение 7:
Номер 1
Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?

Ответ:

 (1) присваивание op := os допустимо. В результате присваивания статический тип op задан классом P, а динамический тип – классом S 

 (2) присваивание op := os допустимо. В результате присваивания статический и динамический тип op задан классом S 

 (3) присваивание op := os недопустимо 

 (4) допустимы взаимные присваивания всех заданных объектов 


Номер 2
Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?

Ответ:

 (1) присваивание of := od допустимо. В результате присваивания статический тип of задан классом F, а динамический тип – классом D 

 (2) присваивание of := od допустимо. В результате присваивания статический и динамический тип op задан классом D 

 (3) присваивание of := od недопустимо 

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


Номер 3
Какие утверждения относительно статического и динамического типа полиморфной сущности являются справедливыми?

Ответ:

 (1) статический тип сущности может изменяться в течение выполнения программы 

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

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

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

 (5) в момент присваивания динамический тип сущности задается типом объекта, присоединяемого к сущности 


Упражнение 8:
Номер 1
Какие утверждения справедливы?

Ответ:

 (1) если во время выполнения сущность x присоединяется к объекту, то тип этого объекта будет динамическим типом сущности x 

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

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

 (4) универсальный класс задает универсальный тип данных – общий предок всех типов 


Номер 2
Какие утверждения является корректными?

Ответ:

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

 (2) развернутый тип согласован со всеми типами 

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

 (4) если ссылочный класс А является потомком класса В и оба класса являются универсальными, то тип, определяемый родовым порождением А [T, U, …] согласован с типом, определяемым родовым порождением В [T, U, …] с теми же самыми родовыми параметрами 


Номер 3
Какие утверждения являются корректными?

Ответ:

 (1) любой динамический тип сущности должен быть согласован с ее статическим типом 

 (2) наследование означает, что наследник получает компоненты родителя. Экземпляры наследника (объекты) могут быть обработаны таким же способом, что и экземпляры родителя 

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

 (4) полиморфизм и динамическое связывание – это эквивалентные понятия 




Главная / Программирование / Объектно-ориентированное программирование и программная инженерия / Тест 1