Главная » Все файлы » Просмотр файлов из архивов » Документы » 2008-2003 экзамен (из методички)

2008-2003 экзамен (из методички) (Решённые задачи прошлых лет)

2019-09-19СтудИзба

Описание файла

Файл "2008-2003 экзамен (из методички)" внутри архива находится в папке "Решённые задачи прошлых лет". Документ из архива "Решённые задачи прошлых лет", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "2008-2003 экзамен (из методички)"

Текст из документа "2008-2003 экзамен (из методички)"

35

II. Варианты экзаменационных работ

2.1. Вариант 2003

1. Что будет напечатано в результате работы следующей программы на языке Си++?

#include <iostream.h>

class A {

public:

virtual void f() {cout << "A::f\n"; g();}

virtual void g() { cout << "A::g\n"; }

void h() { cout << "A::h\n"; }

};

class B : public A {

public:

void f() { cout << "B::f\n"; }

void g() { cout << "B::g\n"; h(); }

void h() { cout << "B::h\n"; }

};

class C : public B {

public:

void f() { cout << "C::f\n"; }

void g() { cout << "C::g\n"; }

void h() { cout << "C::h\n"; f(); }

};

void P(A*pa,B*pb) {

pa->f(); pa->g(); pa->h();

pb->f(); pb->g(); pb->h();

delete pa; delete pb;

}

int main() {

P(new B, new B);

cout<<"------------------------------\n";

P(new C, new C); return 0;

}

2. В каких из перечисленных ниже языков есть оператор перехода «goto метка»?

Ада 83, Ада 95, Оберон, Оберон-2, Модула-2, Java, Delphi, C#

3. Сравните между собой конструкции "uses" в языке Delphi и "use" в языке Ада (для чего применяются, сходства, отличия).

4. В каких из перечисленных ниже языков длина массива является только статическим атрибутом? Приведите пример массива с динамическим атрибутом -длиной для какого-либо языка.

Ада, Си++, Оберон, Модула-2, Java, C#

5. Что означают термины "семантика возобновления" и "семантика завершения" при обработке исключений? Для каждого способа (семантики) приведите пример языка, где этот способ (семантика) используется.

6. Назовите хотя бы один язык, в котором нельзя передавать подпрограммы как параметры других подпрограмм.

7. В каких классах памяти могут размещаться данные в языках программирования? В каких классах памяти размещаются объекты классов языка С#?

8. Ниже приведена спецификация родового пакета Stacks на языке Ада. Напишите объявление шаблонного класса на языке Си++, предназначенного для той же роли, что и этот пакет.

GENERIC

TYPE T IS PRIVATE; SIZE : INTEGER;

PACKAGE Stacks IS

TYPE Stack IS LIMITED PRIVATE;

PROCEDURE Push(S: IN OUT Stack; X : IN T);

PROCEDURE Pop(S: IN OUT Stack; X : OUT T);

FUNCTION IsEmpty(S : IN Stack) RETURN BOOLEAN;

FUNCTION IsFull(S : IN Stack) RETURN BOOLEAN;

PRIVATE

TYPE Stack is RECORD

Body : ARRAY (1..SIZE) OF T;

Top : INTEGER := 1;

END RECORD;

END Stacks;

2.2. Вариант 2004

1. Что будет напечатано в результате работы следующей программы на Си++?

#include <iostream.h>

class X {

public:

virtual void f() {cout << "X::f\n"; g(); }

void g() { cout << "X::g\n";}

};

class Y : public X {

public:

void f() { cout << "Y::f\n"; }

void g() { cout << "Y::g\n"; f();}

};

class Z : public Y {

public:

void f() { cout << "Z::f\n"; }

void g() { cout << "Z::g\n"; f();}

};

void P(X*px,Y*py) {

px->f(); px->g();

py->f(); py->g();

delete px; delete py;

}

int main() {

P(new X, new Y);

cout<<"------------------------------\n";

P(new Y, new Z); return 0;

}

2. В каких из перечисленных ниже языков есть понятие динамического связывания подпрограмм (методов класса)?

Ада 83, Ада 95, Си++, Оберон, Оберон-2, Модула-2, Java, Delphi, C#

3. Напишите на языке Ада 95 объявления, эквивалентные приведенным ниже описаниям на языке Оберон-2.

