2014 экзамен (Ответы на вопросы экзамена 2014)
Описание файла
Файл "2014 экзамен" внутри архива находится в папке "Ответы на вопросы экзамена 2014". Документ из архива "Ответы на вопросы экзамена 2014", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "2014 экзамен"
Текст из документа "2014 экзамен"
Вариант ?
1. В каких языках из перечисленных ниже можно реагировать на ошибки переполнения, связанные с целочисленной арифметикой? Для каждого языка приведите пример соответствующих конструкций:
Си++, Модула-2, Java, Delphi, C#, Оберон, Python, JavaScript
2. Напишите спецификацию шаблона template <int N> struct ArraySum {....}; на языке C++ так, чтобы для любого неотрицательного целого константного значения n значение ArraySum<n>::result было равно сумме первых n элементов массива Arr, описанного следующим образом:
static constexpr int Arr[] = {1,5,-3,.../* и так далее */...};
3. Можно ли в языке C++ определить тело абстрактной функции? Если можно, то приведите пример контекста, в котором вызывается это тело.
4. Напишите определение функции-генератора с именем NN на языке Python так, чтобы следующий фрагмент программы выдавал первые 100 квадратов целых чисел (1,4,9,16,…..):
for x in NN(100):
print(x)
5. Дайте общее определение операции преобразования типа в языке программирования. Напишите пример пользовательского переопределения операции преобразования типа в языке C++ (определение операции и её вызов). Есть ли аналогичные средства в языке C#? Если есть, то приведите пример на этом языке, аналогичный приведенному для C++.
6. Дайте определение и пример использования анонимной (лямбда-функции) в языке C#. В каких языках из перечисленных ниже есть аналогичное понятие? Для каждого такого языка приведите пример.
JavaScript, Ада, Си++, Оберон, Оберон-2
7. Дайте определение понятия «объект, подобный массиву» в языке JavaScript. Перечислите его отличия от реального массива JavaScript.
8. Что будет напечатано в результате работы следующей программы на Java?
public class PLExamTest2014 {
static void P(A a, B b) { a.g(); b.g(); }
public static void main(String[] args) {
P(new A(), new B());
System.out.println(“------------------------------”);
P(new B(), new C());
}
}
class A {
private void pf() {System.out.println(“A.pf”);}
public void f() { System.out.println(“A.f”);}
public void g() { f(); pf(); }
}
class B extends A {
private void pf() {System.out.println(“B.pf”);}
public void f() { System.out.println(“B.f”);}
public void g() { f(); pf(); }
}
class C extends B {
public void pf() {System.out.println(“C.pf”);}
public void f() { System.out.println(“C.f”);}
}
Вариант ??
1. Что означает операция «>>>» в языке Java? Почему ее нет в C/C++, C#?
2. Напишите спецификацию шаблона template <int N> struct Fun {....}; на языке C++ так, чтобы значение Fun<n>::result было равно сумме квадратов чисел от 1 до n для любого неотрицательного целого константного значения n.
3. . В каких из перечисленных ниже языков можно объявлять приватные абстрактные функции? Если можно, то для каждого языка приведите пример.
Си++, Java, C#, Оберон, Оберон-2
4. Напишите определение класса Fib на языке C# так, чтобы следующий фрагмент программы выдавал первые 100 чисел Фибоначчи (Fib1=Fib2=1, Fibn=Fibn-1+Fibn-2):
foreach(var f in new Fib(100)) System.Console.WriteLn(f);
5. Дайте общее определение операции индексирования в языке программирования. Напишите пример пользовательского переопределения операции индексирования в языке C++ (определение операции и её вызов). Есть ли аналогичные средства в языке C#? Если есть, то приведите пример на этом языке, аналогичный приведённому для C++.
6. Дайте определение и пример использования анонимной (лямбда-функции) в языке Python. В каких языках из перечисленных ниже есть аналогичное понятие? Для каждого такого языка приведите пример.
JavaScript, Ада, Си++, Оберон, Оберон-2
7. Дайте определение понятия «защищенный член класса» в языке Java. Перечислите его отличия от аналогичного понятия в языке C#.
8. Что будет напечатано в результате работы следующей программы на C#?
using System;
namespace test
{
class Program {
static void Main() {
B a = new B(), b = new B(); P(a, b);
Console.WriteLine(“------------------------------”);
C c = new C(), d = new C(); P(c, d);
}
static public void P(A a, B b) {
a.f(); a.g();
b.f(); b.g();
}
}
class A {
public void f() { Console.WriteLine(“A.f”); g(); }
public virtual void g() { Console.WriteLine(“A.g”); }
}
class B : A {
public virtual new void f() { Console.WriteLine(“B.f”); }
public override void g() { Console.WriteLine(“B.g”); f(); }
}
class C : B {
public override void f() { Console.WriteLine(“C.f”); }
public override void g() { Console.WriteLine(“C.g”); f(); }
}
}
4