
- •Оглавление
- •Билет 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 начало_отсчета);
Билет 11. Переменные, понятие об объекте, lvalue и rvalue выражения.
Переменная в традиционных (императивных кто помнит определение этого слова?) языках программирования — проименованная либо адресуемая иным способом область памяти, имя или адрес которой можно использовать для осуществления доступа к данным, находящимся в переменной (по данному адресу).
Понятие об объекте (в программировании)
Объект — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеет заданные значения свойств (атрибутов) и операций над ними (методов). Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые в свою очередь определяют поведение (являются моделью) объекта. Время с момента создания объекта (конструкция) до его уничтожения (деструкция) называется временем жизни объекта. Объекты обладают свойствами наследования, инкапсуляции и полиморфизма.
lvalue и rvalue выражения
Для того, чтобы отличать выражения, обозначающие объекты, от выражений, обозначающих только значения, ввели понятия lvalue и rvalue. Изначально слово lvalue использовалось для обозначения выражений, которые могли стоять слева от знака присваивания (left-value); им противопоставлялись выражения, которые могли находиться только справа от знака присваивания (right-value). Развитие языков C и C++ привело к утрате словом lvalue своего первоначального значения. Иногда lvalue трактуют также как locator value. (локальная величина)
С каждой функцией компилятор также связывает две вещи: ее адрес и ее тело («значение»). При необходимости выражение, обозначающее функцию, компилятор может привести к указателю на эту функцию. «Значениями» функций в языках C и C++ оперировать нельзя. В спецификации языка C++ термин lvalue относится также и к выражениям, обознающим функции. В стандарте языка C для выражений, обозначающих функции, используется отдельный термин — function designator.
Необходимо подчеркнуть, что lvalue/rvalue является свойством не объектов и/или функций, а выражений.
Билет 12. Время жизни переменных.
Временем жизни переменной называется интервал выполнения программы, в течение которого она существует. Поскольку локальные переменные имеют своей областью видимости функцию, то время жизни локальной переменной определяется временем выполнения функции, в которой она объявлена. Это означает, что в разных функциях совершенно независимо друг от друга могут использоваться переменные с одинаковыми именами. Локальная переменная при каждом вызове функции инициализируется заново.
Под временем жизни переменной понимается время, в течение которого переменная может иметь значение.
Всё, что ниже впринципе не надо! В самом деле, не надо. Кстати, пример приведён на бейсике. Может, стоит просто убрать эту часть билета?
Локальные переменные имеют значение только во время выполнения процедуры, в которой они объявлены. Использование перед именем переменной ключевого слово Static позволяет сохранить ее значение между вызовами процедуры, в которой эта переменная объявлена. Инструкция Static используется только на уровне процедуры. Объявленные с помощью нее переменные называются статическими. Статические локальные переменные имеют значение в течение всего времени выполнения программы. Пример объявления такой переменной:
Dim Static A As Integer
Здесь переменная A объявлена как статическая переменная типа Integer. Если требуется, чтобы все переменные процедуры были статическими, перед ее именем необходимо поставить ключевое слово Static, например:
Private Static Sub TestSub()
Dim A As Integer
Dim B As Integer
End Sub
Здесь обе переменные A и B будут статическими.
Глобальные переменные также сохраняют свое значение до завершения выполнения программы, однако здесь есть некоторые отличия от статических переменных. Глобальные переменные в модуле класса имеют значение, пока существует данный экземпляр класса. В стандартном модуле глобальные переменные имеют значение до тех пор, пока выполняется программа.
Билет 13. Область видимости переменных.
Область видимости переменной - это те части программы, откуда переменная остается видимой. Видимая, - значит, объявленная и доступная для использования. Переменная, которая видима во всей программе, называется глобальной. Переменная, видимая, например, только в рамках конкретной функции, называется локальной.
Область видимости переменной – это контекст, в котором она определяется. Контекст - это набор определенных данных, формирующих среду выполнения программы.
Билет 14: Локальные и внешние переменные
Блин, билетик сделан не очень. =((( придётся его переделать:
Переменные являются внутренними или локальными по отношению к функции, если они объявлены внутри функции. Например:
Int func (void)
{
Int I; //локальная переменная
}
К локальным переменным некоторой функции никакая другая функция не имеет прямого доступа. Переменные располагаются в стеке после их объявления в функции, и разрушаются после завершения работы функции. По этой причине такие переменные, следуя терминологии других языков, обычно называют автоматическими. Необходимо заметить, что между двумя вызовами одной и тоже функции, локальная переменная, объявляемая в этой функции, НЕ СОХРАНЯЕТ своего значения. Но если переменные расположить в статической памяти используя слово static (например static int i), то значение локальной пременнной между двумя вызовами одной и тоже функции СОХРАНИТСЯ, но область видимости останется такой же – только внутри функции.
Внешние (или глобальные переменные) отличаются от локальных тем, что их область видимости охватывает всю программу. Их можно читать и изменять из любой точки программы, и они сохраняют своё значение на протяжении всей работы программы.