Главная » Просмотр файлов » Т.В. Руденко - Сборник задач и упражнений по языку Си

Т.В. Руденко - Сборник задач и упражнений по языку Си (1114664), страница 13

Файл №1114664 Т.В. Руденко - Сборник задач и упражнений по языку Си (Т.В. Руденко - Сборник задач и упражнений по языку Си) 13 страницаТ.В. Руденко - Сборник задач и упражнений по языку Си (1114664) страница 132019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

Возвращает EOF, если исчерпан файл или возникла ошибка; в остальных случаях - количество введенных и преобразованных значений.Строка формата обычно содержит спецификации преобразования, которыеиспользуются для управления вводом. Каждая спецификация преобразованияначинается символом % и заканчивается литерой-спецификатором преобразования. Между % и литерой-спецификатором могут быть расположены символыуправления вводом ( в том порядке, в каком они перечислены ниже):• символ *, который подавляет присваивание;• число, определяющее максимальную ширину поля ввода;• модификаторы h, l или L.

Литерам-спецификаторам d, i, o, u, x можетпредшествовать литера h, если соответствующий аргумент является указателемна short (а не на int), или литера l, если аргумент - указатель на long. Литерамспецификаторам e, f, g может предшествовать литера l, если аргумент - указатель на double (а не на float), или литера L, если аргумент - указатель на longdouble.60Кроме спецификаций преобразования, в строку-формат могут входитьпробелы и табуляции, которые игнорируются, а также обычные литеры(но не %), которые ожидаются в потоке ввода среди литер, отличных от пробельных.Под пробельными литерами понимаются литеры пробела, табуляции,новой-строки, возврата-каретки, вертикальной-табуляции и смены-страницы.Спецификация преобразования определяет способ интерпретации очередного поля ввода. Поле ввода определяется как строка непробельных литер;при этом ввод строки прекращается, если встретилась пробельная литера либоисчерпана ширина поля ввода.

Полученное значение присваивается переменной, на которую указывает соответствующий аргумент. Если присваивание подавляется при помощи *, то поле ввода пропускается, но никакого присваиванияне происходит.литеры-спецификаторы и их смысл при вводе----------------------------------------------------------------------------------------------------------литератип аргумента; вид печати----------------------------------------------------------------------------------------------------------dдесятичное целое; int *.iцелое; int *.

Целое может быть восьмеричным (с ведущим нулем)или шестнадцатиричным (с ведущими 0х или 0Х).овосьмеричное целое (с ведущим 0 или без него); int *.xшестнадцатиричное целое (с ведущими 0x или 0X или без них); int *.uбеззнаковое десятичное целое; unsigned int *.cлитеры; char *. Литеры ввода размещаются в указанном массиве вколичестве, заданном шириной поля; по умолчанию это значениеравно 1. Литера ‘\0’ не добавляется. Пробельные литеры здесь рассматриваются как обычные литеры и поступают в аргумент.

Чтобыпрочитать следующую непробельную литеру, используйте %1s.sстрока непробельных литер (записывается без кавычек); char*, указывающий на массив размера, достаточного, чтобы вместить строкуи добавляемую к ней литеру ‘\0’.e,f,gчисло с плавающей точкой; float *. Число содержит необязательныйзнак, непустую последовательность цифр ( возможно, с десятичнойточкой) и необязательную экспоненту, состоящую из E или e и целого (возможно, со знаком).pзначение указателя в виде, в котором его бы напечатала функцияprintf со спецификацией %p (представление зависит от реализации);void*.%обычная литера %; присваивание не происходит.int scanf ( const char* format,...)семантика функции полностью эквивалентна fscanf (stdin, const char*format,...).int sscanf (char *s, const char* format,...)61sscanf действует так же, как и scanf, только ввод литер осуществляет изстроки s.10.1.3.4Функции ввода-вывода литерint fgetc (FILE *stream)fgetc возвращает очередную литеру из потока stream в виде unsignedchar, переведенной в int, или EOF, если исчерпан файл или обнаруженаошибка.char *fgets (char *s, int n, FILE *stream)fgets читает не более n-1 литер в массив s, прекращая чтение, есливстретилась литера новая-строка, которая включается в массив; крометого, записывает в массив литеру ‘\0’.

