Главная страница

Шпаргалка по языку СИ. Конспект Лекций «программирование На Языке Высокого Уровня Си» П. Конспект лекций для студентов высших учебных заведений, обучающихся по специальности 230102. 65 Автоматизированные системы обработки информации и управления


Скачать 1.25 Mb.
НазваниеКонспект лекций для студентов высших учебных заведений, обучающихся по специальности 230102. 65 Автоматизированные системы обработки информации и управления
АнкорШпаргалка по языку СИ
Дата26.05.2022
Размер1.25 Mb.
Формат файлаpdf
Имя файлаКонспект Лекций «программирование На Языке Высокого Уровня Си» П.pdf
ТипКонспект лекций
#550544
страница11 из 15
1   ...   7   8   9   10   11   12   13   14   15
ULLONG_MAX
максимальное значение для беззнакового long long int
+18,446,744,073,7 09,551,615
+18,446,744,073,70 9,551,615
≥ +18,446,744,073,709,551,61 5
Таблица 25.
Состав библиотеки limits.h
Константа
Значение
Стандарты
SIGHUP
Отбой
POSIX
SIGINT
Прерывание
ANSI
SIGQUIT
Выход
POSIX
SIGILL
Недопустимая инструкция
ANSI
SIGABRT
Самоостановка
ANSI
SIGTRAP
Перехват события
POSIX
SIGIOT
Перехват ввода-вывода
4.2 BSD
SIGEMT
Перехват эмуляции
4.2 BSD
SIGFPE
Исключение с плавающей запятой
ANSI
SIGKILL
Неперехватываемый сигнал завершения
POSIX
171

SIGBUS
Ошибка шины
4.2 BSD
SIGSEGV
Нарушение сегментации
ANSI
SIGSYS
Неправильный аргумент в системный вызов
4.2 BSD
SIGPIPE
Нарушение канала
POSIX
SIGALRM
Истечение времени
POSIX
SIGTERM
Заверешние
ANSI
SIGUSR1
Пользовательский сигнал 1
POSIX
SIGUSR2
Пользовательский сигнал 2
POSIX
SIGCHLD
Изменение статуса дочернего процесса
POSIX
SIGCLD
Аналогично SIGCHLD
System V
SIGPWR
Перезапуск после проблемы с питанием
System V
SIGXCPU
Ограничение процессорного времени
POSIX
Таблица 26.
Состав библиотеки math.h
Имя функции
Описание
acos
арккосинус
asin
арксинус
atan
арктангенс
atan2
арктангенс с двумя параметрами
ceil
округление до ближайшего большего целого числа
cos
косинус
cosh
гиперболический косинус
exp
вычисление экспоненты
fabs
абсолютная величина
(числа с плавающей точкой
)
floor
округление до ближайшего меньшего целого числа
fmod
вычисление остатка от деления нацело для чисел с плавающей точкой
frexp
разбивает число с плавающей точкой на мантиссу и показатель степени.
ldexp
умножение числа с плавающей точкой на целую степень двух
log
натуральный логарифм
log10
логарифм по основанию 10
modf(x,p)
извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой
pow(x,y)
результат возведения x в степень y, xy
sin
синус
sinh
гиперболический синус
sqrt
квадратный корень
tan
тангенс
tanh
гиперболический тангенс
Таблица 27.
Состав библиотеки stdio.h
Имя функции
Описание
Функции для файловых операций
fclose
закрывает файл, ассоциированный с переданным ей значением FILE *
fopen, freopen,
fdopen
открывают файл для определенных типов чтения и записи
remove
удаляет файл (стирая его)
rename
переименовывает файл
172

