Files

194 lines
11 KiB
Plaintext

1. [C/C++ и системная память] Чему равен sizeof(struct S { char a; int b; char c; }) на 64-битной платформе без pack-атрибутов?
1) 6
2) 9
3) 12
4) 16
2. [C/C++ и системная память] Что означает undefined behavior (UB)?
1) Программа гарантированно завершится с ошибкой
2) Компилятор вправе сгенерировать любой код, программа не обязана иметь смысл
3) Поведение определено стандартом, но зависит от платформы
4) Это предупреждение компилятора, которое можно игнорировать
3. [C/C++ и системная память] std::move(x) — что он делает сам по себе?
1) Перемещает объект и обнуляет исходный
2) Вызывает конструктор перемещения
3) Приводит x к rvalue-ссылке, перемещение делает уже вызванный конструктор/присваивание
4) Освобождает память объекта
4. [C/C++ и системная память] Чем new отличается от malloc?
1) Только синтаксисом
2) malloc работает только со структурами
3) new не может вернуть nullptr
4) new вызывает конструктор, возвращает типизированный указатель и бросает исключение при неудаче
5. [C/C++ и системная память] Класс владеет ресурсом и имеет деструктор, освобождающий его. Копирующий конструктор/присваивание не объявлены. Что будет?
1) Всё нормально, компилятор сам сделает глубокую копию
2) Неявные копии дадут два владельца одного ресурса → double free/утечка
3) Программа не скомпилируется
4) Компилятор сгенерирует перемещение вместо копирования
6. [C/C++ и системная память] Для чего нужен виртуальный деструктор у базового класса?
1) Чтобы ускорить разрушение
2) Он не нужен, деструкторы всегда виртуальны
3) Чтобы поля базы не копировались
4) Чтобы при delete по указателю на базу вызвался деструктор производного класса
7. [C/C++ и системная память] Что делает ключевое слово const после сигнатуры метода (int size() const)?
1) Делает метод виртуальным
2) Запрещает копирование возвращаемого значения
3) Обязывает не менять поля объекта и позволяет вызывать метод на const-объекте
4) Ничего, это оформление
8. [C/C++ и системная память] Определён ли стандартом порядок вычисления аргументов функции (f(a(), b()))?
1) Слева направо
2) Справа налево
3) Не определён (порядок не специфицирован, но вычисления не пересекаются)
4) Зависит только от оптимизаций
9. [Алгоритмы и структуры данных] Средняя сложность поиска в хеш-таблице (при разумной нагрузке)?
1) O(n log n)
2) O(log n)
3) O(n)
4) O(1)
10. [Алгоритмы и структуры данных] Какая структура лучше подходит для задачи «поиск слов по префиксу»?
1) Префиксное дерево (trie)
2) Хеш-таблица
3) Двоичная куча
4) Связный список
11. [Алгоритмы и структуры данных] Сколько сравнений нужно бинарному поиску в худшем случае в отсортированном массиве из 1 000 000 элементов?
1) 20
2) 10
3) 100
4) 1 000
12. [Алгоритмы и структуры данных] При каком условии применим алгоритм Дейкстры?
1) Граф обязательно связный
2) Веса рёбер неотрицательны
3) Граф неориентированный
4) Граф разреженный
13. [Алгоритмы и структуры данных] Какова сложность построения кучи (heapify) из произвольного массива?
1) O(n)
2) O(log n)
3) O(1)
4) O(n log n)
14. [Алгоритмы и структуры данных] Какая из сортировок устойчивая (stable)?
1) Быстрая (quicksort)
2) Пирамидальная (heapsort)
3) Слиянием (merge sort)
4) Выбором (selection sort)
15. [Алгоритмы и структуры данных] Для какого графа возможна топологическая сортировка?
1) Для ориентированного ациклического (DAG)
2) Для любого связного
3) Для двудольного
4) Для полного
16. [Алгоритмы и структуры данных] Как найти цикл в связном списке за O(1) дополнительной памяти?
1) Алгоритм Флойда: медленный и быстрый указатели
2) Хранить посещённые узлы в хеш-таблице
3) Отсортировать список
4) Рекурсивно пройти до nullptr
17. [Linux / ОС] Что делает fork()?
1) Заменяет образ процесса
2) Создаёт поток в том же адресном пространстве
3) Создаёт копию процесса; в родителе возвращает PID ребёнка, в ребёнке — 0
4) Загружает библиотеку в процесс
18. [Linux / ОС] Чем поток отличается от процесса в Linux?
1) Ничем, это синонимы
2) Потоки делят адресное пространство и файловые дескрипторы, но имеют свои стеки
3) Поток всегда быстрее
4) Процессы не могут работать параллельно
19. [Linux / ОС] Что такое процесс-зомби?
1) Процесс, съедающий CPU
2) Завершившийся процесс, чей статус ещё не собран родителем через wait()
3) Процесс без терминала
4) Процесс, потерявший родителя
20. [Linux / ОС] Какой механизм в Linux штатно обслуживает десятки тысяч сетевых соединений в одном потоке?
1) select()
2) Неблокирующие сокеты в цикле опроса
3) epoll
4) fork на каждое соединение
21. [Linux / ОС] Что происходит со страницами памяти при fork()?
1) Сразу полностью копируются
2) Память обнуляется
3) Копируются при первой записи (copy-on-write)
4) Ребёнок получает те же физические страницы без защиты
22. [Linux / ОС] Процесс завершился с кодом 137. Что это значит?
1) Ошибка сегментации
2) Процесс убит сигналом 9 (SIGKILL) — типично OOM-killer или docker kill
3) Не найден файл
4) Процесс вышел штатно
23. [Linux / ОС] Что даёт вызов mmap() на файл?
1) Полное чтение файла в кучу
2) Отображение файла в адресное пространство: работа как с массивом в памяти
3) Блокировку файла
4) Копирование файла
24. [Linux / ОС] Зачем нужен waitpid() родителю?
1) Чтобы приостановить ребёнка
2) Чтобы сменить приоритет ребёнка
3) Чтобы получить доступ к памяти ребёнка
4) Чтобы собрать статус завершения и убрать зомби
25. [Сети L2/L3, TCP/IP] Сколько байт в Ethernet-заголовке кадра без VLAN-тега?
1) 8
2) 14
3) 18
4) 20
26. [Сети L2/L3, TCP/IP] На каком уровне OSI работает обычный коммутатор (switch)?
1) L2
2) L4
3) L3
4) L1
27. [Сети L2/L3, TCP/IP] Что делает протокол ARP?
1) Раздаёт IP-адреса
2) Проверяет целостность пакетов
3) Разрешает доменные имена
4) Сопоставляет IP-адрес и MAC-адрес в локальном сегменте
28. [Сети L2/L3, TCP/IP] Какое поле IPv4-заголовка уменьшается на единицу на каждом маршрутизаторе?
1) Total Length
2) IHL
3) Checksum
4) TTL
29. [Сети L2/L3, TCP/IP] Правильная последовательность установки TCP-соединения?
1) SYN → SYN-ACK → ACK
2) SYN → ACK → SYN-ACK
3) SYN-ACK → SYN → ACK
4) ACK → SYN → SYN-ACK
30. [Сети L2/L3, TCP/IP] Ключевое отличие TCP от UDP?
1) TCP быстрее
2) TCP работает только на L2
3) UDP не поддерживает порты
4) TCP даёт надёжный поток байт с подтверждениями, порядком и повторной передачей
31. [Сети L2/L3, TCP/IP] Что делает VLAN-тег 802.1Q?
1) Добавляет в кадр 4 байта с 12-битным идентификатором VLAN
2) Шифрует кадр
3) Увеличивает MTU
4) Превращает кадр в IP-пакет
32. [Сети L2/L3, TCP/IP] Сколько адресов узлов доступно в подсети /26?
1) 32
2) 126
3) 64
4) 62
Формат ответа: "1-2 2-4 3-1 ..." (номер вопроса - номер варианта)