Функция fgets возвращает s илиNULL, если исчерпан файл или обнаружена ошибка.int fputc ( int c, FILE * stream)fputc пишет литеру c, переведенную в unsigned char, в stream. Возвращает записанную литеру или EOF в случае ошибки.int fputs (const char *s, FILE * stream)fputs пишет строку s, которая может не иметь ‘\n’, в stream. Возвращаетнеотрицательное целое или EOF.int getc (FILE *stream)getc делает то же, что и fgetc, но в отличие от нее может быть макросом;в этом случае stream может быть вычислен более одного раза.int getchar (void)getchar() делает то же, что и getc(stdin).char *gets (char *s)gets читает следующую строку ввода в массив s, заменяя литеру новаястрока на ‘\0’.

Возвращает s или NULL, если исчерпан файл или обнаружена ошибка.int putc (int c, FILE *stream)putc делает то же, что и fputc, но в отличие от нее может быть макросом; в этом случае stream может быть вычислен более одного раза.int putchar (int c)putchar(c) делает то же, что и putc(c,stdout).int puts (const char *s)puts пишет строку s и литеру новая-строка в stdout.

В случае ошибкивозвращает EOF; если запись прошла нормально - неотрицательное значение.int ungetc (int c, FILE *stream)62ungetc отправляет литеру c (переведенную в unsigned char) обратно вstream; при следующем чтении из stream она будет получена снова. Длякаждого потока можно вернуть не более одной литеры. Нельзя возвращать EOF. В качестве результата ungetc выдает отправленную назад литеру или, в случае ошибки, EOF.10.1.3.5Функции позиционирования файлаint fseek (FILE *stream, long offset, int origin)fseek устанавливает позицию для stream; последующее чтение или запись будет производиться с этой позиции.

Новая текущая позиция устанавливается со смещением offset относительно положения, заданногозначением origin. Если origin равно 0 то смещение производится относительно начала файла; если origin равно 1, то относительно прежнейтекущей позиции; и относительно конца файла, если origin равно 2.Значение offset должно быть равно нулю или значению, полученномупри помощи функции ftell. Это единственный надежный способ получения величины offset для функции fseek.long ftell (FILE *stream)ftell возвращает текущее значение смещения в байтах относительно начала потока stream или -1L, в случае ошибки.void rewind (FILE *stream)rewind(fp) делает то же, что и fseek(fp,0L,SEEK_SET); clearerr(fp).int fgetpos (FILE *stream, fpos_t *ptr)fgetpos записывает текущую позицию потока stream в *ptr для последующего использования ее в fsetpos.

Тип fpos_t позволяет хранить значения такого рода. В случае ошибки fgetpos возвращает ненулевое значение.int fsetpos (FILE *stream, const fpos_t *ptr)fsetpos устанавливает позицию в stream, читая ее из *ptr, куда она быларанее записана с помощью fgetpos. В случае ошибки fsetpos возвращаетненулевое значение.int feof (FILE *stream)feof возвращает ненулевое значение, если для потока stream установлениндикатор конца файла.void clearerr (FILE ∗stream)clearerr очищает индикаторы конца файла и ошибки потока stream.10.1.4 Математические функции63В головном файле <math.h> описываются следующие математическиефункции:double sin(double x)double cos(double x)double tan(double x)double asin(double x)double acos(double x)double atan(double x)double sinh(double x)double cosh(double x)double tanh(double x)double exp(double x)double log(double x)double log10(double x)double sqrt(double x)double fabs(double x)double pow(double x, double y)double ldexp(double x, int n)синус xкосинус xтангенс xарксинус x; x∈[-1,+1]арккосинус x; x∈[-1,+1]арктангенс xгиперболический синус xгиперболический косинус xгиперболический тангенс xэкспоненциальная функция exнатуральный логарифм ln(x), x>0десятичный логарифм log10(x), x>0квадратный корень √x, x≥0абсолютное значение |x|xyx*2n10.1.5 Функции общего назначенияФункции этого раздела предназначены для преобразования чисел и запроса памяти; они описаны в головном файле <stdlib.h>.double atof(const char *s)atof переводит строку s в значение double.

