Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Объектно-ориентированное программирование
Экзамен
для направления 010500.62 - Математическое обеспечение и администрирование информационных систем.
Типовой вариант комплексного задания с решениями
Задача №1. (2 балла) Укажите ошибочные строки в функции main среди отмеченных буквами А, Б, В, Г, Д, Е.
class Stack1 {protected: int top; . . .};
class Stack2 {public: int top; . . .};
class Stack3 {private: int top; . . .};
struct St {int top; . . .};
class Stack4 {int top; . . .};
main( ) {
Stack1 S1; Stack2 S2; Stack3 S3; St S; Stack4 S4; int top;
. . .
S1.top++; // А
. . .
S2.top++; // Б
. . .
S3.top++; // В
. . .
S.top++; // Г
. . .
S4.top++; // Д
. . .
top++; // Е
. . .
}
Ответ: А, В, Д.
Задача № 2. (2 балла) Укажите, какие из пар абстракций
А. относятся к иерархии типа «является»,
Б. относятся к иерархии типа «имеет»,
В. не относятся к иерархиям типа «является» и «имеет».
1. «Компьютер» «Процессор»
2. «Дерево» «Береза»
3. «Растение» «Корень»
4. «Пчела» «Цветок»
5. «Автомобиль» «Колесо»
6. «Цветы» «Розы»
Ответ:
А. 2, 6
Б. 1, 3, 5
В. 4
Задача № 3. (3 балла) Что напечатает программа.
class Point {public: static int count;. . .};
int Point :: count=0;
main( ) { Point P1, P2;
. . .
P1.count =1; P2.count =2;
printf("%d\n", P2.count);
P1.count++;
printf("%d\n", P1.count);
}
Ответ:
2
3
Задача № 4. (3 балла) Укажите ошибочные строки в функции main среди отмеченных буквами А, Б, В, Г, Д, Е.
class Transport // Транспортное средство
{public: char* Registration_Number; // регистрационный номер
};
class Land_Transport: public Transport { // Сухопутное транспортное средство
public: int Shaft; // ведущая ось
};
class Water_Transport: public Transport { // Водное транспортное средство
public: int Displacement; // водоизмещение
};
class Amphibia: public Land_Transport, public Water_Transport {}; // Амфибия
main( ) {
Amphibia amph;
. . .
amph.Shaft; // А
amph.Displacement; // Б
amph.Water_Transport :: Displacement; // В
amph.Registration_Number; // Г
amph.Water_Transport :: Registration_Number; // Д
amph.Transport :: Registration_Number; // Е
}
Ответ: Г, Е.
Задача № 5. (6 баллов) Укажите ошибочные строки в функции main среди отмеченных буквами А, Б, В, Г, Д, Е.
class Shape {. . .}S;
class Circle: public Shape {. . .}C;
class SolidCircle: Circle {. . .}SC;
class Square: Shape {. . .}SQ;
main( ) {
. . .
S=C; // А
C=S; // Б
C=SC; // В
SC=C; // Г
S=SQ; // Д
SC=SQ; // Е
}
Ответ: Б, В, Г, Д, Е.
Задача № 6. (6 баллов) Что напечатает программа.
class Base { public:
void virtual info1 ( ){printf("Base1\n");}
void info2 ( ){printf("Base2\n");}
};
class Child : public Base { public:
void virtual info1 ( ){printf("Child1\n");}
void info2 ( ){printf("Child2\n");}
};
main( ) {
Base B, *PB;
Child C;
. . .
PB = &B; PB->info1( );
PB = &C; PB->info1( ); PB->info2( );
B=C; B.info1( );
}
Ответ:
Base1
Child1
Base2
Base1
Задача № 7. (12 баллов) Составить словесное описание ситуации, изображенной на диаграмме классов.
Ответ. На диаграмме изображен абстрактный класс F и два его потомка: класс G и класс H. Оба класса-потомка являются агрегатами. Каждый объект класса G содержит один объект класса K. Каждый объект класса H содержит не менее одного объекта класса L (композитная агрегация). Класс K имеет две операции: открытую run( ) и закрытую service( ). Класс F содержит закрытый атрибут статическую переменную с типа int со значением по умолчанию 0. Класс L зависит от интерфейса IS.
Задача № 8. (6 баллов) Изобразить диаграмму коммуникации, эквивалентную следующей диаграмме последовательностей (возможны варианты задачи, в которых необходимо изобразить диаграмму последовательностей, эквивалентную заданной диаграмме коммуникации).
Ответ. См. следующий рисунок.