Ответы 2012 вариант 2 (1119615)
Текст из файла
Ответы - вариант 2_2012
Максимальная оценка каждой задачи – 10 баллов (всего 100 баллов)
1.
В С++ наследование бывает public, private и protected. Private-члены базового класса видны, но недоступны в производном классе, public-члены – и видны, и доступны, но только внутри производного класса.
Критерии: За каждый недостающий способ наследования - -4
Неверный ответ о статусе private и public членов - -4
Если не упомянута видимость - не наказывать.
2.
class B {
int x, y;
public:
B (int a, int b = 5) { x = a; y = b; }
int get ( ) { return x + y; }
B& operator=+ (B & b){ x += b.x; y += b.y; return *this;}
};
Критерии: За каждый недостающий/неверный метод - - 4
За каждую мелкую ошибку реализации - -2
3.
Cons Cons Des Copy Des 3 Des
Критерии: За каждую неверную/лишнюю/недостающую печать - - 4
Если пропущен конструктор, то за парный ему деструктор - не наказывать.
4.
1) перед деструктором базового класса добавить virtual.
2) добавить В (int a = 0) {...}
Критерии: За каждое не сделанное добавление - - 5
5.
class Cl {
int i;
public:
Cl (int x) { i = x; }
Cl ( const Cl & y) { i = y.i; }
const Cl f ( const Cl & c) const { cout << c. i << endl; }
};
const Cl t1 (const cl a) {
Cl b = Cl (5);
return b.f ( a );
}
Критерии: За каждое не найденную или лишнюю ошибку - - 5
-
template < class T >
void f (const T & t) {
if (t.size ( ) < 3) return ;
typename T :: const_reverse_iterator p = t.begin ( ) ;
cout << * p + * ( ++p ) + * ( ++p ) << endl; // можно без скобок и лучше не
// рассчитывать на порядок вычисления операндов.
}
int main () {
vector <int > vec (5);
for (int i = 0; i < 5; i++)
vec.push_back (i);
f (vec); // или f <vector <int> > (vec);
return 0;
}
Критерии: Пропуск typename - -4,
Если параметр функции const, а итератор – не const - -4,
За каждое другую ошибку - - 3
Отсутствие & в заголовке функции - -1.
7.
add_st (K*) from K
5 5 5
Критерии: За неверный вызов функции - - 5
За любую ошибку со статической переменной - - 5
8.
SConstr ¬ Copy ¬ SCatchS& ¬ Destr ¬ SConstr ¬ Main ¬ Destr ¬ Destr
Критерии: За отсутствие Copy (и его Destr) - - 5
За каждую другую ошибку - - 2
9.
void putnull ( B * pb ) {
try { D d, * pd = (D*) pb;
if (typeid (*pb) == typeid (d)) // возможен вариант с dynamic_cast
for (int i = 0; i < 30; i++) pd -> mas [ i ] = 0; }
catch ( bad_typeid ) { cout << “NULL!\n”; }
}
Критерии: Правильно добавлены средства RTTI - - 10
Иначе - - 0
За отсутствие try-catch блока не наказывать,
если это не может привести к ошибке.
10.
-
в случае: Box a (1, 2, 3); Box b = a;
-
в случае: Box c = Box (3, 4, 5); // оптимизирующий компилятор вызывает только обычный конструктор с указанными параметрами;
-
при передаче параметров функции по значению (при создании локального объекта);
-
при возвращении результата работы функции в виде объекта,
-
при генерации исключения-объекта класса.
Критерии: За отсутствие каждой из трех ситуаций - - 4
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.