В случае переполнения выдает HUGE_VAL - некоторое положительное double-значение, определенное в головном файле <math.h>; при исчезновении порядка - нуль.int atoi(const char *s)atoi переводит строку s в значение int. В случае переполнения выдает(int)HUGE_VAL - некоторое положительное double-значение, определенное в головном файле <math.h>, преобразованное в int; приисчезновении порядка - нуль.void *calloc(size_t nobj, size_t size)calloc возвращает указатель на место в памяти, отведенное для массиваnobj объектов, каждый из которых имеет размер size. Выделенная область памяти обнуляется. Если память отвести не удалось, то результатработы функции - NULL.void *malloc(size_t size)malloc возвращает указатель на место в памяти для объекта размераsize.

Выделенная память не инициализируется. Если память отвести неудалось, то результат работы функции - NULL.void free(void *p)free освобождает область памяти, на которую указывает p; если p равноNULL, то функция ничего не делает. Значение p должно указывать на64область памяти, ранее выделенную с помощью функций calloc илиmalloc.10.1.6 Дальние переходыГоловной файл <setjmp.h> предоставляет средства для измененияобычной последовательности обработки вызовов функций: «вызов – возврат вточку вызова». Типичная ситуация, когда требуется отказаться от этой стратегии – необходимость вернуться из «глубоко вложенного» вызова функции наверхний уровень, минуя промежуточные возвраты.int setjmp (jmp_buf env)setjmp сохраняет контекст вызова в env для последующего его использования в longjmp.

Возвращает нуль, если возврат осуществляется непосредственно из setjmp, и значение val (которое должно быть отличным от нуля), есливозврат произошел из последующего вызова longjmp. Обращение к setjmp разумно только в определенных ситуациях: в основном, это проверки в if, swith ициклах в выражениях отношения видаif ( setjmp() = = 0 )/* после прямого возврата из setjmp */else/* после возврата из longjmp */void longjmp (jmp_buf env, int val)longjmp восстанавливает контекст, сохраненный в env при последнемвызове setjmp. Счет возобновляется, как если бы функция setjmp только что отработала и вернула ненулевое значение val. При этом переменныеимеют те значения, которые они имели в момент обращения к longjmp; функция setjmp значений объектов не сохраняет.

Результат непредсказуем, если в момент обращения к longjmp, функция, содержащая вызов setjmp, уже завершила свою работустандартным образом, вернув управление в точку вызова.10.2Фрагменты стандарта языка Си10.2.1 Классификация типовтипы ::= типы_данных | функциональные_типы | неполные_типытипы_данных ::= скалярные_типы | нескалярные_типыскалярные_типы ::= арифметические типы | указателиарифметические_типы ::= целочисленные_типы | плавающие_типыцелочисленные_типы ::= char| signed char | unsigned char | short | unsigned short| int | unsigned int | long | unsigned long | перечислимые типы |поля_битовплавающие_типы ::= float | double | long doubleуказатели ::= указатели_на_данные | указатели_на_функции | указатели_на_неполные_типы65нескалярные_типы ::= структуры | массивы | объединениянеполные_типы ::= неполные_структуры | неполные_массивы | неполные_объединения | void10.2.2 Приоритеты и порядок выполнения операцийоперациивыполняются--------------------------------------------------------------------------------------------------------------( ) [ ] → .

Характеристики

Тип файла
PDF-файл
Размер
942,54 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6461
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее