- •1. Структура программы на языке Си. Алфавит языка. Базовые типы данных
- •2.Константы в программах
- •3.Операции, выражения Операция приведения типа Операции отношения.
- •Include — вставляет текст из указанного файла
- •Ifdef — осуществляет условную компиляцию при определённости символической константы
- •Ifndef — осуществляет условную компиляцию при неопределённости символической константы
- •5. Функции ввода-вывода printf() и scanf(). Ввод-Вывод символьных и строковых данных. . Потоковый ввод-вывод
- •7. Операторы передачи управления
- •8.Арифметические операции. Преобразование типов при выполнении операций. Операция присваивания. . Операция присваивания и ее сокращенные формы.
- •9.Операции отношений и логические операции. Операции сравнения
- •10. Операторы безусловной и условной передачи управления. .
- •11.Операции «,» и «?».
- •12. Характеристика базовых типов, операции с ними, инициализация данных.
- •13. Организация циклических алгоритмов. Операторы цикла.. Вложенные циклы. Операторы continue, break и return
- •14.Функции exit и abort
- •15. Оператор выбора альтернатив (переключатель)
- •16. Символьные строки. Способы задания строк. Ввод и вывод строк. Основные функции работы со строками. . Ввод-Вывод символьных и строковых данных
- •17. Общая характеристика стандартных математических функций (библиотека math.H).
- •18. Одномерный массив - описание, инициализация, обращение к элементам
- •19.Указатели, операции «*» и «&».Операция sizeof
- •*Операция sizeof
- •20. Инициализация указателей
- •1. Указатель на объект известного типа. Содержит адрес объекта опреде-ленного типа.
- •2. Указатель типа void. Применяется, еcли тип объекта заранее не опреде-лен.
- •3. Указатель на функцию. Адрес, по которому передается управление при вызове функции.
- •21. Указатели на указатели. Многомерные массивы. Адресная функция
- •22. Связь указателей с массивами.
- •25. Указатель на функции. Массив указателей на функции
- •26. Классы памяти и область действия переменных. Классы памяти, атрибуты auto, register, static, extern.
- •27. Структуры. Шаблон структуры. Способы обращения к полям структуры.
- •Тип_элемента_1 имя_элемента_1; тип_элемента_2 имя_элемента_2;
- •Тип_элемента_n имя_элемента_n;
- •29. Работа с динамической памятью. Операции new, delete
- •30. Работа с файлом. Необходимые действия при обработке файлов.
- •31. Работа с файлами. Открытие, закрытие файлов
- •32.Основные функции обработки файлов. Функции произвольного доступа
- •33.Вложенные структуры
- •34.Массивы структур
- •35.Размещение структурных переменных в памяти
- •36.Объединения
- •37.Перечисления
- •38.Позиционирование в файле
12. Характеристика базовых типов, операции с ними, инициализация данных.
Данные в языке Си разделяются на две категории: простые (скалярные), будем их называть базовыми, и сложные (составные) типы данных.
Тип данных определяет:
внутреннее представление данных в оперативной памяти;
совокупность значений (диапазон), которые могут принимать данные этого типа;
набор операций, которые допустимы над такими данными.
Основные типы базовых данных: целый – int, вещественный с одинарной точностью – float и символьный – char.
В свою очередь, данные целого типа могут быть короткими – short, а также длинными – long . Кроме того, при любой длине данные целых и символьного типов могут быть знаковыми - signed либо беззнаковыми – unsigned (по умолчанию они считаются знаковыми, поэтому слово signed необязательно и обычно опускается). Вещественные же данные могут иметь удвоенную точность – double.
Сложные типы данных – массивы, структуры – struct, объединения или смеси – union.
Данные целых и вещественных типов находятся в определенных диапазонах, т.к. занимают разный объем оперативной памяти. Вещественные типы при этом обладают еще конечной точностью хранения данных, т.е. верно хранят лишь первые несколько цифр числа; для хранения остальных (чье количество бывает даже бесконечным - например, у числа π , или у числа ⅓ ) не хватает места. В Табл. 1. приведены свойства различных типов для системы программирования C++ Builder. В других системах программирования, поддерживающих язык Си, может отличаться размер того или иного конкретного типа, например int, и соответственно будет отличаться его допустимый диапазон значений (например, тип long int может превосходить по размеру тип int). Однако последовательность возрастания размеров и точности для каждой группы типов всегда одинакова:
13. Организация циклических алгоритмов. Операторы цикла.. Вложенные циклы. Операторы continue, break и return
*Организация циклических алгоритмов
Под циклом понимается организованное повторение некоторой последовательности операторов.
Любой цикл состоит из кода цикла, т.е. тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.
Один проход цикла называется шагом или итерацией. Проверка условия продолжения цикла происходит на каждой итерации либо до выполнения кода цикла (с предусловием), либо после выполнения (с постусловием).
*Операторы цикла
– оператор цикла с предусловием;
while (выражение)
код цикла;
Выражение определяет условие повторения кода цикла, представленного простым или составным оператором.
Если выражение в скобках – истина (не равно 0), то выполняется код цикла. Это повторяется до тех пор, пока выражение не примет значение 0 (ложь).
– оператор цикла с постусловием;
Общий вид записи такой конструкции:
do
код цикла;
while (выражение);
Код цикла будет выполняться до тех пор, пока выражение истинно. Все, что говорилось выше справедливо и здесь, за исключением того, что данный цикл всегда выполняется хотя бы один раз, даже если изначально выражение ложно. Здесь сначала выполняется код цикла, после чего проверяется, надо ли его выполнять еще раз.
– оператор цикла с предусловием и коррекцией.
Общий вид оператора:
for (выражение 1; выражение 2; выражение 3)
код цикла;
где выражение 1 – инициализация счетчика (параметр цикла);
выражение 2 – условие продолжения счета;
выражение 3 – коррекция счетчика.
Инициализация используется для присвоения счетчику (параметру цикла) начального значения.
Выражение 2 определяет условие выполнения цикла. Как и в предыдущих случаях, если его результат не нулевой («истина») то цикл выполняется.
Коррекция выполняется после каждой итерации цикла и служит для изменения параметра цикла.
Выражения 1,2 и 3 могут отсутствовать (пустые выражения), но символы «;» опускать нельзя.
* Вложенные циклы
Тело (код) цикла может в свою очередь включать в себя другие циклы. Такие циклы называют вложенными. Вложенные циклы необходимы, если по смыслу задачи для каждой итерации внешнего цикла нужно выполнить несколько итераций внутреннего
*. Операторы continue, break и return
В определенных случаях вместо оператора goto удобнее использовать операторы continue или break.
Оператор continue может использоваться во всех типах циклов (но не в операторе-переключателе switch). Наличие оператора continue вызывает пропуск "оставшейся" части итерации и переход к началу следующей, т.е. досрочное завершение текущего шага и переход к следующему шагу.
В циклах while и do-while это означает непосредственный переход к проверочной части. В цикле for управление передается на шаг коррекции, т.е. модификации выражения 3.
Оператор continue часто используется, когда последующая часть цикла оказывается слишком сложной, так что рассмотрение условия, обратного проверяемому, приводит к слишком высокому уровню вложенности программы.
Оператор break производит досрочный выход из цикла или оператора-переключателя switch, к которым он принадлежит, и передает управление первому оператору, следующему за текущим оператором. Т.е. break обеспечивает переход в точку кода программы, находящуюся за оператором, внутри которого он (break) находится.
Оператор return производит выход из текущей функции и будет рассмотрен позже.