игра брюс 2048
Главная / Программирование / Основы программирования / Тест 9

Основы программирования - тест 9

Упражнение 1:
Номер 1
Напомним, что под сущностью в языке Eiffel понимается имя с указанием типа, появляющееся в тексте программы и обозначающее значения периода выполнения программы. Какое утверждение некорректно по отношению к понятию "переменная" в программировании?

Ответ:

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

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

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

 (4) все значения, которые получала переменная во время вычислений, сохраняются в памяти компьютера 

 (5) присваивание позволяет изменить значение переменной 


Номер 2
Программирование и математика близки. Но мир математики – это бесконечный, непрерывный мир. Мир программирования конечен и дискретен. Математика статична, программирование – динамично. Ощутите разницу на следующем примере. Рассмотрим переменную вещественного типа x: REAL. Укажите, какие утверждения относительно этой переменной справедливы для программирования, но не справедливы для математики?

Ответ:

 (1) переменная x непрерывна. Это означает, что не существует такого числа d, сколь угодно малого, чтобы значения x не могли отличаться на величину, меньшую d 

 (2) переменная x дискретна. Это означает, что существует такое число d (достаточно малое на практике), что любые два значения x отличаются более чем на d 

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

 (4) не существует максимального и минимального значения x, - множество REAL бесконечное неограниченное множество 

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

 (6) понятия памяти для хранения значений не существует 


Номер 3
Программирование и математика близки. Но мир математики – это бесконечный, непрерывный мир. Мир программирования конечен и дискретен. Математика статична, программирование – динамично. Ощутите разницу на следующем примере. Рассмотрим определение чисел Фибоначчи: math. Укажите утверждения, из которых будет исходить программист при написании программы вычисления чисел Фибоначчи:

Ответ:

 (1) определение задает правило вычисления n-го числа Фибоначчи, где n может быть достаточно большим числом, но не сколь угодно большим 

 (2) для вычисления достаточно иметь две переменные, хранящие некоторое число Фибоначчи и его предшественника. Этих переменных достаточно, чтобы, следуя правилу, вычислить следующее число Фибоначчи 

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

 (4) определение задает бесконечную последовательность чисел Фибоначчи 

 (5) определение определяет некоторое свойство, которым обладают числа Фибоначчи. (Сам Фибоначчи рассматривал это определение, как некоторую модель процесса размножения кроликов.) 


Упражнение 2:
Номер 1
Какие утверждения справедливы для синтаксиса присваивания target := source в языке Eiffel?

Ответ:

 (1) присваивание – это оператор 

 (2) левую и правую части присваивания можно разделять как знаком равенства, так и специально введённым знаком присваивания :=, состоящим из двух символов 

 (3) левая часть присваивания target называется целью и должна быть переменной 

 (4) левая часть присваивания target называется целью и может быть выражением 

 (5) правая часть присваивания source называется источником и может быть переменной 

 (6) правая часть присваивания source называется источником и может быть выражением 


Номер 2
Какие утверждения справедливы для семантики присваивания target := source в языке Eiffel?

Ответ:

 (1) присваивание – это оператор, разрешающий изменять значение переменной 

 (2) вычисляется значение выражения source, и это значение становится значением цели target 

 (3) в результате присваивания target получает значение source, а source его теряет 

 (4) цель target не может входить в выражение source 

 (5) после присваивания цель target сохраняет свое значение до очередного присваивания 


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

Ответ:

 (1) локальные переменные объявляются в предложении local в объявлении метода 

 (2) локальные переменные – это временные переменные. Их область видимости – метод, в котором они объявлены. Время жизни также определяется методом, - когда метод завершает работу, перестают существовать его локальные переменные 

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

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

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


Упражнение 3:
Номер 1
Result – это?

Ответ:

 (1) атрибут 

 (2) функция 

 (3) сущность 

 (4) переменная 


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

