игра брюс 2048
Главная / Программирование / Введение в программирование / Тест 18

Введение в программирование - тест 18

Упражнение 1:
Номер 1
Отметьте, какие модификаторы можно указывать при объявлении делегата:

Ответ:

 (1) abstract 

 (2) sealed 

 (3) static 

 (4) private 

 (5) internal 

 (6) unsafe 


Номер 2
Отметьте, какие модификаторы можно указывать при объявлении делегата:

Ответ:

 (1) abstract 

 (2) protected 

 (3) sealed 

 (4) static 


Номер 3
Отметьте, какие модификаторы можно указывать при объявлении делегата:

Ответ:

 (1) new 

 (2) abstract 

 (3) public 


Упражнение 2:
Номер 1
Определите код, не содержащий ошибок и  объявляющий делегат  MyDelegate для последующего вызова не статического метода F_I из класса CA:

Ответ:

 (1) delegate static void MyDelegate(); 

 (2) delegate void MyDelegate(); 

 (3) delegate sealed void MyDelegate(); 


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

Ответ:

 (1) CA var1= new CA(); MyDelegate M1 = MyDelegate(var1.F_I); M1(); 

 (2) CA var1= new CA(); MyDelegate M1 = new MyDelegate(CA.F_I); M1(); 

 (3) CA var1= new CA(); MyDelegate M1 = new MyDelegate(var1.F_I); M1(); 


Номер 3
Определите код, не содержащий ошибок и  использующий делегат  MyDelegate для вызова статического метода F_Static из класса CA:

Ответ:

 (1) CA var1= new CA(); MyDelegate F_d = MyDelegate(var1.F_Static); F_d(); 

 (2) CA var1= new CA(); MyDelegate F_d = new MyDelegate(CA.F_Static); F_d(); 

 (3) CA var1= new CA(); MyDelegate F_d = new MyDelegate(var1.F_Static); F_d(); 


Упражнение 3:
Номер 1
Определите код, не содержащий ошибок и  корректно объявляющий импортируемую функцию из DLL-библиотеки myDll.dll:

Ответ:

 (1) [DllImport("myDll.dll", EntryPoint="M1")] static extern int M2(int i1, string s1); 

 (2) [DllImport("myDll.dll", EntryPoint="M1")] static extern int M1(int i1, string s1); 

 (3) [DllImport(EntryPoint="M1","myDll.dll")] static extern int M1(int i1, string s1); 


Номер 2
Класс DllImportAttribute позволяет при объявлении импортируемой функции из DLL-библиотеки:

Ответ:

 (1) установить используемый набор символов 

 (2) установить тип возвращаемого значения 

 (3) установить тип каждого параметра функции 


Номер 3
При выполнении на С#  кода unsafe { Point pt = new Point();  int* p = &pt.x;} следует:

Ответ:

 (1) обязательно применить оператор fixed 

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

 (3) установить опцию компиляции, разрешающую выполнение небезопасного кода, и обязательно применить оператор fixed 


Упражнение 4:
Номер 1
При объявлении в C# делегата для статического метода код объявления:

Ответ:

 (1) обязательно должен содержать ключевое слово static 

 (2) не должен содержать ключевое слово static 

 (3) должен быть помечен как new 


Номер 2
При объявлении в C# делегата для общедоступного метода код объявления:

Ответ:

 (1) обязательно должен содержать ключевое слово static 

 (2) может содержать ключевое слово static 

 (3) должен содержать ключевое слово public 

 (4) может дополнительно быть помечен как new 


Номер 3
При выполнении на С#  кода unsafe {int *i2=&i1;}:

Ответ:

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

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

 (3) установить опцию компиляции, разрешающую выполнение небезопасного кода, и обязательно применить оператор fixed 


Упражнение 5:
Номер 1
Определите код на C#, не содержащий ошибок и  использующий делегат для вызова не статического метода:

Ответ:

 (1) using System; delegate void MyDelegate(); namespace MyDelegat1 { class Class1 { static void Main(string[] args) { CA var1= new CA(); //Класс CA содержит не статический метод F_I MyDelegate F_d = new MyDelegate(var1.F_I); F_d(); } } } 

 (2) using System; delegate void MyDelegate(); namespace MyDelegat1 { class Class1 { static void Main(string[] args) { CA var1= new CA(); //Класс CA содержит не статический метод F_I MyDelegate F_d = MyDelegate(var1.F_I); F_d(); } } } 

 (3) using System; delegate void MyDelegate(); namespace MyDelegat1 { class Class1 { static void Main(string[] args) { CA var1= new CA(); //Класс CA содержит не статический метод F_I MyDelegate F_d = new MyDelegate(CA.F_I); F_d(); } } } 


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

Ответ:

 (1) using System; delegate void MyDelegate(); namespace MyDelegat1 { class Class1 { static void Main(string[] args) { CA var1= new CA(); //Класс CA содержит статический метод F_S MyDelegate F_d = new MyDelegate(var1.F_S) F_d() } } } 

 (2) using System; delegate void MyDelegate(); namespace MyDelegat1 { class Class1 { static void Main(string[] args) { CA var1= new CA(); //Класс CA содержит статический метод F_S MyDelegate F_d = MyDelegate(CA.F_S) F_d() } } } 

 (3) using System; delegate void MyDelegate(); namespace MyDelegat1 { class Class1 { static void Main(string[] args) { CA var1= new CA(); //Класс CA содержит статический метод F_S MyDelegate F_d = new MyDelegate(CA.F_S) F_d() } } } 


Номер 3
При импорте функции из DLL-библиотеки атрибут DllImport позволяет:

Ответ:

 (1) указать имя DLL-библиотеки 

 (2) указать имя функции из DLL-библиотеки 

 (3) задать сразу список экспортируемых функций 




Главная / Программирование / Введение в программирование / Тест 18