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

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

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

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

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

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

Разделы в курсе «C для начинающих (теория и задачи)» 26 разделов Уроки в курсе «C для начинающих (теория и задачи)» 156 уроков Тесты в курсе «C для начинающих (теория и задачи)» 126 тестов Задачи в курсе «C для начинающих (теория и задачи)» 204 задачи Время прохождения курса «C для начинающих (теория и задачи)» 69 ч. Последнее обновление курса «C для начинающих (теория и задачи)» обн. 12 августа 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. Что дальше?