ИУП: интенсив 7 дней + диагностический пакет (32 вопроса, 9 задач с автопроверкой)
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
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 ..." (номер вопроса - номер варианта)
|
||||
Reference in New Issue
Block a user