rewind
работает аналогично fseek(stream, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок
tmpfile
создает и открывает временный файл, удаляемый при закрытии через fclose()
Функции для операций ввода-вывода
clearerr
очищает
EOF
и индикаторы ошибок для данного потока
feof
проверяет, установлен ли индикатор
EOF
для данного потока
ferror
проверяет, установлен ли индикатор ошибок для данного потока
fflush
принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком
fgetpos
сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)
fgetc
возвращает один символ из файла
fgets
получает строку из файла (оканчивающуюся символом перевода строки или конца файла)
fputc
записывает один символ в файл
fputs
записывает строку в файл
ftell
возвращает указатель позиции файла, который может быть передан fseek
fseek
производит поиск по файлу
fsetpos
устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе
(fpos_t *)
fread
читает данные из файла
fwrite
записывает данные в файл
getc
считывает и возвращает символ из данного потока и изменяет укащатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc
, кроме того, что может вычислять поток более одного раза
getchar
имеет аналогичный эффект, что и getc(stdin)
gets
считывает символы из stdin до символа перевода строки и хранит их в своем единственном аргументе
printf, vprintf
используются для вывода в стандартный поток вывода
fprintf,
vfprintf
используются для вывода в файл
sprintf,
snprintf,
vsprintf
используются для вывода в массив типа char (
Строка в языке Си
)
perror
записывает сообщение об ошибке в stderr
putc
записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc
, кроме того, что он может обрабатывать поток более одного раза
putchar,
fputchar
аналогичны putc(stdout)
scanf, vscanf
используются для ввода из стандартного потока ввода
fscanf, vfscanf
используются для ввода из файла
sscanf, vsscanf
используются для ввода из массива char (то есть
Строка в языке Си
)
setvbuf
устанавливает режим буферизации для данного потока
tmpnam
создает временное имя файла
ungetc
помещает символ обратно в поток
173

puts
выводит символьную строку в stdout
Таблица 28.
Состав библиотеки stdlib.h
Имя функции
Описание
Реализация
abort
Ненормальное завершение программы
void abort(void);
abs
Модуль целого числа
int abs(int i);
assert
Макроопределение для вывода отладочных диагностических сообщений
void assert(int expression);
atexit
Запрос вызова функции при завершении работы программы
int atexit(void (*function)(void);
atof, atoff
Преобразование строки в значение типа double или float
double atof(const char *s);
float atoff(const char *s);
atii, atol
Строка в целое
int atoi(const char *s);
long atol(const char *s);
atol
Преобразовывает строку в long
long atol(const char *s);
bsearsh
Двоичный поиск
void *bsearch(const void *key, const
void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void
*));
calloc
Выделяет пространство для массивов
void *calloc(size_t n, size_t s);
void *calloc_r(void *reent, size_t ,
s);
div
Деление двух целых
div_t div(int n, int d);
ecvt,
ecvtf,
fcvt, fcvtf
Преобразование double или float в строку
char *ecvt(double val, int chars, int
*decpt, int *sgn);
char *ecvtf(float val, int chars, int
*decpt, int *sgn);
gvcvt,
gcvtf
Форматируют double и float как строку
char *gcvt(double val, int precision,
char *buf);
char *gcvtf(float val, int precision,
char *buf);
ecvtbuf,
fcvtbuf
Double или float в строку
char *ecvtbuf(double val, int chars,
int *decpt, int *sgn, char *buf);
char *fcvtbuf(double val, int decimals,
int *decpt, int *sgn, char *buf);
exit
Завершение выполнения программы
void exit(int code);
getenv
Поиск переменной окружения
char *getenv(const char *name);
labs
Модуль длинного целого
long labs(long i);
ldiv
Деление двyх длинных целых
ldiv_t ldiv(long n, long d);
malloc,
realloc,
free
Управление памятью
void *malloc(size_t nbytes);
void *realloc(void *aptr, size_t
nbytes);
void free(void *aptr);
mbtowc
Минимальный преобразователь мультибайтов в широкие символы
int mbtowc(wchar_t *pwc, const char *s,
size_t n);
qsort
Сортировка массива
void qsort(void *base, size_t nmemb,
size_t size,int (*compar)(const void *,
const void *) );
174

