Files
eduplan-cpp-eltex/diag/results_facts.json
T

505 lines
16 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"seed": 42,
"correct": 60,
"total": 60,
"per_domain": {
"net": {
"total": 14,
"ok": 14
},
"linux": {
"total": 14,
"ok": 14
},
"c_cpp": {
"total": 12,
"ok": 12
},
"algo": {
"total": 20,
"ok": 20
}
},
"details": [
{
"n": 1,
"domain": "net",
"q": "Какое поле IPv4-заголовка уменьшается на 1 на каждом маршрутизаторе?",
"answer": "ttl",
"ok": true,
"correct": "TTL"
},
{
"n": 2,
"domain": "linux",
"q": "Сложность select против epoll на большом числе дескрипторов?",
"answer": "select o(n), epoll o(1)",
"ok": true,
"correct": "select — O(n) по всем, epoll — O(1) на готовое событие"
},
{
"n": 3,
"domain": "c_cpp",
"q": "Что делает const после сигнатуры метода?",
"answer": "this const",
"ok": true,
"correct": "делает this const, запрещает менять поля"
},
{
"n": 4,
"domain": "algo",
"q": "Как найти цикл в связном списке за O(1) дополнительной памяти?",
"answer": "флойд",
"ok": true,
"correct": "алгоритм Флойда: черепаха и заяц"
},
{
"n": 5,
"domain": "algo",
"q": "Насколько быстро работают операции union-find с эвристиками?",
"answer": "почти o(1)",
"ok": true,
"correct": "почти O(1), O(α(n))"
},
{
"n": 6,
"domain": "linux",
"q": "Что делает fork()?",
"answer": "создаёт новый процесс",
"ok": true,
"correct": "создаёт новый процесс (свой PID, COW-копия памяти)"
},
{
"n": 7,
"domain": "c_cpp",
"q": "Определён ли стандартом порядок вычисления аргументов f(a(), b())?",
"answer": "нет",
"ok": true,
"correct": "нет, порядок не задан"
},
{
"n": 8,
"domain": "c_cpp",
"q": "Правило трёх/пяти — в чём суть?",
"answer": "деструктор + копирование + перемещение",
"ok": true,
"correct": "владеющий ресурсом класс задаёт деструктор, копирование и перемещение"
},
{
"n": 9,
"domain": "linux",
"q": "Сколько байт в заголовке TCP без опций?",
"answer": "20",
"ok": true,
"correct": "20"
},
{
"n": 10,
"domain": "algo",
"q": "Структура для поиска слов по префиксу за O(len)?",
"answer": "trie",
"ok": true,
"correct": "trie (префиксное дерево)"
},
{
"n": 11,
"domain": "algo",
"q": "Средняя сложность quicksort и mergesort?",
"answer": "o(n log n)",
"ok": true,
"correct": "O(n log n)"
},
{
"n": 12,
"domain": "net",
"q": "Сколько адресов узлов в подсети /26?",
"answer": "62",
"ok": true,
"correct": "62"
},
{
"n": 13,
"domain": "linux",
"q": "Что делает ulimit -n?",
"answer": "лимит дескрипторов",
"ok": true,
"correct": "показывает/меняет лимит открытых файловых дескрипторов"
},
{
"n": 14,
"domain": "net",
"q": "По какому протоколу и порту работает DNS?",
"answer": "udp 53",
"ok": true,
"correct": "UDP/53 (при больших ответах TCP/53)"
},
{
"n": 15,
"domain": "linux",
"q": "Что такое TID (Thread ID) в /proc?",
"answer": "номер задачи",
"ok": true,
"correct": "номер задачи в /proc/<pid>/task/"
},
{
"n": 16,
"domain": "c_cpp",
"q": "Что такое UB?",
"answer": "undefined behavior",
"ok": true,
"correct": "undefined behavior: стандарт не накладывает требований"
},
{
"n": 17,
"domain": "algo",
"q": "При каком условии применим алгоритм Дейкстры?",
"answer": "неотрицательные веса",
"ok": true,
"correct": "веса рёбер неотрицательны"
},
{
"n": 18,
"domain": "linux",
"q": "Что происходит со страницами памяти при fork()?",
"answer": "cow",
"ok": true,
"correct": "copy-on-write: копируются при первой записи"
},
{
"n": 19,
"domain": "c_cpp",
"q": "Что делает std::move сам по себе?",
"answer": "static_cast к rvalue",
"ok": true,
"correct": "static_cast к rvalue-ссылке; перемещение делает конструктор/присваивание"
},
{
"n": 20,
"domain": "algo",
"q": "Чем заменить Дейкстру при отрицательных рёбрах?",
"answer": "беллман-форд",
"ok": true,
"correct": "Беллман–Форд"
},
{
"n": 21,
"domain": "linux",
"q": "Что означает errno EAGAIN на неблокирующем сокете?",
"answer": "повторить позже",
"ok": true,
"correct": "данных сейчас нет, повторить позже"
},
{
"n": 22,
"domain": "algo",
"q": "Для какого графа возможна топологическая сортировка?",
"answer": "dag",
"ok": true,
"correct": "для ациклического (DAG)"
},
{
"n": 23,
"domain": "c_cpp",
"q": "Чем unique_ptr отличается от shared_ptr?",
"answer": "единственный владелец",
"ok": true,
"correct": "unique_ptr — единственный владелец без счётчика; shared_ptr считает ссылки"
},
{
"n": 24,
"domain": "linux",
"q": "Какой механизм держит десятки тысяч соединений в одном потоке?",
"answer": "epoll",
"ok": true,
"correct": "epoll"
},
{
"n": 25,
"domain": "net",
"q": "Размер MTU Ethernet по умолчанию?",
"answer": "1500",
"ok": true,
"correct": "1500 байт"
},
{
"n": 26,
"domain": "linux",
"q": "Что даёт mmap() на файл?",
"answer": "отображает файл в память",
"ok": true,
"correct": "отображает файл в память; страницы подгружаются по обращению"
},
{
"n": 27,
"domain": "algo",
"q": "Средняя сложность поиска в хеш-таблице при разумной загрузке?",
"answer": "o(1)",
"ok": true,
"correct": "амортизированное O(1)"
},
{
"n": 28,
"domain": "net",
"q": "Сколько байт в минимальном IPv4-заголовке?",
"answer": "20",
"ok": true,
"correct": "20"
},
{
"n": 29,
"domain": "linux",
"q": "Зачем родителю waitpid()?",
"answer": "забрать код возврата",
"ok": true,
"correct": "чтобы забрать код возврата и не оставлять зомби"
},
{
"n": 30,
"domain": "c_cpp",
"q": "Класс владеет ресурсом и имеет деструктор, копирование не объявлено. Что будет?",
"answer": "двойное освобождение",
"ok": true,
"correct": "сгенерируется поверхностное копирование — двойное освобождение"
},
{
"n": 31,
"domain": "algo",
"q": "Какова нижняя оценка сложности сортировки сравнениями?",
"answer": "o(n log n)",
"ok": true,
"correct": "O(n log n)"
},
{
"n": 32,
"domain": "linux",
"q": "Код возврата 139 — что это?",
"answer": "sigsegv",
"ok": true,
"correct": "SIGSEGV (128+11) — падение по памяти"
},
{
"n": 33,
"domain": "net",
"q": "Правильная последовательность установки TCP-соединения?",
"answer": "syn, syn-ack, ack",
"ok": true,
"correct": "SYN -> SYN-ACK -> ACK"
},
{
"n": 34,
"domain": "linux",
"q": "Что такое процесс-зомби?",
"answer": "завершившийся процесс без wait",
"ok": true,
"correct": "завершившийся процесс, чья запись ждёт wait/waitpid"
},
{
"n": 35,
"domain": "c_cpp",
"q": "Чему равен sizeof(struct S { char a; int b; char c; }) на x86-64 без pack?",
"answer": "12",
"ok": true,
"correct": "12 (паддинг до выравнивания)"
},
{
"n": 36,
"domain": "algo",
"q": "BFS или DFS даёт кратчайший путь в невзвешенном графе?",
"answer": "bfs",
"ok": true,
"correct": "BFS"
},
{
"n": 37,
"domain": "net",
"q": "Сколько байт добавляет VLAN-тег 802.1Q?",
"answer": "4",
"ok": true,
"correct": "4"
},
{
"n": 38,
"domain": "net",
"q": "На каком уровне OSI работает обычный коммутатор?",
"answer": "l2",
"ok": true,
"correct": "L2 (канальный)"
},
{
"n": 39,
"domain": "linux",
"q": "Сигнал с номером 15?",
"answer": "sigterm",
"ok": true,
"correct": "SIGTERM — запрос на завершение"
},
{
"n": 40,
"domain": "c_cpp",
"q": "Зачем нужен виртуальный деструктор у базового класса?",
"answer": "деструктор наследника не вызовется",
"ok": true,
"correct": "иначе delete через Base* — UB, деструктор наследника не вызовется"
},
{
"n": 41,
"domain": "algo",
"q": "Сложность Дейкстры на priority_queue (двоичная куча)?",
"answer": "o((v+e) log v)",
"ok": true,
"correct": "O((V+E) log V)"
},
{
"n": 42,
"domain": "net",
"q": "Что означает маска /30 в адресах?",
"answer": "4 адреса, 2 узла",
"ok": true,
"correct": "4 адреса: сеть, 2 узла, broadcast"
},
{
"n": 43,
"domain": "c_cpp",
"q": "Что проверяет UBSAN?",
"answer": "undefined behavior",
"ok": true,
"correct": "неопределённое поведение: overflow, сдвиги, выравнивание"
},
{
"n": 44,
"domain": "algo",
"q": "Сколько сравнений в худшем случае у бинарного поиска в массиве из 1 000 000 элементов?",
"answer": "20",
"ok": true,
"correct": "20"
},
{
"n": 45,
"domain": "linux",
"q": "Код возврата 137 — что это?",
"answer": "sigkill",
"ok": true,
"correct": "SIGKILL (128+9) — убит"
},
{
"n": 46,
"domain": "net",
"q": "Сколько адресов узлов в подсети /24?",
"answer": "254",
"ok": true,
"correct": "254"
},
{
"n": 47,
"domain": "algo",
"q": "Сложность построения кучи (heapify) из произвольного массива?",
"answer": "o(n)",
"ok": true,
"correct": "O(n)"
},
{
"n": 48,
"domain": "net",
"q": "Сколько байт в Ethernet-заголовке без VLAN?",
"answer": "14",
"ok": true,
"correct": "14"
},
{
"n": 49,
"domain": "c_cpp",
"q": "Чем new отличается от malloc?",
"answer": "вызывает конструктор",
"ok": true,
"correct": "new вызывает конструктор и возвращает типизированный указатель"
},
{
"n": 50,
"domain": "net",
"q": "На каком уровне OSI работает маршрутизатор?",
"answer": "l3",
"ok": true,
"correct": "L3 (сетевой)"
},
{
"n": 51,
"domain": "algo",
"q": "Сложность вставки одного элемента в кучу?",
"answer": "o(log n)",
"ok": true,
"correct": "O(log n)"
},
{
"n": 52,
"domain": "c_cpp",
"q": "Что проверяет ASAN?",
"answer": "выходы за границы",
"ok": true,
"correct": "выходы за границы, use-after-free, утечки"
},
{
"n": 53,
"domain": "algo",
"q": "Худшая сложность quicksort?",
"answer": "o(n^2)",
"ok": true,
"correct": "O(n²)"
},
{
"n": 54,
"domain": "algo",
"q": "За какую сложность ищется НВП (LIS) в оптимальном решении?",
"answer": "o(n log n)",
"ok": true,
"correct": "O(n log n)"
},
{
"n": 55,
"domain": "algo",
"q": "Сложность задачи о рюкзаке 0/1 через ДП по вместимости?",
"answer": "o(n*w)",
"ok": true,
"correct": "O(n * W)"
},
{
"n": 56,
"domain": "algo",
"q": "Какова сложность по памяти рекурсивного DFS в графе в худшем случае?",
"answer": "o(v)",
"ok": true,
"correct": "O(V) — глубина стека рекурсии"
},
{
"n": 57,
"domain": "net",
"q": "Что делает ICMP Time Exceeded?",
"answer": "ttl истёк",
"ok": true,
"correct": "сообщает, что TTL истёк (используется в traceroute)"
},
{
"n": 58,
"domain": "algo",
"q": "Худшая сложность поиска в хеш-таблице (все ключи в одну корзину)?",
"answer": "o(n)",
"ok": true,
"correct": "O(n)"
},
{
"n": 59,
"domain": "algo",
"q": "Какая сортировка устойчивая: merge, quick, heap или selection?",
"answer": "merge",
"ok": true,
"correct": "merge sort"
},
{
"n": 60,
"domain": "net",
"q": "Что делает ARP?",
"answer": "mac по ip",
"ok": true,
"correct": "находит MAC по IP в локальном сегменте"
}
]
}