
- •2. Применение условной компиляции и определений: директивы #ifdef и их синтаксис.
- •3. Сокрытие и защита данных. Доступ к защищенному члену данных.
- •1.Синтаксис языка Си, зарезервированные имена.
- •2.Форматированный и неформатированный ввод-вывод.
- •Форматированный ввод с клавиатуры
- •3.Сценарии создания объектов: с инициализацией по умолчанию, со специальной инициализацией, путем копирования других объектов
- •1. Структура программы на Си, трансляция и создание загрузочного модуля.
- •2.Агрегаты данных, описание агрегатов через шаблоны, вложенные описания
- •3. Интерфейс класса. Свойство защищенности интерфейса класса
- •1. Классификация функций, функции пользователя и стандартные.
- •2. Модификаторы «[],(),*» в объявлениях.
- •3. Наследование, инкапсуляция и полиморфизм, иерархия классов.
- •1.Вызов функций: параметры и аргументы.
- •2. Функции преобразования и тестирования.
- •3. Уровни описания и реализации структур данных.
- •Билет №6
- •2. Структуры данных struct, поля битов в структуре
- •Билет 7
- •1. Библиотеки функций и их подключение.
- •2. Спецификаторы и модификаторы в объявлениях
- •3. Объекты класса и члены данных.
- •Билет 8
- •Ввод-вывод как средство связи пользователя с пк.(билет2)
- •3.Правила перегрузки операторов. Приоритеты операторов.
- •1.Библиотечные функции ввода-вывода символов и строк, функции gets и puts.
- •3.Константы и переменные скалярного типа.
- •3.Объявление класса: private, protected, public элементы класса.
- •Ключевые слова public и private
- •Билет №10
- •1. Ввод-вывод данных, функции printf и scanf, спецификации преобразования.
- •Идентификаторы и зарезервированные слова.
- •Билет 11
- •1.Простой и составной оператор.
- •2.Базовые типы данных и перечислимый тип enum, объявление перечислимого типа через шаблон, использование перечислимого типа вместо констант.
- •3.Статические элементы класса.
- •Билет n 12
- •1.Операторы принятия решений: применение операторов решения.
- •2.Классы памяти и область действия объектов программы.
- •3.Приватные конструкторы. Конструкторы с аргументами.
- •Билет 13
- •1.Условный оператор if.
- •2.Функция и указатель на функцию: объявление.
- •3.Деструкторы: общедоступные, приватные
- •Билет №14
- •1.Вычисляемый оператор-переключатель группового выбора switch
- •2.Классы памяти, область действия объявления
- •3.Принципы разработки структуры проекта, блок-схемы проекта
- •Билет №15
- •1.Организация цикла в программе, цикл с предусловием while
- •2.Рекурсивные функции
- •3.Ссылки и указатели: указатели и ссылки как члены данных
- •1.Организация цикла в программе, цикл с постусловием do - while.
- •2.Объединение данных union.
- •3.Понятие объекта и класса.
- •Билет 17
- •1. Организация цикла в программе. Цикл с инициализацией и модификацией for
- •2. Директивы препроцессора: директива #define, синтаксис.
- •3. Отладка программных комплексов: этапы отладки, методы отладки, организация тестирования программ.
- •1.Функции для работы со строками символов.
- •2.Примеры абстрактных структур: таблицы.
- •3.Понятие проекта программы: структура проекта.
- •Билет №19
- •1. Преобразование типов явное и неявное.
- •2. Таблицы указателей на функции и вызов функции из таблицы
- •3. Доступ к глобальным и локальным данным, область видимости для идентификаторов, объявленных внутри класса
- •Билет 20
- •1 Операции арифметического типа, преобразование типа в операции присвоения.
- •2 Главная функция и способы передачи аргументов.
- •3. Абстрактные структуры данных. Понятие шаблона структуры.
- •Билет n 21
- •1. Операции логического типа, одноместные и двуместные операции.
- •2.Разбор аргументов в главной функции и их использование.
- •3. Форматы данных и их применение.
- •Билет №22
- •1.Адресные операции: указатели в адресных операциях.
- •2.Функции ввода-вывода: классификация функций, ввод-вывод символов и строк.
- •3.Перегрузка операторов, правила перегрузки операторов, приоритеты
- •2.Описание файла.
- •3.Классификация функций-членов класса
- •Билет №24
- •1.Определение массива и его описание, индексирование массива.
- •3.Операторы new и delete.
- •1.Связь между массивами и указателями
- •2.Файлы данных: структура данных в файле.
- •3. Примеры абстрактных структур: очереди
- •1.Обращение к элементам массива
- •2.Директивы препроцессора: директива #include и способы включения файла
- •3.Вызов функций-элементов
- •Билет 27
- •1.Классы: использование указателя this.
- •2.Спецификаторы и модификаторы в объявлениях
- •1.Строки и массивы строк символов.
- •2.Файловый ввод-вывод потоком: поиск в файле, добавление и удаление данных.
- •3.Объявление структур через шаблон.
- •1.Массив ссылок
- •2 Поиск в файле, добавление и удаление данных.
- •3.Понятие стиля программирования: «ясность», «краткость», «эффективность».
- •Билет №31
- •1.Размерность массива и представление в памяти.
- •2.Файловый ввод-вывод записями, доступ к данным.
- •3.Перегрузка функций.
- •Билет 32
- •Билет 33
- •3.Скобочные операторы: оператор вызова функции operator() и оператор индексирования [].
- •Билет 34
- •1 Стиль оформления выражений
- •Классификация данных по назначению, структуре и формату.
- •Управление динамической памятью: функции распределения памяти.
- •Принцип модульности: совокупность модулей (функций) и файлов, разделение на модули.
- •Билет №36
- •2.Макроподстановки: директива #define, синтаксис.
- •Билет 28
- •1.Многомерные массивы, способы описания, инициализация.
- •2.Режимы открытия и модификации файла.
- •3.Перегруженные конструкторы.
2.Классы памяти и область действия объектов программы.
Каждая переменная имеет тип и принадлежит к некоторому классу памяти. Время жизни и область действия переменной определяются классом памяти.
Классы памяти:
auto - автоматический - локальные идентификаторы. Область действия автоматической переменной ограничена блоком или функцией, где она описана. Пример:
auto a; auto int x= 123;
static - статический - локальные идентификаторы, существующие в процессе всех выполнений блока. Для идентификаторов типа static память выделяется только один раз - в начале выполнения программы, и они существуют, пока программа выполняется.
extern - идентификаторы, называемые внешними, используются для связи между функциями. Память для этих идентификаторов является постоянной, но ее содержимое может меняться. Эти идентификаторы описываются вне функции. Extern позволяет сделать переменную видимой и в других исходных файлах
register - регистровый - идентификаторы, подобные идентификаторам типа auto. Переменная, объявленная с классом памяти register, имеет ту же область видимости, что и переменная auto.
3.Приватные конструкторы. Конструкторы с аргументами.
Конструкторы служат для инициализации объектов и обозначаются как одноимённые классу функции. Например:
Array::Array
Конструкторы могут иметь аргументы по умолчанию или использовать списки инициализации параметров. В качестве аргументов конструктора нельзя использовать объект того же класса. Вместо этого можно использовать ссылку на объект.
Конструктор может быть объявлен в секции private класса, тогда это будет приватный конструктор. Тогда он будет иметь ограниченный доступ, разрешенный только методам данного класса. Доступ производным классам будет запрещен.
Билет 13
1.Условный оператор if.
Обычно программа выполняется по порядку, строка за строкой. Оператор if позволяет проверить условие (например, равны ли две переменные) и изменить ход выполнения программы, которsq будет зависеть от результата сравнения.
Простейшая форма оператора if имеет следующий вид:
If (условие)
выражение;
Условие в круглых скобках может быть любым выражением, но обычно оно содержит операторы отношений. Если это выражение возвращает false, то последующий оператор пропускается. Если же оно возвращает true, то оператор выполняется.
Поскольку блок выражений, заключённых в фигурные скобки, эквивалентен одному выражению, то возможно:
if (условие)
{
выражение 1;
выражение 2;
…..
выражение n;
}
Структура выбора if/else позволяет программисту определить различные действия, которые должны выполняться в случаях, если условие истинно или ложно.
if (условие)
выражение;
else
выражение;
2.Функция и указатель на функцию: объявление.
Функция - это самостоятельная единица программы, созданная для решения конкретной задачи. Как и переменные, функции надо объявлять до её использования.
Каждая функция языка С имеет имя и список аргументов (формальных параметров). Если у функции нет параметров, то при объявлении и при описании функции вместо <список параметров> надо поставить void - пусто. Функции могут возвращать значение, поэтому обязательно нужно указать тип данных возвращаемого значения. Это значение может быть использовано далее в программе. Если тип не указан, то по умолчанию функция возвращает значение типа int.
тип <имя функции>(список параметров) { тело функции }
Вызов функции:
<имя функции>(параметры);
или
<переменная>=<имя функции>(параметры);
Пример вызова функции, которая будет печатать строку "Вызвали функцию" на экран.
/* Используем свою функцию */ #include <stdio.h> void main(void) // Точка входа в программу { void function1(void); // Объявление функции function1(); // Вызов функции } /* Описание функции */ void function1(void) // Заголовок функции { // Начало тела функции printf("Вызвали функцию\n");} // Конец тела функции
Результатом работы программы будет строка, напечатанная на экране.
Указатели на функции. Функция располагается в памяти по определенному адресу, который можно присвоить указателю в качестве его значения. Адресом функции является ее точка входа. Именно этот адрес используется при вызове функции. Так как указатель хранит адрес функции, то она может быть вызвана с помощью этого указателя. Он позволяет также передавать ее другим функциям в качестве аргумента.
С указателем на функцию можно работать, как с обычной переменной: присваивать, размещать в массиве, и т.д.
int (*fun)(int x, int *y);
Здесь объявлена переменная fun как указатель на функцию с двумя параметрами: типа int и указателем на int. Сама функция должна возвращать значение типа int. Пример:
double (*fun1)(int x, int y);
double fun2(int k, int l);
fun1=fun2; /* инициализация указателя на функцию */
(*fun1)(2,7); /* обращение к функции */
Указатель на функцию fun1 описан как указатель на функцию с двумя параметрами, возвращающую значение типа double, и также описана функция fun2.