rand, srand
Псевдо-случайные числа
int rand(void);
void srand(unsigned int seed);
int _rand_r(void *reent);
void _srand_r(void *reent, unsigned int
seed);
strtod,
strtodf
Строка в double или float
double strtod(const char *str, char
**tail);
float strtodf(const char *str, char
**tail);
double _strtod_r(void *reent, const
char *str, char **tail);
strtol
Строка в long
ong strtol(const char *s, char
**ptr,int base);
strtoul
Строка в unsigned long
unsigned long strtoul(const char *s,
char **ptr, int base);
system
Выполняет командную строку
int system(char *s);
int _system_r(void *reent, char *s);
wctomb
Минимальный преобразователь широких символов в мультибайты
int wctomb(char *s, wchar_t wchar);
Таблица 29.
Состав библиотеки string.h
Имя функции
Описание
void *
memcpy
(void *dest, const void
*src, size_t n);
Копирует n байт из области памяти src в dest, которые не должны пересекаться, в противном случае результат неопределен (возможно как правильное копирование, так и нет)
void *
memmove
(void *dest, const void
*src, size_t n);
Копирует n байт из области памяти src в dest, которые в отличие от memcpy могут перекрываться
void *
memchr
(const void *s, char c,
size_t n);
Возвращает указатель на первое вхождение c в первых n байтах s, или NULL, если не найдено
int
memcmp
(const void *s1, const void
*s2, size_t n);
Сравнивает первые n символов в областях памяти
void *
memset
(void *, int z, size_t);
Заполняет область памяти одним байтом z
char *
strcat
(char *dest, const char
*src);
Дописывает строку src в конец dest
char *
strncat
(char *, const char *,
size_t);
Дописывает не более n начальных симолов строки src (или всю src, если ее длина меньше) в конец dest
char *
strchr
(const char *, int);
Ищет символ в строке, начиная с головы и возращает его адрес, или NULL если не найден
char *
strrchr
(const char *, int);
Ищет символ в строке, начиная с хвоста и возращает его адрес, или NULL если не найден
int
strcmp
(const char *, const char
*);
Лексикографическое сравнение строк
int
strncmp
(const char *, const char
*, size_t);
Лексикографическое сравнение первых n байтов строк
int
strcoll
(const char *, const char
*);
Лексикографическое сравнение строк с учетом локали collating order
char *
strcpy
(char *toHere, const char
*fromHere);
Копирует строку из одного места в другое
175

char *
strncpy
(char *toHere, const char
*fromHere, size_t);
Копирует до n байт строки из одного места в другое
char *
strerror
(int);
Возвращает строковое представление сообщения об ошибке errno
(не потоко-безопасная)
size_t
strlen
(const char *);
Возвращает длину строки
size_t
strspn
(const char *s, const
char *accept);
Определяет максимальную длину начальной подстроки, состоящей исключительно из байтов, перечисленных в accept
size_t
strcspn
(const char *s, const
char *reject);
Определяет максимальную длину начальной подстроки, состоящей исключительно из байтов, не перечисленных в reject
char *
strpbrk
(const char *s, const
char *accept);
Находит первое вхождение любого символа, не перечисленного в accept
char *
strstr
(const char *haystack,
const char *needle);
Находит первое вхождение строки needle в haystack
char *
strtok
(char *, const char *);
Преобразует строку в последовательность токенов. Не потоко-безопасная, нереентрантная.
size_t
strxfrm
(char *dest, const char
*src, size_t n);
Создает оттранслированную копию строки, такую, что дословное сравнение ее (strcmp) будет эквивалентно сравнению с коллатором.
Таблица 30.
Состав библиотеки time.h
Имя функции
Описание
int
tm_sec;
Секунды от начала минуты (0,61)
int tm_min;
Минуты от начала часа (0,59)
int tm_hour;
Часы от полуночи (0,23)
int tm_mday;
Число месяца (1,31)
int tm_mon;
Месяцы после января (0,11)
int tm_year;
Годы с 1900
int tm_wday;
Дни с воскресенья (0,6)
int tm_yday;
Дни с первого января (0,365)
int tm_isdst;
Признак летнего времени
Приложение 2. Примеры реализации алгоритмов
Пример 1. Дано 10 чисел. Определить, какие из них больше своих соседей.
#include
#include
int main()
{
int arr[10];
// Массив arr из 10 целочисленных элементов
int i;
// Счетчик для циклов
for (i = 0; i < 10; i++) // Вводим элементы массива
{
printf("Введите %d элемент массива : ", i);
scanf("%d",&arr[i]);
}
176

for (i = 1; i <= 8; i++) // Перебираем все элементы массива от 1 до 8
{
/* Сравниваем элемент с предыдущим и слудующим. Если элемент больше, то выводим
его на экран */
if(arr[i] > arr[i-1] && arr[i] > arr[i+1])
printf("\nЭлемент %d больше своих сосдей : %d\n",i,arr[i]);
}
system("pause");
}
Результат выполнения программы
Введите 0 элемент массива : 1
Введите 1 элемент массива : 3
Введите 2 элемент массива : 4
Введите 3 элемент массива : 5
Введите 4 элемент массива : 2
Введите 5 элемент массива : 8
Введите 6 элемент массива : 6
Введите 7 элемент массива : 10
Введите 8 элемент массива : 5
Введите 9 элемент массива : 1
Элемент 3 больше своих сосдей : 5
Элемент 5 больше своих сосдей : 8
Элемент 7 больше своих сосдей : 10
Пример 2. Напечатать заданный непустой текст, удалив из него все цифры.
#include
#include
#include
int main()
{
int i;
char z;
// Текущий вводимый символ
printf (“\nНапишите предложение с точкой в конце:\n”);
/* Пока не встретилась точка считываем символы. Если встретилась цифра,
заканчиваем итерацию цикла, иначе выводим символ */
for (i = 0, z = 'a'; z != '.'; i++) {
scanf ("%c", &z);
if (z == '0' || z == '1' || z == '2' || z == '3' || z == '4') continue;
if (z == '5' || z == '6' || z == '7' || z == '8' || z == '9') continue;
printf (“Полученный текст : “);
printf ("%c\n", z);
}
system ("pause");
}
Результат выполнения программы
Напишите предложение с точкой в конце:
З2д3е6с8ь0 н76е9т 2н5и о8д0н7ой 3ц6и6фры4
Полученный текст : Здесь нет ни одной цифры
Пример 3. Определить, находится ли точка внутри шара?
#include
#include
177

#include
typedef struct
{
float x;
float y;
float z;
float R;
} shar;
typedef struct
{
float x;
float y;
float z;
} tochka;
int main()
{
shar S;
tochka T;
printf ("\n Введите координаты шара: x,y,z,R ");
scanf ("%f %f %f %f",&S.x,&S.y,&S.z,&S.R);
printf ("\n Введите координаты точки:x,y,z ");
scanf ("%f %f %f", &T.x,&T.y,&T.z);
if ((T.x-S.x)*(T.x-S.x)+(T.y-S.y)*(T.y-S.y)+(T.z-S.z)*(T.z-S.z)<=S.R*S.R)
printf ("\n Точка находится в шаре!");
else
printf ("\n Точка не находится в шаре!");
getch();
}
Результат выполнения программы
Введите координаты шара: x,y,z,R 0 0 0 2
Введите координаты точки:x,y,z 1 1 1
Точка находится в шаре!
Пример 4. Вычисление периода дроби.
#include
#include
#include
#include
// объявление переменных
int m,n;
int* ostatki;
int* period;
unsigned int len;
// проверка остатков
int IsInOstatki(int ost, int len)
{
//len-1 чтоб не проверять остаток, ввденый на текущем шаге
for (int i = 0; i < len - 1; i++)
{
if (ostatki[i] == ost) return i;
}
178

return 0;
}
1   ...   7   8   9   10   11   12   13   14   15


написать администратору сайта