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

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

Упражнение 1:
Номер 1
Код программ не разрушает память, если эти программы, будучи запущенными в одном адресном пространстве:

Ответ:

 (1) корректно объединены друг с другом 

 (2) корректно изолированы друг от друга 

 (3) корректно распараллелены друг с другом 

 (4) корректно зависимы друг от друга 


Номер 2
Процесс автоматического доказательства того, что этот код не разрушает память - это:

Ответ:

 (1) интерпретация кода 

 (2) компиляция кода 

 (3) трансляция кода 

 (4) верификация кода 


Номер 3
Алгоритмы верификации являются:

Ответ:

 (1) интерпретируемыми алгоритмами 

 (2) емкими алгоритмами 

 (3) метавычислительными алгоритмами 

 (4) произвольными алгоритмами 


Упражнение 2:
Номер 1
Алгоритмы верификации в общем случае имеют следующие проблемы:

Ответ:

 (1) потенциальная детерминируемость 

 (2) экспоненциальная сложность 

 (3) сложная дискретизация 

 (4) потенциальная нетерминируемость 


Номер 2
Алгоритмы, работающие неизвестно сколько времени и потребляющие неизвестно какое количество ресурсов, представляют скорее:

Ответ:

 (1) практический интерес 

 (2) научный интерес 

 (3) теоретический интерес 


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

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5)

 (6)


Упражнение 3:
Номер 1
Сколько существует подходов для ограничения задачи для верификаторов?

Ответ:

 (1)

 (2)

 (3)

 (4)


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

Ответ:

 (1) тестирования 

 (2) разработки 

 (3) кодирования 

 (4) отладки 


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

Ответ:

 (1) для подготовки отладки 

 (2) для обеспечения безопасности 

 (3) для обеспечения терминируемости 

 (4) для обеспечения дискретизации 


Упражнение 4:
Номер 1
Верификатор кода .NET может доказать, что сборки, генерируемые компиляторами C#, J# и Visual Basic .NET:

Ответ:

 (1) разрушают память 

 (2) не разрушают буфер 

 (3) не разрушают память 

 (4) разрушают буфер 


Номер 2
Отметьте верные утверждения, касающиеся разрушающего память кода:

Ответ:

 (1) существуют компиляторы, которые в общем случае могут порождать такой код 

 (2) любой CIL-код можно непосредственно компилировать с помощью ILASM 

 (3) всем перечисленным может воспользоваться злоумышленник 

 (4) в языке C# предусмотрены unsafe-блоки и unsafe-методы, внутри которых может находиться такой код 


Номер 3
Верификатор .NET предназначен:

Ответ:

 (1) для процесса отладки 

 (2) для поиска ошибок в программах 

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

 (4) для обеспечения безопасности системы 


Упражнение 5:
Номер 1
Код, для которого верификатор может доказать, что он не разрушает память:

Ответ:

 (1) верифицированный код 

 (2) верифицируемый код 

 (3) интерпретируемый код 

 (4) транслируемый код 


Номер 2
Код, для которого верификатор доказал, что он не разрушает память:

Ответ:

 (1) верифицированный код 

 (2) компилируемый код 

 (3) верифицируемый код 

 (4) транслируемый код 


Номер 3
Алгоритм верификации представляет собой вариант:

Ответ:

 (1) абстрактного транслятора CIL-кода 

 (2) абстрактного JIT-компилятора 

 (3) абстрактного интерпретатора CIL-кода 

 (4) абстрактного компилятора CIL-кода 


Упражнение 6:
Номер 1
Правилами совместимости типов S и T будут следующие:

Ответ:

 (1) S& := T&, если S := T 

 (2) S[] := T[], если S := T и размерности массивов совпадаю 

 (3) S := null, если S - объектный тип или интерфейс 

 (4) S := T, если S и T - интерфейсы, и реализация T требует реализации S 


Номер 2
Данные о количестве слотов на стеке и типы значений, лежащих в этих слотах - это:

Ответ:

 (1) конфигурация стека 

 (2) буфер стека 

 (3) объем стека 

 (4) состояние стека 


Номер 3
Алгоритм верификации работает со следующими данным:

Ответ:

 (1) неизменяемые данные 

 (2) изменяемые данные 

 (3) произвольные данные 

 (4) пользовательские данные 


Упражнение 7:
Номер 1
Программы, рассматривающие сборки .NET в качестве объектов анализа, генерации или преобразования - это:

Ответ:

 (1) инструкции для платформы .NET 

 (2) метаинструменты для платформы .NET 

 (3) инструменты для платформы .NET 

 (4) верификаторы для платформы .NET 


Номер 2
Генерация новой сборки .NET осуществляется:

Ответ:

 (1) компиляторами 

 (2) трансляторами 

 (3) интерпретаторами 

 (4) RAD-средствами 


Номер 3
В составе .NET Framework SDK поставляются следующие библиотеки:

Ответ:

 (1) Metadata Unmanaged API 

 (2) Reflection API 

 (3) AbsIL SDK 

 (4) Reflection Extension API 


Упражнение 8:
Номер 1
При использовании Metadata Unmanaged API метаинструмент работает:

Ответ:

 (1) со сборкой в памяти 

 (2) с образом сборки в памяти 

 (3) с отпечатком образа сборки в памяти 

 (4) со сборкой в буфере 


Номер 2
Для того чтобы использовать Metadata Unmanaged API из программы, написанной на Visual C++, необходимо включить в программу следующие строки:

Ответ:

 (1) #include <corhlpr.h> 

 (2) #pragma comment(lib, "format.lib") 

 (3) #include; #pragma comment(lib, "format.lib") 

 (4) #include <corhlpr.h> #pragma comment(lib, "format.lib") 


Номер 3
Взаимодействие с Metadata Unmanaged API осуществляется через набор:

Ответ:

 (1) API-интерфейсов 

 (2) .NET-интерфейсов 

 (3) COM-интерфейсов 

 (4) стандартных интерфейсов 


Упражнение 9:
Номер 1
С помощью данного кода:CoInitialize(NULL);
IMetaDataDispenser *dispenser;
HRESULT h = CoCreateInstance(
 CLSID_CorMetaDataDispenser,
 NULL,
 CLSCTX_INPROC_SERVER, 
 IID_IMetaDataDispenserEx,
 (void **)&dispenser
 );
if (h)
 printf("Error");осуществляется:

Ответ:

 (1) начало работы с Metadata Unmanaged API 

 (2) начало работы с .NET 

 (3) инициализации системы COM 

 (4) получение указателя на интерфейс IMetadataDispenserEx: 


Номер 2
При завершении работы с Metadata Unmanaged API необходимо освободить указатели на полученные интерфейсы следующим образом:

Ответ:

 (1) mdimp->Release(); dispenser->Release(); 

 (2) dispenser->OpenScope(); mdimp->Release(); 

 (3) mdimp->OpenScope(); dispenser->"test.exe" 


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

Ответ:

 (1) методы DefineXXX 

 (2) методы SetXXX 

 (3) методы EnumXXX 

 (4) методы FindXXX 

 (5) методы GetXXX 


Упражнение 10:
Номер 1
Библиотека рефлексии содержит классы для работы с метаданными на высоком уровне, которые располагаются в пространствах имен:

Ответ:

 (1) System.Reflection 

 (2) System.Reflection.Emit 

 (3) System.Reflection.API 

 (4) System.Reflection.Stat 


Номер 2
Метаинструмент, использующий библиотеку рефлексии, получает доступ к метаданным сборки через экземпляр класса:

Ответ:

 (1) Assembly 

 (2) Module 

 (3) ConstructorInfo 

 (4) MethodInfo 


Номер 3
Класс Module, позволяет получить набор экземпляров класса:

Ответ:

 (1) Type 

 (2) FieldInfo 

 (3) Assembly 

 (4) ConstructorInfo 

 (5) MethodInfo 

 (6) Module 


Упражнение 11:
Номер 1
Библиотека рефлексии спроектирована таким образом, что создание объектов рефлексии, соответствующих элементам метаданных, осуществляется:

Ответ:

 (1) путем вызова методов других методов рефлексии 

 (2) путем вызова методов других объектов рефлексии 

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

 (4) путем вызова объектов других методов рефлексии 


Номер 2
Информацию о любом элементе метаданных можно прочитать из свойств соответствующего ему:

Ответ:

 (1) метода рефлексии 

 (2) инструмента рефлексии 

 (3) метаинструмента рефлексии 

 (4) объекта рефлексии 


Номер 3
Если нас интересует текущая работающая сборка, то экземпляр класса Assembly можно получить так:

Ответ:

 (1) Assembly assembly = Assembly.GetAssembly(typeof(int)) 

 (2) Assembly assembly = Assembly.GetExecutingAssembly() 

 (3) Assembly assembly = Assembly.LoadFrom("test.exe") 


Упражнение 12:
Номер 1
Кроме чтения метаданных, библиотека рефлексии позволяет:

Ответ:

 (1) создавать экземпляры типов, входящих в обрабатываемую сборку 

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

 (3) читать значения полей 

 (4) изменять значения полей 


Номер 2
Для генерации метаданных и CIL-кода в библиотеке рефлексии предназначены классы:

Ответ:

 (1) пространтсва имен System.Reflection.Emit 

 (2) ILGenerator 

 (3) Generator 

 (4) пространтсва имен System.Reflection.API 


Номер 3
Библиотеки Reflection API и Metadata Unmanaged API не имеет следующих возможностей:

Ответ:

 (1) чтение метаданных 

 (2) генерация метаданных 

 (3) чтение CIL-кода 

 (4) генерация CIL-кода 




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