- •Оглавление
- •Билет 1: Понятия о структурном программировании
- •Билет 2: Моделирование стандартных управляющих структур
- •Билет 3: структура программы
- •Билет 4: организация (структура) модуля
- •Билет 5: Переменные
- •Билет 6: Система типов языка
- •Билет 7: Арифметические типы языка c
- •Билет 8: Константы
- •Билет 9: КонстантныеобъектывязыкеСи.
- •Билет 10: Константные объекты
- •Билет 11. Переменные, понятие об объекте, lvalue и rvalue выражения.
- •Билет 12. Время жизни переменных.
- •Билет 15. Операторы. Приоритет и ассоциативность операторов.
- •Билет 19: Побочные эффекты в языке Си.
- •Билет 20: Организация функций. Определение функций
- •Билет 25: Инструкция If…else. Программирование разветвлений.
- •Билет 26: Инструкция switch и организация разветвленных алгоритмов.
- •Билет 27: Циклические алгоритмы, классификация, функциональная схема
- •Билет 28: Циклические инструкции.
- •Билет 29: инструкция for и арифметические циклы
- •Билет 30: Инструкция while и do...While, интерационные циклы
- •Билет 31: Циклы с выходом. Бесконечные циклы
- •Билет 32. Организация вложенных циклов
- •Билет 33: Массивы. Определение и инициализация одномерных массивов
- •Билет 34. Массивы. Определение и инициализация двумерных массивов
- •Билет 35. Связь указателей и массивов
- •Билет 40. Указатели. Определение типизированных и нетипизированых указателей. Модель, используемая при работе с указателями. Операции с указателями.
- •Билет 41: Операции с указателями
- •Билет 42. Использование указателей для возврата из функции через параметры
- •Билет 43. Указатели на функцию. Определение. Операции. Использование в параметрах функции
- •Билет 44. Типичные ошибки при работе с массивами
- •Билет 45. Массив указателей, динамическая матрица
- •Билет 46. Понятие некорректного указателя.
- •Билет 47. Организация строк. Общие сведения
- •Билет 48. Ввод/вывод строк
- •Void funk(“Kozin”); - при этом ничего не возвращается. Данная запись используется довольно редко.
- •Билет 52. Организация динамического одномерного массива
- •Билет 53. Структуры. Определение типа структур. Определение переменных в структуре и инициализация. Операции со структурой
- •Билет 54. Обращение к полям структуры. Массивы структур
- •Билет 55. Использование структур при работе с функциями. Указатели на структуры
- •Билет 58: Файловый ввод-вывод. Символьный ввод-вывод в языке Си.
- •Синтаксис преобразования вывода
- •Билет 60: Файловый ввод-вывод. Строковый ввод-вывод в языке Си.
- •Билет 61: Файловый ввод-вывод. Блоковый ввод-вывод в языке Си.
- •Int fseek(file *f, long int колич_байт, int начало_отсчета);
Билет 4: организация (структура) модуля
Текст программы на языке Си может быть разделен на несколько исходных файлов(модулей) если слишком много функций в исходном файле. Модуль представляет собой текстовый файл, который содержит либо всю программу, либо ее часть. При компиляции исходной программы каждый из составляющих ее исходных файлов должен быть скомпилирован отдельно, а затем связан с другими файлами компоновщиком. Отдельные исходные файлы можно объединять в один исходный файл, компилируемый как единое целое, посредством директивы препроцессора #include «имя заголовочного файла, содержащего прототипы функций подключаемого к главному модуля».
Исходный файл может содержать любую целостную комбинацию директив, указаний компилятору, объявлений и определений. Под целостностью подразумевается, что такие объекты, как определения функций, структуры данных либо набор связанных между собой директив условной компиляции, должны целиком располагаться в одном файле, т.е. не могут начинаться в одном файле, а продолжаться в другом.
Исходный файл не обязательно должен содержать выполняемые операторы. Иногда удобно размещать определения переменных в одном файле, а в других файлах использовать эти переменные путем их объявления. В этом случае определения переменных становятся легкодоступными для поиска и модификации. Из тех же соображений именованные константы и макроопределения обычно собирают в отдельные файлы и включают их посредством директивы препроцессора #include в те исходные файлы, в которых они требуются.
Билет 5: Переменные
Переменные могут быть объявлены:
Внутри функции(локальные)
В определении параметров функции(формальные параметры)
За пределами всех функций(глобальные).
Локальные.
Их можно использовать только внутри блока, в котором они объявлены. То есть они не видны за пределами фигурных скобок.
Такая переменная создаётся при вызове функции и разрушается после возврата в управляющий модуль. То есть между двумя вызовами её значения не сохраняются. (исключение составляют переменные, объявленные с помощью static).
Локальную переменную можно инициализировать каким-то значением - оно будет присваиваться при входе в функцию. Не инициализированные переменные имеют неопределённое значение, пока к ним не применят оператор присваивание.
Локальная статическая переменная - это переменная, сохраняющая своё значение между вызовами функции, так как она имеет выделенную постоянную память.
Инициализация каким-либо значением для статик применяется только один раз при вызове функции в первый раз.
Локальная переменная, объявленная в цикле будет видна только для этого цикла.
Глобальные.
Переменные доступны из любой части программы и объявляются вне функции. Эти переменные сохраняют своё значение на протяжении выполнения всей программы.
"+"если необходимо использовать одни и те же данные в разных частях программы.
"-"занимают место в памяти даже когда уже не нужны. Они ослабляют независимость функции, им приходится зависеть друг от друга что приводит к непредсказуемым побочным эффектам и повышает количество ошибок. Н-р: изменение значения переменных, если их было объявлено слишком много. Поэтому если есть возможность, то лучше обойтись без глобальных переменных.
Объявление глобальной статической переменной ограничивает её видимость одним модулем. Это снижает побочные эффекты. И хотя переменная остаётся глобальной - в других модулях она не существует.
Н-р: удобно создать отдельный модуль с функциями где используется эта глобальная переменная и скомпилировав потом просто подключать к проекту.