игра брюс 2048
Главная / Программирование / Common Intermediate Language и системное программирование в Microsoft .NET / Тест 8

Common Intermediate Language и системное программирование в Microsoft .NET - тест 8

Упражнение 1:
Номер 1
Код метода в сборке .NET представляет собой:

Ответ:

 (1) линейную последовательность CIL-инструкций 

 (2) массив описателей обработки исключений 

 (3) циклическую последовательность CIL-инструкций 

 (4) массив описателей блоков обработки исключений 


Номер 2
Представленный в теле метода алгоритм в общем случае:

Ответ:

 (1) линейный 

 (2) нелинейный 

 (3) произвольный 


Номер 3
Существуют следующие механизмы передачи управления между инструкциями:

Ответ:

 (1) явная передача управления с помощью инструкции перехода 

 (2) передача управления между событиями 

 (3) неявная передача управления на следующую инструкцию в последовательности 

 (4) передача управления на обработчик исключения при выходе из защищенного блока 

 (5) передача управления между методами 


Упражнение 2:
Номер 1
В каком примере метод find выполняет поиск элемента k в массиве X:

Ответ:

 (1) find(int32[] k, int32 X) 

 (2) find(int32 k) 

 (3) find(int32[] X) 

 (4) find(int32[] X, int32 k) 


Номер 2
При использовании метода find для поиска элемента в массиве, в случае если элемент не найден возвращается:

Ответ:

 (1)

 (2)

 (3) +1 

 (4) -1 


Номер 3
При использовании метода find для поиска элемента в массиве, в случае если элемент найден возвращается:

Ответ:

 (1) -1 

 (2) его значение 

 (3) его индекс 

 (4)


Упражнение 3:
Номер 1
Какая схема представления кода является наиболее компактной?

Ответ:

 (1) в виде нелинейной последовательности инструкций 

 (2) в виде линейной последовательности инструкций 

 (3) в виде произвольной последовательности инструкций 

 (4) в виде симметричной последовательности инструкций 


Номер 2
Какие метаинструменты, выполняющие только анализ CIL-кода, могут непосредственно работать с линейной последовательностью инструкций:

Ответ:

 (1) JIT-компиляторы 

 (2) интерпретаторы 

 (3) верификаторы 

 (4) отладчики 


Номер 3
Для метаинструментов, которые выполняют преобразование CIL-кода удобно использовать его представление:

Ответ:

 (1) в виде линейного графа 

 (2) в виде графа потока управления 

 (3) в виде нелинейного графа 

 (4) в виде графа потока 


Упражнение 4:
Номер 1
Дуги графа потока управления изображают:

Ответ:

 (1) передачу управления между узлами 

 (2) передачу управления между потоками 

 (3) передачу управления между метаинтсрументами 

 (4) передачу управления между инструкциями 


Номер 2
Количество дуг, исходящих из узла графа, зависит от:

Ответ:

 (1) потока управления 

 (2) записанной в нем инструкции 

 (3) специальных метаинструментов 

 (4) группировки секций 


Номер 3
Номер дуги должен задавать ее:

Ответ:

 (1) семантику 

 (2) синтаксис 

 (3) граф 

 (4) схему 


Упражнение 5:
Номер 1
Блоки обработки исключений в CIL реализованы в виде:

Ответ:

 (1) массива инструкций 

 (2) массива описателей 

 (3) массива стека 

 (4) массива пременных буфера 


Номер 2
Главный блок графа, в который непосредственно или транзитивно входят все остальные узлы графа - это:

Ответ:

 (1) защищенный блок 

 (2) блок фильтрации 

 (3) блок тела метода 

 (4) блок обработки исключений 


Номер 3
Какой блок прикреплен к защищенному блоку и может получить управление при выходе из этого защищенного блока:

Ответ:

 (1) блок фильтрации 

 (2) блок тела метода 

 (3) защищенный блок 

 (4) блок обработки исключений 


Упражнение 6:
Номер 1
Блок обработки исключений:

Ответ:

 (1) прикреплен к защищенному блоку 

 (2) соответствует try-блоку в программе 

 (3) главный блок графа 


Номер 2
Блок обработки исключений в графе потока управления имеет:

Ответ:

 (1) один вход 

 (2) два входа 

 (3) три входа 

 (4) четыре входа 


Номер 3
Выход из блока обработки исключений в графе потока управления может осуществляться через:

Ответ:

 (1) один выходной узел 

 (2) несколько выходных узлов 

 (3) линейные выходные узлы 

 (4) линейный выходной узел 


Упражнение 7:
Номер 1
Каждый защищенный блок имеет ссылки на соответствующие:

Ответ:

 (1) блоки обработки исключений 

 (2) блоки фильтрации 

 (3) защищенные блоки 


Номер 2
Обработка исключений требует введения в граф особых дуг, которые отражают:

Ответ:

 (1) последовательность обработчиков исключений, присоединенных к блоку фильтрации 

 (2) последовательность обработчиков исключений, присоединенных к защищенному блоку 

 (3) последовательность инструкций, присоединенных к защищенному блоку 

 (4) последовательность инструкций, присоединенных к блоку фильтрации 


Номер 3
Какой блок имеет более сложную структуру, чем другие блоки обработки исключений:

Ответ:

 (1) блок обработки исключений с фильтрацией по типу 

 (2) блок обработки исключений finally/fault-блок 

 (3) блок обработки исключений с пользовательской фильтрацией  


Упражнение 8:
Номер 1
Когда выполнение некоторой инструкции в линейной последовательности инструкций порождает исключение, всегда можно легко определить защищенный блок, которому:

Ответ:

 (1) эта инструкция соответствует 

 (2) эта инструкция эквивалентна 

 (3) эта инструкция принадлежит 

 (4) эта инструкция не принадлежит 


Номер 2
Чтобы определить, в какой блок входит некоторая инструкция графа, мы должны каким-то образом пройти от этой инструкции по дугам графа:

Ответ:

 (1) в обратном направлении до выхода из блока 

 (2) в обратном направлении до входа в блок 

 (3) продолжить путь до входа в блок 

 (4) продолжить путь до выхода из блока 


Номер 3
К чему сводится операция поиска блока, в который входит инструкция, на графе, включающем дерево блоков:

Ответ:

 (1) к переходу по одной дуге от блока к инструкции 

 (2) к переходу по одной дуге к другой 

 (3) к переходу по одной дуге от инструкции к блоку 

 (4) к переходу по одной дуге от блока к блоку 


Упражнение 9:
Номер 1
Дан массив инструкций P размера N и массив предложений обработки исключений EH размера M, какое поле задает тип обработчика исключений:

Ответ:

 (1) Flags 

 (2) TryOffset 

 (3) HandlerOffset 

 (4) FilterOffset 


Номер 2
Дан массив инструкций P размера N и массив предложений обработки исключений EH размера M, какое поле является количество инструкций, входящих в защищенную область:

Ответ:

 (1) TryLength 

 (2) ClassToken 

 (3) FilterOffset 

 (4) TryOffset 


Номер 3
В процессе преобразования линейной последовательности инструкций в граф потока управления, на первом этапе, для каждой инструкции, входящей в массив P размера N:

Ответ:

 (1) создается соответствующий ей блок 

 (2) создается соответствующий ей узел блока 

 (3) создается соответствующий ей узел графа 

 (4) создается соответствующий ей граф 


Упражнение 10:
Номер 1
В процессе преобразования линейной последовательности инструкций в граф потока управления, на первом этапе, для каждой инструкции, входящей в массив P, мы создаем соответствующий ей узел графа, в который записываются все данные об инструкции, кроме информации о:

Ответ:

 (1) передачи состояний 

 (2) передаче управления 

 (3) принадлежности блокам 

 (4) принадлежности узлам 


Номер 2
Дан массив инструкций P размера N и массив предложений обработки исключений EH размера M. Этап создания узелов графа для каждой инструкции и формирования из созданных узлов массива на C#-подобном псевдоязыке можно записать так:

Ответ:

 (1) Nodes = новый массив узлов размера N; for (int i = 0; i < N; i++) { Nodes[i] = новый узел, содержащий информацию об инструкции P[i]; } 

 (2) Nodes = новый массив узлов размера N; { Nodes[i] = новый узел, содержащий информацию об инструкции P[i]; } 

 (3) Nodes = новый массив узлов размера N; for (int i = 0; i < N; i++) 

 (4) for (int i = 0; i < N; i++) { Nodes[i] = новый узел, содержащий информацию об инструкции P[i]; } 


Номер 3
Дан массив инструкций B размера G и массив предложений обработки исключений OP размера Z. На входе этапа создания дерева блоков мы имеем:

Ответ:

 (1) специальный массив T 

 (2) вспомогательный массив T 

 (3) массив OP 


Упражнение 11:
Номер 1
Дан массив инструкций B размера G и массив предложений обработки исключений OP размера Z. На выходе этапа создания дерева блоков мы получаем:

Ответ:

 (1) дерево блоков 

 (2) вспомогательный массив T 

 (3) специальный массив T 

 (4) вспомогательный массив T 


Номер 2
Дан массив инструкций B размера G и массив предложений обработки исключений OP размера Z. На выходе этапа создания дерева блоков мы получаем вспомогательный массив T, каждый элемент которого состоит из следующих полей:

Ответ:

 (1) block 

 (2) offset 

 (3) set 

 (4) length 


Номер 3
Дан массив инструкций B размера G и массив предложений обработки исключений OP размера Z. На выходе этапа создания дерева блоков их минимальное количество в массиве T равно:

Ответ:

 (1) Z+2 

 (2) B+2 

 (3) T+2 

 (4) G+2 


Упражнение 12:
Номер 1
Преобразование линейной последовательности инструкций в граф потока управления происходит в ходе следующих этапов:

Ответ:

 (1) создание массива узлов 

 (2) создание дерева блоков 

 (3) присвоение родительских блоков узлам графа 

 (4) формирование дуг 


Номер 2
В процессе преобразования линейной последовательности инструкций в граф потока управления, на третьем этапе, во время первой итерации цикла родителем всех узлов становится:

Ответ:

 (1) блок тела метода 

 (2) защищенный блок 

 (3) блок фильтрации 


Номер 3
На четвертом этапе процесса преобразования линейной последовательности инструкций в граф потока управления в последний добавляются:

Ответ:

 (1) дуги 

 (2) вершины 

 (3) циклы 

 (4) ветвления 




Главная / Программирование / Common Intermediate Language и системное программирование в Microsoft .NET / Тест 8