TYPE T* = RECORD I*, J : INTEGER; END;

TYPE T1* = RECORD (T) K : INTEGER; END;

PROCEDURE (VAR X: T) P* (L : INTEGER);

PROCEDURE (VAR X: T1) P* (L : INTEGER);

4. В каких из перечисленных ниже языков есть конструкция try-finally? Объясните её смысл для какого-нибудь языка.

Ада, Си++, Оберон, Модула-2, Java, Delphi, C#

5. Сколько конструкторов имеет класс S, описанный на языке Си++? Ответ обоснуйте.

struct S { explicit S(int); double i,j; };

6. Объясните смысл конструкции package в языке Java.

7. Смоделируйте на языке Оберон понятие, аналогичное скрытому типу данных на языке Модула-2.

8. Смоделируйте на языке Си++ функцию

void f() throw (E1,E2,E3) { g(); h(); }

предполагая, что конструкция throw не допускается компилятором.

2.3. Вариант 2005

1. Что будет напечатано в результате работы следующей программы на Си++?

#include <iostream>

using namespace std;

class A {

public:

virtual void f() {cout << "A::f\n"; g(); }

void g() { cout << "A::g\n";}

};

class B : public A {

public:

void f() { cout << "B::f\n"; }

void g() { cout << "B::g\n"; f();}

};

class C : public B {

public:

void f() { cout << "C::f\n"; }

void g() { cout << "C::g\n"; f();}

};

void P(A*pa,B& b) {

pa->f(); pa->g();

b.f(); b.g();

delete pa;

}

int main() {

B b;

P(new A, b);

cout<<"------------------------------\n";

C c;

P(new B, c); return 0;

}

2. Объясните, что означает термин «семантика возобновления» при обработке исключительных ситуаций. Приведите пример моделирования семантики возобновления на языке Си++.

3. Напишите спецификацию абстрактного типа данных Deque (очередь с двумя “хвостами”) на языках Ада и Java (тела методов и тело пакета можно опустить).

4. Объясните, что означает термин «абстрактная функция». В каких из перечисленных ниже языков есть соответствующее понятие?

Ада 83, Ада 95, Си++, Модула-2, Java, Delphi, C#

5. Что означает ключевое слово super на языке Java? Есть ли его аналог в языке С#? Если есть, то приведите пример на каждом из этих языков.

6. В каких из перечисленных ниже языков есть конструкция «свойство» (property)? Объясните, что она означает (на примере какого-либо языка).

Java, Ада 83, Ада 95, Си++, Delphi, Оберон, Оберон-2, Модула-2, C#

7. Объясните, что означает термин «перегрузка»(overloading). В каких из перечисленных ниже языков есть соответствующее понятие?

Ада 83, Ада 95, Си++, Модула-2, Java, Delphi, C#, Оберон, Оберон-2

8. Чем отличается деструктор языка Си++ от деструктора языка С#?

2.4. Вариант 2006

1. В каких языках из перечисленных ниже есть понятие «размеченное объединение»? Объясните, что оно означает.

Ада, Си++, Оберон, Модула-2, Java, C#, Паскаль

2. Назовите две причины большей надежности указателей языка Ада 83 по сравнению с указателями языка Си++.

3. Объясните, что означает понятие «раздельная независимая трансляция». В каких языках из перечисленных ниже есть это понятие?

Ада, Си, Си++, Оберон, Оберон-2, Модула-2, Java, C#, Паскаль

4. Объясните смысл конструкции where в языке C# (версия 2.0).

5. Что будет напечатано в результате работы следующей программы на Си++?

#include <iostream>

using namespace std;

class X {

public:

X() { f(); cout << '\n';}

virtual void g(){cout<<1<<' ';}

void f() { g();}

};

12

class Y: public X {

public:

Y() {f(); cout << '\n';}

void g() { cout<< 2<< ' ';}

void f() { g(); }

};

class Z: public Y {

public:

Z(){g(); f(); cout << '\n';}

void g() { cout << 3 << ' '; }

void f() { g(); }

};

X x; Y y; Z z;

X*px = &x; Y*py = &y; Z*pz = &z;

void out(void) {

px->f(); px->g();

py->f(); py-> g();

cout << '\n';

}

