- •Оглавление
- •Билет 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 начало_отсчета);
Синтаксис преобразования вывода
Этот раздел обеспечивает подробности относительно точного синтаксиса спецификаций преобразования, которые могут появляться в printf строке шаблона.
Символы в строке шаблона, которые - не часть спецификации преобразования, печатаются как есть в выходной поток. Последовательности мультисимволов (см. Главу 18 [Расширенные символы]) разрешены в строке шаблона.
Спецификации преобразования в строке шаблона имеют общую форму:
% флаги ширины [. точность] тип преобразования
Например, в спецификаторе преобразования "%-10.8ld", "-" является флагом, "10" определяет ширину поля, точность - "8", символ "l" является модификатором типа, и "d" определяет стиль преобразования. (Этот специфический спецификатор типа говорит, что печатается long int аргумент в десятичной записи, с минимумом 8 цифр, выровненных по левому краю в поле по крайней мере шириной 10 символов.)
Более подробно, спецификации преобразования вывода состоят из начального символа `%', сопровождаемого последовательностью:
Нуль или большее количество символов флага, которые изменяют нормальное поведение спецификации преобразования.
Десятичное целое число, определяющее минимальную ширину поля. Если нормальное преобразование производит меньшее количество символов чем этот, поле, дополняется пробелами до заданной ширины. Это минимальное значение; если нормальное преобразование производит большее количество символов чем этот, поле не усечено. Обычно, вывод выравнен по правому краю внутри поля. Вы можете также определять ширину поля "*". Это означает что следующий аргумент в списке параметров (до фактического значения, которое будет напечатано) используется как ширина поля. Значение должно быть int. Если значение является отрицательным, это означает, установить "-" флаг (см. ниже) и использовать абсолютное значение как ширину поля.
Точность, чтобы определить число цифр, которые нужно написать для числовых преобразований. Если точность определена, она состоит из точки (".") сопровождаемой необязательно десятичным целым числом (если оно опущено - значение округляется).
Вы можете также определять точность "*". Это означает что следующий аргумент в списке параметров (до фактического значения, которое будет напечатано) используется как точность. Значение должно быть int и игнорируется, если оно отрицательное. Если Вы определяете "*" и для ширины и для точности, то аргумент ширны предшествует аргументу точности. Другие С библиотеки могут не распознавать такой синтаксис.
Билет 60: Файловый ввод-вывод. Строковый ввод-вывод в языке Си.
Этот раздел описывает функции для выполнения символьно- и строчноориентированного ввода. Эти функции объявлены в заголовочном файле "stdio.h".
int fgetc (FILE * stream) (функция)
Эта функция читает следующий символ как char без знака из потока stream и возвращает значение, преобразованное в int. Если происходит условие конца файла или ошибка чтения, возвращается EOF.
int getc (FILE * stream) (функция)
Это - аналог fgetc, за исключением того, что для нее допустимо (и типично) выполнение как макрокоманды, которая оценивает аргумент stream больше чем один раз. getc часто сильно оптимизирована, так что это обычно лучшая функция, чтобы читать одиночный символ.
int getchar (void) (функция)
Функция getchar эквивалентна getc с stdin вместо аргумента stream.
Вот пример функции, которая вводит используя fgetc. Она работала бы, точно также используя getc взамен, или используя getchar () вместо fgetc (stdin).
int y_or_n_p (const char *question) { fputs (question, stdout); while (1) { int c, answer; /* Напишем пробел, чтобы отделить ответ от вопроса. */ fputc (" ", stdout); /* Читаем первый символ строки. Это должен быть символ ответа, но может и не быть. */ c = tolower (fgetc (stdin)); answer = c /* Отбрасываем остальную входную строку. */ while (c != '\n') c = fgetc (stdin); /* Примем ответ, если он был допустим. */ if (answer == 'y') return 1; if (answer == 'n') return 0; /* Ответ был недопустим: просим о допустимом ответе. */ fputs ("Please answer y or n:", stdout); } }
int getw (FILE * stream) (функция)
Эта функция читает word (то есть int) из stream. Она предусматривает совместимость с SVID. Мы рекомендуем, чтобы Вы использовали вместо этого fread (см. раздел 7.12 [Блочный ввод-вывод]) .