1. ЧТО ТАКОЕ ПРОГРАММА НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ 6
2. ОБЩЕЕ ЗНАКОМСТВО С ЯЗЫКОМ С 6
3. Структура простой программы на языке с 7
4. ЧТО ТАКОЕ ПРОГРАММА на языке с 11
5. Представление информации И ТИПЫ ДАННЫХ в языке С 13
6. КОНСТАНТЫ 20
7. переменные 21
8. элементарный вВод и вывод информации 22
9. выражения и операции 30
9.1. Арифметические операции 33
9.2. Операция изменения знака 33
9.3. Операции инкремента и декремента 33
9.4. Операция присваивания 34
9.5. Арифметические операции с присваиванием: +=, -=, *=, /=, %= 35
9.6. Поразрядные логические операции 35
9.7. Операции сдвига: >> и << 36
9.8. Логические операции и операции отношения 37
9.9. Условная операция «? :» 38
9.10. Операция последовательного вычисления 38
9.11. Операция определения требуемой памяти в байтах sizeof 38
9.12. Операция приведения типа (type) 39
10. операторы управления вычислительным процессом 39
10.1. Операторы ветвления if и else 40
10.2. Оператор switch 42
10.3. Оператор цикла while 43
10.4. Оператор цикла do…while 47
10.5. Оператор цикла for 48
10.6. Бесконечные циклы 50
10.7. Другие управляющие средства языка С 51
10.8. Стандартные математические функции 54
11. вычисление выражений и побочные эффекты 54
11.1. Преобразования типов при вычислении выражений 54
11.2. Побочные эффекты при вычислении выражений 56
12. массивы 59
12.1. Описание массива 59
12.2. Инициализация массива 59
12.3. Ввод-вывод массива 60
12.4. Двумерные массивы (массивы массивов) 62
13. указатели 64
14. адресная арифметика 75
15. массивы и указатели 78
15.1. Указатели и одномерные массивы 78
15.2. Указатели и двумерные массивы 81
16. строки 86
17. МАССИВЫ строк 95
18. функции 98
18.1. Определение функции в языке С 98
18.2. Возвращение значений из функции 99
18.3. Формальные и фактические параметры функции 101
18.4. Вызов функции 102
18.5. Объявление и определение функции: прототип функции 103
19. ПЕРЕДАЧА ПАРАМЕТРОВ В ФУНКЦИИ 105
19.1. Способы передачи параметров в функции 105
19.2. Передача параметров в функции в языке С 105
19.3. Передача указателей в функции 106
20. КЛАССЫ ХРАНЕНИЯ И видимость ПЕРЕМЕННЫХ 108
20.1. Общие положения 108
20.2. Спецификаторы класса памяти 109
20.3. Область видимости функций 110
20.4. Глобальные переменные 110
20.5. Глобальные статические переменные 112
20.6. Локальные переменные 112
20.7. Статические локальные переменные 115
20.8. Регистровые переменные 117
20.9. Выводы 117
21. ОРГАНИЗАЦИЯ ПАМЯТИ ПРОГРАММЫ 118
22. МНОГОФАЙЛОВАЯ КОМПИЛЯЦИЯ (ПРОЕКТЫ) 120
23. ПЕРЕДАЧА В ФУНКЦИИ МАССИВОв 123
23.1. Передача одномерных массивов в функции 123
23.2. Передача двумерных массивов в функции 126
23.3. Передача в функции символьных строк 129
23.4. Возвращение указателей из функций 129
24. ФУНКЦИИ С ПЕРЕМЕННЫМ КОЛИЧЕСТВОМ АРГУМЕНТОВ 131
24.1. Соглашения о вызовах: модификаторы функций 131
24.2. Объявление списка параметров переменной длины 134
25. ПЕРЕДАЧА ПАРАМЕТРОВ В ФУНКЦИЮ MAIN() 135
26. УКАЗАТЕЛИ НА ФУНКЦИЮ 138
27. стандартные ФУНКЦИи языка с 141
27.1. Функции для работы со строками 141
27.2. Функции для проверки символов и преобразования данных 147
27.3. Функция быстрой сортировки – gsort() 148
27.4. Функция двоичного поиска – bsearch() 152
28. работа с файлами 153
28.1. Основные понятия 153
28.2. Основные функции для работы с файлами 155
28.3. Открытие и закрытие файлов 155
28.4. Ввод/вывод символов 157
28.5. Ввод/вывод строк 158
28.6. Форматированный ввод/вывод 159
28.7. Ввод/вывод блоков данных 161
28.8. Другие средства для работы с файлами 163
28.9. Ввод/вывод низкого уровня (префиксный доступ к файлам) 166
29. типы, определяемые пользователем:
Перечисления, структуры и объединения 167
29.1. Переименование типов – оператор typedef 167
29.2. Перечисления (enum) 167
29.3. Основные сведения о структурах 169
29.4. Структурные переменные в памяти компьютера 171
29.5. Доступ к полям структуры 172
29.6. Массивы структур 174
29.7. Структуры и функции 176
29.8. Объединения (union) 178
30. Динамическая память 180
30.1. Понятие динамического объекта 180
30.2 Создание и уничтожение динамических объектов 181
30.3 Динамическое размещение одномерных массивов и строк 183
30.4 Динамическое размещение двумерных массивов 186
30.5. Функции для работы с блоками памяти 187
31. ДИНАМИЧЕСКИЕ структуры данных 189
31.1. Понятие структуры данных 189
31.2. Структуры, ссылающиеся на себя 189
31.3. Связанные списки 190
31.4. Стеки 199
31.5. Очереди 201
32. препроцессор языка с 202
32.1 Директива включения файлов 203
32.2. Директива определения макрокоманд (макросов) 204
32.3 Директива условной компиляции 207
32.4 Дополнительные директивы препроцессора 209
Также язык С широко используется для подготовки специалистов, хотя изначально разрабатывался не для новичков, как тот же Паскаль. Многие языки взяли за основу синтаксис языка С. Язык С не только важен сам по себе, но и открывает дорогу к другим современным и очень популярным языкам, таким как C++, Java, C#, Perl, JavaScript и т.п.