int main () {

out(); px = py;

out(); py = pz;

out(); return 0;

}

6. В каких языках из перечисленных есть понятие «исключения»? Приведите пример возникновения исключения в каком-либо из этих языков.

Си, Си++, Ада 83, Ада 95, Visual Basic, Оберон, Модула-2, C#, Delphi

7. Ниже приведена спецификация шаблонной функции перемножения матриц(двумерных массивов) на языке Си++. Напишите пример конкретизации этой функции, а также соответствующее описание родовой функции на языке Ада.

template <class T> Matrix<T>& MatMult (Matrix<T>& A,

Matrix<T>&B);

8. В каких областях памяти могут быть размещены объекты классов языка Си++?

2.5. Вариант 2007

1. В каких языках из перечисленных ниже при обработке исключительных ситуаций используется семантика возобновления? Объясните, что она означает.

Ада, Си, Си++, Оберон, Оберон-2, Модула-2, Java, C#

2. Что такое «явная реализация интерфейсов»? В каких языках она используется?

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

4. Дайте определение сопрограммы. Чем сопрограмма отличается от подпрограммы?

5. Что будет напечатано в результате работы следующей программы на Си++?

#include <iostream.h>

class X {

public:

void g() { cout << 1 << ' '; }

virtual void f() { g();}

};

class Y: public X {

public:

virtual void g(){ cout<< 2<< ' ';}

void f() { g(); }

};

class Z: public Y {

public:

void g() { cout << 3 << ' '; }

void f() { g(); }

};

X x; Y y; Z z; X*px = &x; Y*py = &y; Z*pz = &z;

void out(void) {

px->f(); px->g();

py->f(); py-> g();

cout << '\n';

}

int main () {

out(); px = py;

out(); py = pz;

out(); return 0;

}

6. В каких языках из перечисленных ниже отсутствует перечислимый тип данных?

Си, Паскаль, Ада 83, Ада 95, Си++, Оберон, Оберон-2, Модула-2

Опишите реализацию перечислимого типа данных в языке C#.

7. Опишите на языке Ада родовой модуль, реализующий абстрактный тип данных Queue (очередь). Реализацию процедур и функций писать не надо.

8. В каких из перечисленных ниже языков есть двусторонняя связь между модулями при раздельной трансляции? Объясните её смысл для какого-нибудь языка.

Ада, Си++, Оберон, Модула-2, Java, Delphi, C#

2.6. Вариант 2008 (пересдача)

1. Объясните смысл ключевого слова sealed в языке C#. В каких из перечисленных ниже языков есть соответствующее понятие?

Java, Ада 83, Ада 95, Си++, Delphi, Оберон, Оберон-2, Модула-2

2. Объясните, что означает термин «вложенные модули». В каких из перечисленных ниже языков есть соответствующее понятие?

Ада 83, Ада 95, Delphi, Оберон, Оберон-2

3. Напишите спецификацию абстрактного типа данных HashTable (перемешанная таблица, хэш-таблица) на языках Модула-2 и Java (тела методов и модуль реализации можно опустить).

4. Объясните, что означает термин «виртуальный метод»? В каких из перечисленных ниже языков есть соответствующее (или аналогичное) понятие?

Ада 83, Ада 95, Java, Delphi, Оберон, Оберон-2, Cи, Cи++, С#

5. Дайте определение абстрактного типа данных (АТД) и абстрактного класса (АК). Перечислите сходства и различия этих понятий. Приведите примеры АК и АТД на каких-нибудь языках программирования (только спецификации – тела процедур и функций писать не надо).

6. В каких из перечисленных ниже языков есть понятие «перегрузка имен» (или «перекрытие имен»)? Объясните, что оно означает (на примере какого-либо языка).

Чем перегрузка отличается от замещения?

Ада 83, Ада 95,Си, Си++, Оберон, Оберон-2, Модула-2, Java, Delphi, C#

7. Объясните, чем отличается понятие «структура» от понятия «класс» в языке C#?

8. Что означает ключевое слово override в языках C# и Delphi? Почему это ключевое слово (или аналогичное ему) отсутствует в языке Java?

III. ОТВЕТЫ, УКАЗАНИЯ И РЕШЕНИЯ

3.1. Вариант 2003

1.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее