Программирование на языке Си

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Учебное пособие предлагает читателю курс программирования, ориентированный на язык Си. Пособие содержит много примеров с часто применяемыми алгоритмами и фундаментальными структурами данных, при этом для некоторых задач приводится несколько способов решения в зависимости от начальных данных. Также имеется большое количество задач для отработки основных приемов программирования на языке Си. Целью данного учебного пособия является не только познакомить читателя с языком Си, но и показать тонкости данного языка, а также научить писать правильные и эффективные программы. Предназначено для студентов, изучающих язык программирования Си, а также для программистов разной квалификации.

Author(s): Рацеев С.М.
Publisher: УлГУ
Year: 2015

Language: Russian
Commentary: Добавлены закладки с точным позиционированием для удобной навигации по книге.. Поправлены кривые ссылки (кликабельность) на страницы в "Оглавлении".
Pages: 320
City: Ульяновск

Оглавление ...4
Введение ...8
1. ТИПЫ ДАННЫХ И ОПЕРАТОРЫ ...9
1.1. Переменные и базовые типы данных ...9
1.2. Операции и выражения ...14
1.3. Символические константы ...17
1.4. Типизированные константы ...20
1.5. Несколько слов о функции main() ...20
2. ВВОД И ВЫВОД В СИ ...22
2.1. Стандартный ввод-вывод ...22
2.2. Форматный ввод-вывод ...26
3. ЦИКЛЫ И ОПЕРАТОРЫ СРАВНЕНИЯ ...31
3.1. Условный оператор ...31
3.2. Оператор выбора switch ...32
3.3. Операторы цикла ...33
3.4. Операторы break и continue ...36
3.5. Примеры ...37
3.6. Вычисление значений элементарных функций ...43
3.7. Задачи ...45
4. ОБРАБОТКА ПОСЛЕДОВАТЕЛЬНОСТЕЙ ...47
4.1. Примеры ...47
4.2. Задачи ...50
5. ОДНОМЕРНЫЕ МАССИВЫ ...52
5.1. Начальные сведения о массивах ...52
5.2. Примеры работы с массивами ...54
5.3. Задачи ...63
6. МНОГОМЕРНЫЕ МАССИВЫ ...66
6.1. Определение и инициализация двумерных массивов ...66
6.2. Примеры с двумерными массивами ...67
6.3. Задачи ...72
7. УКАЗАТЕЛИ И МАССИВЫ ...74
7.1. Указатели и адреса ...74
7.2. Указатели и аргументы функций ...75
7.3. Указатели и массивы ...81
7.4. Операции с указателями ...84
7.5. Указатели с типом void ...86
7.6. Модификатор const ...87
7.7. Массивы переменного размера ...87
7.8. Массивы указателей ...90
7.9. Двумерные массивы переменного размера ...92
8. СИМВОЛЫ И СТРОКИ ...99
8.1. Представление символьной информации в ЭВМ ...99
8.2. Библиотека обработки символов ...100
8.3. Строки в языке Си ...101
8.4. Функции обработки строк ...106
8.5. Функции преобразования строк ...111
8.6. Примеры работы со строками ...112
8.7. Разбиение строки на лексемы ...127
8.8. Задачи ...143
9. СТРУКТУРЫ ...146
9.1. Основные сведения о структурах ...146
9.2. Объединения ...149
10. ДИРЕКТИВЫ ПРЕПРОЦЕССОРА ...152
10.1. Директива \#include ...152
10.2. Директива \#define ...152
10.3. Директива \#undef ...154
10.4. Условная компиляция ...155
11. ФУНКЦИИ ...158
11.1. Основные сведения о функциях ...158
11.2. Прототипы функций ...159
11.3. Классы памяти ...160
11.4. Указатели на функции ...164
11.5. Рекурсия ...168
11.6. Примеры с использованием рекурсии ...169
11.7. Метод «разделяй и властвуй» ...178
11.8. Задачи на применение рекурсии ...182
12. РАБОТА С БИТАМИ ПАМЯТИ ...184
12.1. Битовые операции ...184
12.2. Примеры с использованием битовых операций ...187
12.3. Задачи ...194
13. РАБОТА С ФАЙЛАМИ ...196
13.1. Файлы и потоки ...196
13.2. Текстовые файлы ...200
13.3. Двоичные файлы ...205
13.4. Шифрование файлов ...212
13.5. Задачи на текстовые файлы ...216
13.6. Задачи на двоичные файлы ...220
14. СТРУКТУРЫ ДАННЫХ ...224
14.1. Односвязные списки ...224
14.2. Примеры работы с односвязными списками ...227
14.3. Задачи на односвязные списки ...240
14.4. Стеки, очереди ...242
14.5. Задачи на стеки и очереди ...245
14.6. Двусвязные списки ...246
14.7. Задачи на двусвязные списки ...248
14.8. Бинарные деревья ...249
14.9. Примеры с использованием бинарных деревьев ...250
14.10. Задачи на бинарные деревья ...277
Приложение 1. АЛГОРИТМЫ ПОИСКА ...279
1. Линейный поиск ...279
2. Поиск с барьером ...279
3. Двоичный поиск ...280
Приложение 2. АЛГОРИТМЫ СОРТИРОВКИ ...282
Несколько слов о сложности алгоритмов ...282
1. Метод прямого выбора ...283
2. Метод прямого включения ...284
3. Пузырьковая сортировка ...286
4. Шейкерная сортировка ...287
5. Быстрая сортировка ...288
6. Сортировка подсчетом ...291
Приложение 3. СОРТИРОВКА ИНДЕКСОВ И УКАЗАТЕЛЕЙ ...295
1. Сортировка индексов на основе метода прямого выбора ...295
2. Сортировка индексов на основе пузырьковой сортировки ...297
3. Сортировка индексов на основе быстрой сортировки ...297
4. Сортировка двумерных массивов ...299
5. Сортировка строк ...301
Приложение 4. СОРТИРОВКА ФАЙЛОВ И СПИСКОВ ...305
1. Сортировка двоичных файлов ...305
2. Сортировка линейных списков ...307
Приложение 5. СОРТИРОВКА С УСЛОВИЕМ ...308
1. Сортировка с условием на базе пузырьковой сортировки ...308
2. Сортировка с условием на базе быстрой сортировки ...310
3. Сортировка с условием двоичных файлов ...311
4. Сортировка с условием линейного списка на базе пузырьковой сортировки ...314
5. Сортировка с условием линейного списка на базе быстрой сортировки ...316
ЛИТЕРАТУРА ...318