Курс на Stepik
Обложка курса «C для начинающих (теория и задачи)» на Stepik
Бесплатно

C для начинающих (теория и задачи) ★ 4.902

Открыть на
STEPIK.ORG

Предназначен как для студентов и школьников, которые еще ни разу не писали программ, так и для желающих изучить особенности языка Си (пропускайте части "для начинающих"). Синтаксис языка Си, в том числе работа с указателями и динамической памятью. Объяснения на пальцах. Много задач. Алгоритмы (чуть-чуть). Задачи на "подумать". Инструменты программиста: работа в командной строке UNIХ, тестирование и отладка, система контроля версий git

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «C для начинающих (теория и задачи)»Учеников на курсе 28 853
Сертификаты, выданные на курсе «C для начинающих (теория и задачи)»Сертификатов выдано 287
Отзывы о курсе «C для начинающих (теория и задачи)»Отзывов получено 61
Рейтинг курса «C для начинающих (теория и задачи)»Рейтинг курса 4.902
Уроки в курсе «C для начинающих (теория и задачи)»Количество уроков 156
Тесты в курсе «C для начинающих (теория и задачи)»Количество квизов 126
Задачи с кодом в курсе «C для начинающих (теория и задачи)»Количество задач с кодом 204
Время прохождения курса «C для начинающих (теория и задачи)»Время прохождения курса —
Обновления курса «C для начинающих (теория и задачи)»Обновления курса — —
Дата публикации курса «C для начинающих (теория и задачи)»Дата публикации курса — ———
Последнее обновление курса «C для начинающих (теория и задачи)»Последнее обновление — ———

Содержание курса

Разделы в курсе «C для начинающих (теория и задачи)» 26 разделов Уроки в курсе «C для начинающих (теория и задачи)» 156 уроков Тесты в курсе «C для начинающих (теория и задачи)» 126 тестов Задачи в курсе «C для начинающих (теория и задачи)» 204 задачи Время прохождения курса «C для начинающих (теория и задачи)» 65 ч. Последнее обновление курса «C для начинающих (теория и задачи)» обн. 4 октября 2026

Содержание курса

3 урока
1. Как учиться на курсе ↗
2. Устанавливаем программы ↗
3. Справочник ↗

Введение

4 урока
1. Что такое программирование ↗
2. Файловая система Linux ↗
3. Командная строка Linux ↗
4. gcc ↗

Первые программы на С. Типы данных

10 уроков
1. Hello, world! ↗
2. \n ↗
3. 2+3 ↗
4. float ↗
5. задачи ↗
6. += и ++ ↗
7. целые числа ↗
8. числа с плавающей точкой ↗
9. %02d и %.3f ↗
10. Видео и презентация (старый вариант) ↗

Функции (и указатели)

4 урока
1. Видео и презентация ↗
2. Галеоны и #define ↗
3. Функции ↗
4. Прототипы функций ↗

Переменные и указатели

8 уроков
1. Переменные локальные и аргументы ↗
2. Изменить значение переменной ↗
3. Адреса и указатели ↗
4. Указатели в аргументах ↗
5. int ** ↗
6. Геометрические задачи ↗
7. Глобальные и static ↗
8. Заключение (функции) ↗

Препроцессор

2 урока
1. #define ↗
2. Условная компиляция ↗

Символы. Структуры

7 уроков
1. Видео и презентация ↗
2. Символы ↗
3. struct ↗
4. typedef ↗
5. struct: примеры кода ↗
6. struct: контрольные вопросы ↗
7. struct: задачи ↗

Условные и логические операторы

7 уроков
1. Видео и презентация ↗
2. if и else ↗
3. Логические операторы ↗
4. switch..case, ? : ↗
5. if - задачи для начинающих ↗
6. if - обязательные задачи ↗
7. if - задачи на "подумать" ↗

Рекурсивный вызов функций

2 урока
1. Рекурсивный вызов функций ↗
2. Задачи на рекурсию ↗

Циклы

11 уроков
1. Видео и презентация ↗
2. Операторы while и do..while ↗
3. while: задачи для начинающих ↗
4. do .. while ↗
5. Оператор for ↗
6. break, continue, goto ↗
7. Возведение в натуральную степень ↗
8. неизвестное количество чисел ↗
9. for: задачи для начинающих ↗
10. циклы: задачи для продолжающих ↗
11. циклы: задачи на "подумать" ↗

Массивы и адресная арифметика

13 уроков
1. Видео и презентация ↗
2. понятие массива ↗
3. задачи для начинающих ↗
4. массив ↗
5. задачи легкие ↗
6. sizeof ↗
7. адресная арифметика ↗
8. копирование массива ↗
9. передаем массив в функцию ↗
10. задачи обязательные ↗
11. числа Фибоначчи ↗
12. задачи со структурами ↗
13. задачи на "подумать" ↗

Многомерные массивы

4 урока
1. 2D массивы для начинающих ↗
2. 2D массивы: задачи для начинающих ↗
3. многомерные массивы ↗
4. 2D массивы: дополнительные задачи ↗

Файлы

4 урока
1. Перенаправление в командной строке ↗
2. fopen - открытие файла ↗
3. Обработка ошибок, perror ↗
4. Функции ввода-вывода ↗

Строки

10 уроков
1. Хранение строк ↗
2. Печать и чтение строк ↗
3. Стандартные функции языка С ↗
4. Стандартные функции языка С (продолжение) ↗
5. Задачи на строки ↗
6. Преобразование из строки в число и обратно ↗
7. const ↗
8. replace ↗
9. unicode ↗
10. Строки: задачи на "подумать" ↗

Алгоритмы сортировки

1 урок
1. Задача сортировки ↗

Сортировка с помощью qsort

5 уроков
1. Указатели на функции ↗
2. Как писать "универсальные" функции на примере sum ↗
3. Использование функции qsort ↗
4. Примеры сортировки ↗
5. Задачи на сортировку ↗

Динамическая память

7 уроков
1. Чтение чисел и текста ↗
2. malloc, realloc, free ↗
3. Динамический двумерный массив. malloc(n*m*sizeof(Data)) ↗
4. Динамический двумерный массив. Классический. ↗
5. Динамический двумерный массив в один malloc. Интеллектуальный. ↗
6. Длинная арифметика. Теперь с динамической памятью. ↗
7. Задачи на динамическую память ↗

Структуры данных. Стек

13 уроков
1. Интерфейс и реализация. Стек ↗
2. Где нужен стек - корректная последовательность скобок ↗
3. Обратная польская запись - вычисление выражения ↗
4. git - начало работы ↗
5. stack - реализация на основе массива (print) ↗
6. stack - реализация на основе массива (push, pop) ↗
7. stack - реализация на основе массива (is_empty, is_full) ↗
8. stack - рефакторинг тестов ↗
9. stack на основе динамического массива ↗
10. stack на основе динамического массива (1 malloc) ↗
11. Стек. Итоги ↗
12. Стек. Типичные ошибки ↗
13. Стек. Задачи на использование ↗

Очередь и стек на основе односвязного списка

6 уроков
1. Односвязный список. API ↗
2. Печать односвязного списка ↗
3. Добавление узла в односвязный список ↗
4. Удаление узла из односвязного списка ↗
5. Стек и очередь на основе односвязного списка и массива ↗
6. Задача - стек на основе односвязного списка ↗

Двусвязный список

8 уроков
1. Двусвязный список. Циклический с барьерным элементом ↗
2. Модель и печать циклического списка с барьерным элементом ↗
3. Добавление узла и инициализация списка. insert, init ↗
4. Удаление узла. remove ↗
5. Функции с выделением памяти. push ↗
6. Освобождение памяти. delete ↗
7. Применение функции ко всем элементам. foreach ↗
8. Задачи на списки ↗

Деревья

6 уроков
1. Виды деревьев ↗
2. BST. Печать узла. ↗
3. BST. Добавление узла, удаление дерева ↗
4. BSТ. Удаление узла ↗
5. BST задачи ↗
6. Частотный словарь. Лес. ↗

Работа с битами

10 уроков
1. Системы счисления ↗
2. bin, oct, hex ↗
3. Представление целых чисел в бинарном виде ↗
4. (char)x == 0xFF ↗
5. Побитовые операции ↗
6. Задача про битовые поля ↗
7. Изменение отдельных бит ↗
8. float ↗
9. Битовые поля в структурах ↗
10. union ↗

Дополнительные главы

6 уроков
1. Аргументы командной строки. argc и argv ↗
2. Функции с переменным числом аргументов. va_list ↗
3. Программа-проект ↗
4. valgrind - проверка работы с памятью ↗
5. make ↗
6. enum ↗

Динамическое программирование

1 урок
1. Вычисление чисел Фибоначчи ↗

Ссылки на материалы

1 урок
1. Видео, презентации, контесты ↗

Заключение

1 урок
1. Что дальше? ↗