Ответ:

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

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

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

 (4) компоненты класса – методы и атрибуты – можно сделать закрытыми, недоступными для клиентов, если в раздел feature, где описывается компонент, добавить ключевое слово feature {NONE} 

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


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

Ответ:

 (1) если атрибут закрыт (feature {NONE}), то он недоступен ни для чтения, ни для записи 

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

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

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

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


Упражнение 4:
Номер 1
Сущность – это типизированное имя в тексте программы, обозначающее значения в период выполнения. Укажите, что не может быть сущностью:

Ответ:

 (1) атрибут 

 (2) метод 

 (3) локальная переменная 

 (4) предопределенное имя Result 

 (5) предопределенное имя Current 

 (6) формальный аргумент 


Номер 2
Укажите корректные высказывания:

Ответ:

 (1) каждая функция является сущностью 

 (2) каждая сущность является функцией 

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

 (4) каждый запрос является сущностью 

 (5) каждая сущность является переменной 


Номер 3
Какой набор свойств характеризует атрибут?

Ответ:

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

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

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

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

 (5) число формальных аргументов может быть больше числа фактических аргументов 


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

Ответ:

 (1) манифестная константа – это константа без имени 

 (2) именованная константа задается константным атрибутом 

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

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


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

Ответ:

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

 (2) при ссылочном присваивании значение источника присваивания это либо ссылка, либо Void 

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

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

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

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


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

Ответ:

 (1) в результате ссылочного присваивания b = d создаются динамические псевдонимы – два имени (b и d) у объекта, к которому присоединены ссылки 

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

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

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


Упражнение 6:
Номер 1
Какой набор свойств характеризует процедуру?

Ответ:

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

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

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

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


Номер 2
Какой набор свойств характеризует функцию?

Ответ:

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

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

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

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


Номер 3
(Упражнение 5) Пусть v1 и v2 переменные типа INTEGER. Какая из приведенных программ не выполняет обмен значениями?

Ответ:

 (1) v1 = v1+v2; v2 = v1 – v2; v1 = v1 – v2 

 (2) v1 = v1 * v2; v2 = v1 /v2; v1 = v1 / v2 

 (3) v1 = v1 - v2; v2 = v1+v2; v1 = v1+v2 

 (4) v1 = v1 - v2; v2 = v1+v2; v1 = v2 – v1 


Упражнение 7:
Номер 1
Отношение "имеет" имеет две различные интерпретации: "содержит" и "знает".
Для каких высказываний лучше подходит интерпретация "знает", чем "содержит"?

Ответ:

 (1) компьютер имеет процессор 

 (2) компьютер имеет принтер 

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

 (4) каждый домашний пес имеет хозяина 


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

Ответ:

 (1) используйте void ссылки только для завершения связанных структур 

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

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

 (4) нетривиальные действия со ссылками, такие как операции вставки, удаления элементов связанных структур, не должны появляться в проблемно-ориентированных частях программы. Для них должны проектироваться специальные библиотечные классы. Если по каким-либо причинам библиотечные классы недоступны, то из классов следует создавать специальные кластеры 


Номер 3
Сколько присваиваний нужно выполнить для удаления элемента из связанного списка?

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5) n - 1, если в списке n элементов 


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

Ответ:

 (1) присваивание является основным способом изменения значений переменных программы 

 (2) каждая функция является сущностью 

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

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


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

Ответ:

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

 (2) для базисных переменных эффект присваивания target := source состоит в том, что вычисляется значение выражения source, и это значение получает целевая переменная target 

 (3) для ссылочных переменных эффект присваивания target := source состоит в создании динамического псевдонима, - целевая переменная target получает значение ссылки source и обе ссылки становятся присоединёнными к одному и тому же объекту 

 (4) атрибут сущностью не является 


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

Ответ:

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

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

 (3) атрибуты не могут быть константами 

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




Главная / Программирование / Основы программирования / Тест 9