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

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

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

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

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «C для начинающих (теория и задачи)»Учеников на курсе 25 051
Сертификаты, выданные на курсе «C для начинающих (теория и задачи)»Сертификатов выдано 230
Отзывы о курсе «C для начинающих (теория и задачи)»Отзывов получено 56
Рейтинг курса «C для начинающих (теория и задачи)»Рейтинг курса 4.893
Уроки в курсе «C для начинающих (теория и задачи)»Количество уроков 155
Тесты в курсе «C для начинающих (теория и задачи)»Количество квизов 108
Задачи с кодом в курсе «C для начинающих (теория и задачи)»Количество задач с кодом 202
Время прохождения курса «C для начинающих (теория и задачи)»Время прохождения курса
Обновления курса «C для начинающих (теория и задачи)»Обновления курса
Дата публикации курса «C для начинающих (теория и задачи)»Дата публикации курса
Последнее обновление курса «C для начинающих (теория и задачи)»Последнее обновление

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

Разделы в курсе «C для начинающих (теория и задачи)» 26 разделов Уроки в курсе «C для начинающих (теория и задачи)» 155 уроков Тесты в курсе «C для начинающих (теория и задачи)» 108 тестов Задачи в курсе «C для начинающих (теория и задачи)» 202 задачи Время прохождения курса «C для начинающих (теория и задачи)» 71 ч. Последнее обновление курса «C для начинающих (теория и задачи)» обн. 15 мая 2026

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

3 урока
Открытый
1.1 Как учиться на курсе
23 311
2 496
7м 24с
445
Открытый
1.2 Устанавливаем программы
15 359
11 610
3м 54с
345
Открытый
1.3 Справочник
13 231
13 231
2м 37с
121

2. Введение

4 урока
Открытый
2.1 Что такое программирование
14 639
11 643
5м 37с
370
Открытый
2.2 Файловая система Linux
13 108
8 414
3м 24с
328
Открытый
2.3 Командная строка Linux
11 333
7 436
4м 30с
316
Открытый
2.4 gcc
10 990
8 777
2м 0с
301

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

10 уроков
Открытый
3.1 Hello, world!
14 296
490
16м 51с
449
Открытый
3.2 \n
11 619
9 412
4м 40с
325
Открытый
3.3 2+3
11 295
7 764
27м 16с
524
Открытый
3.4 float
9 900
6 706
27м 56с
351
Открытый
3.5 задачи
9 218
3 081
133м 40с
411
Открытый
3.6 += и ++
7 546
5 832
8м 30с
288
Открытый
3.7 целые числа
7 221
3 541
26м 41с
259
Открытый
3.8 числа с плавающей точкой
6 708
5 398
5м 21с
163
Открытый
3.9 %02d и %.3f
6 832
5 134
8м 46с
281
Открытый
3.10 Видео и презентация (старый вариант)
6 292
6 172
1м 48с
170

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

4 урока
Открытый
4.1 Видео и презентация
7 196
1 925
67м 22с
165
Открытый
4.2 Галеоны и #define
7 256
5 753
5м 53с
190
Открытый
4.3 Функции
7 285
4 015
25м 52с
206
Открытый
4.4 Прототипы функций
5 697
3 025
53м 49с
226

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

8 уроков
Открытый
5.1 Переменные локальные и аргументы
5 453
4 366
6м 29с
190
Открытый
5.2 Изменить значение переменной
5 186
4 329
3м 15с
150
Открытый
5.3 Адреса и указатели
5 833
3 867
17м 43с
211
Открытый
5.4 Указатели в аргументах
5 424
2 976
31м 0с
238
Открытый
5.5 int **
4 257
2 585
31м 50с
191
Открытый
5.6 Геометрические задачи
4 348
1 763
87м 28с
167
Открытый
5.7 Глобальные и static
3 997
3 202
8м 12с
202
Открытый
5.8 Заключение (функции)
3 229
2 763
1м 50с
114

6. Препроцессор

2 урока
Открытый
6.1 #define
4 109
3 313
9м 56с
179
Открытый
6.2 Условная компиляция
3 782
693
25м 49с
161

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

7 уроков
Открытый
7.1 Видео и презентация
3 740
1 095
83м 29с
92
Открытый
7.2 Символы
3 124
1 558
35м 50с
105
Открытый
7.3 struct
3 889
159
49м 21с
151
Открытый
7.4 typedef
2 958
1 587
11м 29с
105
Открытый
7.5 struct: примеры кода
2 929
1 963
12м 52с
102
Открытый
7.6 struct: контрольные вопросы
2 510
1 950
6м 56с
60
Открытый
7.7 struct: задачи
2 680
836
167м 17с
92

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

7 уроков
Открытый
8.1 Видео и презентация
2 590
806
39м 20с
48
Открытый
8.2 if и else
3 465
1 416
8м 0с
102
Открытый
8.3 Логические операторы
2 835
1 751
15м 13с
94
Открытый
8.4 switch..case, ? :
3 745
2 460
3м 55с
74
Открытый
8.5 if - задачи для начинающих
2 665
1 196
47м 33с
73
Открытый
8.6 if - обязательные задачи
2 368
598
198м 35с
93
Открытый
8.7 if - задачи на "подумать"
2 015
267
98м 15с
71

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

2 урока
Открытый
9.1 Рекурсивный вызов функций
3 624
2 794
9м 11с
145
Открытый
9.2 Задачи на рекурсию
3 463
154
297м 55с
116

10. Циклы

11 уроков
Открытый
10.1 Видео и презентация
2 115
702
53м 6с
39
Открытый
10.2 Операторы while и do..while
2 638
1 600
5м 11с
72
Открытый
10.3 while: задачи для начинающих
2 277
906
55м 19с
59
Открытый
10.4 do .. while
2 148
1 083
17м 20с
60
Открытый
10.5 Оператор for
2 350
1 559
5м 27с
78
Открытый
10.6 break, continue, goto
2 075
1 316
8м 15с
81
Открытый
10.7 Возведение в натуральную степень
1 919
1 717
1м 50с
39
Открытый
10.8 неизвестное количество чисел
1 899
1 145
11м 36с
56
Открытый
10.9 for: задачи для начинающих
1 955
997
17м 39с
48
Открытый
10.10 циклы: задачи для продолжающих
1 706
429
110м 19с
58
Открытый
10.11 циклы: задачи на "подумать"
1 561
127
111м 14с
18

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

13 уроков
Открытый
11.1 Видео и презентация
2 430
760
37м 35с
40
Открытый
11.2 понятие массива
3 078
1 332
10м 52с
62
Открытый
11.3 задачи для начинающих
2 298
933
27м 34с
63
Открытый
11.4 массив
2 826
2 211
4м 4с
78
Открытый
11.5 задачи легкие
2 413
958
42м 10с
69
Открытый
11.6 sizeof
2 358
1 933
2м 21с
63
Открытый
11.7 адресная арифметика
2 274
1 521
12м 7с
71
Открытый
11.8 копирование массива
2 033
1 686
6м 30с
59
Открытый
11.9 передаем массив в функцию
2 081
1 724
3м 3с
57
Открытый
11.10 задачи обязательные
2 012
327
215м 54с
67
Открытый
11.11 числа Фибоначчи
1 699
1 699
0м 6с
21
Открытый
11.12 задачи со структурами
1 888
397
80м 54с
50
Открытый
11.13 задачи на "подумать"
1 423
1 423
0м 3с
10

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

4 урока
Открытый
12.1 2D массивы для начинающих
2 269
1 012
8м 12с
59
Открытый
12.2 2D массивы: задачи для начинающих
1 680
799
25м 44с
43
Открытый
12.3 многомерные массивы
1 718
452
100м 51с
67
Открытый
12.4 2D массивы: дополнительные задачи
1 427
172
30м 55с
23

13. Файлы

4 урока
Открытый
13.1 Перенаправление в командной строке
2 635
2 003
4м 27с
83
Открытый
13.2 fopen - открытие файла
2 390
1 412
7м 24с
61
Открытый
13.3 Обработка ошибок, perror
2 068
1 539
3м 23с
58
Открытый
13.4 Функции ввода-вывода
1 919
1 919
0м 6с
13

14. Строки

10 уроков
Открытый
14.1 Хранение строк
2 611
488
49м 3с
95
Открытый
14.2 Печать и чтение строк
2 093
167
56м 29с
69
Открытый
14.3 Стандартные функции языка С
1 791
440
19м 51с
65
Открытый
14.4 Стандартные функции языка С (продолжение)
1 522
423
18м 9с
56
Открытый
14.5 Задачи на строки
1 412
420
91м 46с
46
Открытый
14.6 Преобразование из строки в число и обратно
1 275
486
9м 20с
32
Открытый
14.7 const
1 274
484
4м 38с
28
Открытый
14.8 replace
1 369
376
36м 33с
35
Открытый
14.9 unicode
1 084
1 084
0м 2с
12
Открытый
14.10 Строки: задачи на "подумать"
1 108
20
175м 38с
10

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

1 урок
Открытый
15.1 Задача сортировки
1 424
1 424
0м 8с
9

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

5 уроков
Открытый
16.1 Указатели на функции
1 737
1 737
0м 8с
18
Открытый
16.2 Как писать "универсальные" функции на примере sum
1 516
1 516
0м 9с
9
Открытый
16.3 Использование функции qsort
1 386
1 386
0м 3с
11
Открытый
16.4 Примеры сортировки
1 276
665
3м 3с
28
Закрытый
16.5 Задачи на сортировку
924
229
131м 56с
31

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

7 уроков
Открытый
17.1 Чтение чисел и текста
2 156
585
61м 7с
62
Открытый
17.2 malloc, realloc, free
2 094
305
42м 30с
54
Открытый
17.3 Динамический двумерный массив. malloc(n*m*sizeof(Data))
1 389
399
8м 15с
29
Открытый
17.4 Динамический двумерный массив. Классический.
1 237
362
7м 20с
39
Открытый
17.5 Динамический двумерный массив в один malloc. Интеллектуальный.
1 157
321
10м 35с
33
Открытый
17.6 Длинная арифметика. Теперь с динамической памятью.
1 154
152
124м 35с
34
Открытый
17.7 Задачи на динамическую память
1 030
1 030
0м 4с
1

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

13 уроков
Открытый
18.1 Интерфейс и реализация. Стек
1 850
1 299
2м 38с
44
Открытый
18.2 Где нужен стек - корректная последовательность скобок
1 495
1 091
2м 28с
42
Открытый
18.3 Обратная польская запись - вычисление выражения
1 409
1 068
1м 5с
35
Открытый
18.4 git - начало работы
1 498
1 498
-
21
Открытый
18.5 stack - реализация на основе массива (print)
1 392
907
2м 20с
30
Открытый
18.6 stack - реализация на основе массива (push, pop)
1 115
785
2м 1с
34
Открытый
18.7 stack - реализация на основе массива (is_empty, is_full)
971
728
2м 26с
29
Открытый
18.8 stack - рефакторинг тестов
885
310
22м 28с
35
Открытый
18.9 stack на основе динамического массива
906
252
48м 39с
38
Открытый
18.10 stack на основе динамического массива (1 malloc)
822
615
1м 18с
25
Открытый
18.11 Стек. Итоги
849
624
2м 52с
19
Открытый
18.12 Стек. Типичные ошибки
749
529
1м 50с
17
Открытый
18.13 Стек. Задачи на использование
851
150
148м 50с
25

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

6 уроков
Открытый
19.1 Односвязный список. API
1 341
880
2м 14с
39
Открытый
19.2 Печать односвязного списка
943
654
1м 58с
21
Открытый
19.3 Добавление узла в односвязный список
839
612
1м 22с
22
Открытый
19.4 Удаление узла из односвязного списка
754
549
1м 11с
23
Открытый
19.5 Стек и очередь на основе односвязного списка и массива
803
607
1м 2с
21
Открытый
19.6 Задача - стек на основе односвязного списка
735
160
97м 22с
28

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

8 уроков
Открытый
20.1 Двусвязный список. Циклический с барьерным элементом
963
558
2м 49с
31
Открытый
20.2 Модель и печать циклического списка с барьерным элементом
640
439
1м 11с
17
Открытый
20.3 Добавление узла и инициализация списка. insert, init
565
421
2м 56с
23
Открытый
20.4 Удаление узла. remove
522
404
1м 44с
13
Открытый
20.5 Функции с выделением памяти. push
553
389
1м 32с
14
Открытый
20.6 Освобождение памяти. delete
500
385
1м 13с
12
Открытый
20.7 Применение функции ко всем элементам. foreach
516
385
1м 9с
18
Открытый
20.8 Задачи на списки
583
143
166м 42с
22

21. Деревья

6 уроков
Открытый
21.1 Виды деревьев
1 187
223
1м 26с
32
Открытый
21.2 BST. Печать узла.
851
170
2м 46с
23
Открытый
21.3 BST. Добавление узла, удаление дерева
704
478
2м 31с
18
Открытый
21.4 BSТ. Удаление узла
657
465
1м 37с
19
Открытый
21.5 BST задачи
663
141
170м 4с
24
Открытый
21.6 Частотный словарь. Лес.
624
61
3м 19с
16

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

10 уроков
Открытый
22.1 Системы счисления
987
233
21м 32с
44
Открытый
22.2 bin, oct, hex
903
313
31м 15с
44
Открытый
22.3 Представление целых чисел в бинарном виде
776
235
21м 9с
33
Открытый
22.4 (char)x == 0xFF
761
387
6м 7с
30
Открытый
22.5 Побитовые операции
845
240
13м 52с
33
Открытый
22.6 Задача про битовые поля
756
203
83м 48с
37
Открытый
22.7 Изменение отдельных бит
688
71
170м 21с
26
Открытый
22.8 float
701
701
0м 10с
11
Открытый
22.9 Битовые поля в структурах
713
713
0м 4с
8
Открытый
22.10 union
784
784
0м 5с
9

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

6 уроков
Открытый
23.1 Аргументы командной строки. argc и argv
1 165
383
12м 58с
37
Открытый
23.2 Функции с переменным числом аргументов. va_list
781
284
12м 29с
14
Открытый
23.3 Программа-проект
1 433
530
17м 49с
16
Открытый
23.4 valgrind - проверка работы с памятью
1 119
388
12м 52с
21
Открытый
23.5 make
1 452
630
4м 33с
20
Открытый
23.6 enum
942
942
0м 6с
5

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

1 урок
Открытый
24.1 Вычисление чисел Фибоначчи
1 367
1 367
0м 11с
9

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

1 урок
Открытый
25.1 Видео, презентации, контесты
3 009
857
2м 52с
43

26. Заключение

1 урок
Закрытый
26.1 Что дальше?
2 330
1 154
1м 14с
37