- •Оглавление
- •Билет 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 начало_отсчета);
Билет 54. Обращение к полям структуры. Массивы структур
На счет полей структуры было сказано билетом выше.
!! Точка – операция принадлежности структуре.
!! Если структура объявлена через указатель, то вместо точки используется стрелка (->) для обращения к полю структуры
Теперь о массивах структур.
Объявление массива структур ничем не отличается от объявления обычного массива. Сам массив можно рассматривать как 2-мерный массив, где столбцы – поля структуры, а строки – сами структуры. Операции те же и выполняются так же, как и при работе с обычными массивами.
Пример: struct Books book[5]={{"TITLE","AUTHOR"},{"Title","Author "}}; //заполнятся 2 поля массива, соответственно 0 и 1 поля.
Билет 55. Использование структур при работе с функциями. Указатели на структуры
Частично этот вопрос был рассмотрен в билете 53, а именно пример указателя. Впрочем, указатели на структуры такие же, как и на любые другие объекты. Также можно сделать указатели на отдельные поля структуры и таким образом получать к ним прямой доступ.
При использовании структур в функциях можно передавать как всю структуру, так и отдельное поле. Возвращать структуру целиком можно как ретурном, так и указателем (в этом случае вместо имени структуры в функцию передается указатель на нее). Однако второе предпочтительнее (по версии Козина), т.к. при возвращении через ретурн память под структуру выделяется в трех местах (в main, в функции и отдельно создается временная переменная для возвращения), а структуры бывают о-о-очень большие.
Билет 56. Работа с внешними устройствами, общие сведения
Внешние устройства рассматриваются в С как файлы. Банальный пример: чтобы прочитать строку с помощью fgets из файла, надо передать третьим параметром указатель на файл, а чтобы прочесть с клавиатуры, надо передать stdin (стандартный поток ввода), что является своеобразным указателем на «файл» буфера клавиатуры.
*прочие функции ввода/вывода описаны в билете 48.
Билет 57. Ввод/вывод
Работа функций ввода/вывода описана в билете №48.
В этом билете упомянем только о форматах вывода и о паре фишек.
Форматы:
%d – целочисленные, соответствует типу int, unsigned int
%f – вещественные, соответствует float (4 байта)
%lf – вещественные с двойной точностью, соответствует double (8 байт)
%g – вещественные, автоматически определяет, сколько ставить знаков после запятой, соответствует float и double
%с – символ, соответствует char (1 байт)
%s – вывод строки(т.е. массива символов)
При написании формата также используется следующее:
printf(“%-d”,i); - обычно выравнивание делается по правому краю, минус устанавливает выравнивание по левому
printf(“%5.2f”,k); - цифры до точки указывают на количество выводимых символов, после точки – на количество знаков после запятой. Если у формата нет дробной части, то ставится только целое число
printf(“%*d”,m,k); - выводит число k, а m подставляется вместо звездочки
scanf(“%*c”); - читает символ из буфера клавиатуры «в никуда», используется чтобы убирать из буфера символы конца строки (при чтении из файла можно так прочитать ненужную строку)