2 Семестр:
1. Общие принципы организации ввода-вывода данных в С++. Ввод-вывод в стандартные потоки. Форматирование.
2. Файловый ввод-вывод. Работа с текстовыми файлами. Копирование текстовых файлов. Поиск в текстовом файле заданной подстроки. Подсчет количества вхождений слова в текст, расположенный в файле.
3. Последовательный и прямой доступы к файлу. Структуры и бинарные файлы. Организация простейшей базы данных.
4.*Строковые потоки.
5. Определение структуры. Определение и инициализация структурных переменных. Вложенные структуры. Массивы структур. Структура в качестве аргумента функции. Можно ли структуру возвратить из функции, присвоить одну структуру другой?
6. Объединение как совокупность данных и пользовательский тип, отличия от структуры.
7. Поля битов в структурах. Примеры использования объединений и полей битов для доступа к отдельным байтам и битам внутреннего представления значения переменной.
8. Абстракция, инкапсуляция, наследование и полиморфизм как основополагающие принципы ООП. Примеры абстрактных типов данных. Виды операций клиента над объектом.
9.Укажите верные утверждения:
1. метод является подвидом функции
2. метод является подвидом класса
3. конструктор является подвидом метода
4. самолет является подвидом транспортного средства
5. машина является подвидом грузовика
6. круг является подвидом геометрической фигуры
7. квадрат является подвидом треугольника
8. автомобиль является подвидом самолета
9. читатель является подвидом библиотеки
10. Какие конструкции С++ позволяют образовывать новые типы данных? Класс как расширение понятия структуры. Чем класс отличается от структуры? Что определяет класс? Чем класс отличается от объекта?
11. Сколько места в памяти занимает объект класса? Как это узнать? Одинаков ли размер класса и аналогичной структуры? Что такое выравнивание и от чего оно зависит? Влияет ли выравнивание на размер класса? Влияют ли методы на размер объекта? Влияет ли наличие целочисленных констант-полей на размер объекта?
12. Какие ключевые слова в С++ обозначают класс? Синтаксис определения класса. Какой тип могут иметь поля класса? Разрешается ли объявлять указатель на объект? А указатель на класс?
13. Метод класса.Встроенное и внешнее определение методов и их отличие.Можно ли в методах присваивать параметрам значения по умолчанию? Вызов метода.
14. Доступность компонентов класса. Способы доступа к полям и методам класса. Для чего используются ключевые слова public и private? Можно ли использовать ключевые слова public и private в структуре? Существуют ли ограничения на использование public и private в классе и в структуре? Обязательно ли делать поля класса приватными? Может ли метод быть приватный?
15. Определение и инициализация объектов. Определение, назначение и синтаксис конструктора и деструктора. Отличия конструктора от метода. Сколько конструкторов может быть в классе? Допускается ли перегрузка конструкторов? Допускается ли перегрузка деструкторов?
16. Какие конструкции С++ разрешается использовать в списке инициализации в качестве инициализирующих выражений? В каком порядке инициализируются поля в классе? Совпадает ли этот порядок с порядком перечисления инициализаторов в списке инициализации конструктора?
17. Конструктор по умолчанию (без параметров), конструктор с параметрами (инициализации), конструктор копирования. Какие виды конструкторов создаются по умолчанию? Можно ли явно вызвать конструктор и деструктор?
18. Что такое глубокое копирование и когда в нем возникает необходимость? Какое копирование осуществляет стандартный конструктор копирования?
19. Объяснить работу конструкторов:
struct s1{
int i;
float x;
s1(int j, float y){i = j; x = y;}
};
struct s2{
int i;
float x;
s2 (const s1& a){i =a.i; x=a.x;}
};
