игра брюс 2048
Главная / Программирование / Разработка компиляторов / Тест 2

Разработка компиляторов - тест 2

Упражнение 1:
Номер 1
Для языка C# верны следующие утверждения:

Ответ:

 (1) идеальный язык для быстрой разработки приложений 

 (2) изначальная ориентация на платформу .NET 

 (3) имеет максимальную степень скрытия деталей от разработчика 

 (4) новый язык, не связанный проблемами обратной совместимости 


Номер 2
Упрощение языка C# выразилось в:

Ответ:

 (1) запрете прямой манипуляции памятью 

 (2) более строгих правилах преобрзования типов 

 (3) запрещении множественного наследования 

 (4) отказе от провала в следующую ветку в switch 


Номер 3
Fall-through в C# - это:

Ответ:

 (1) ветка 

 (2) проблема "провала" 

 (3) наследование 

 (4) проблема компиляции 

 (5) неявные преобразования 

 (6) переполнение 


Упражнение 2:
Номер 1
C# поддерживает структурную обработку исключений с помощью конструкций:

Ответ:

 (1) try 

 (2) finally 

 (3) catch 

 (4) foreach 


Номер 2
В C# значениям переменных булевского типа:

Ответ:

 (1) не соответствует никаких численных эквивалентов 

 (2) соответствуют численные эквиваленты 

 (3) соответствуют специальные численные эквиваленты 


Номер 3
Все ссылочные типы произведены от базового типа object, являющегося точным эквивалентом класса:

Ответ:

 (1) System.Object 

 (2) System.Link 

 (3) Object.Goto 

 (4) System.Object.Links 


Упражнение 3:
Номер 1
Ссылочными типами в C# являются:

Ответ:

 (1) object 

 (2) интерфейсы 

 (3) class 

 (4) string 

 (5) массивы 

 (6) представители 


Номер 2
Классы в C# предоставляют следующие возможности:

Ответ:

 (1) модификаторы доступа 

 (2) конструкторы/деструкторы 

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

 (4) методы классов и их параметры 

 (5) свойства и доступ к ним 

 (6) индексаторы 

 (7) события и представители 


Номер 3
В C# имеются следующие модификаторы:

Ответ:

 (1) доступа 

 (2) элементов класса 

 (3) класса 

 (4) типов 

 (5) секций 

 (6) стека 


Упражнение 4:
Номер 1
Модификаторами класса в C# являются:

Ответ:

 (1) abstract 

 (2) const 

 (3) sealed 

 (4) public 


Номер 2
Корректными примерами конструкторов являются следующие:

Ответ:

 (1) public Matrix() { for (int i=0; i<n; i++) for (int j=0; j<n; j++) elements[i,j] = 0; }  

 (2) public Matrix (val) { for ( i=0; i<n; i++) for (int j=0; j<n; j++) elements[i]; }  

 (3) public Matrix (int val) { for (int i=0; i<n; i++) for (int j=0; j<n; j++) elements[i,j] = val; }  


Номер 3
Все активные действия программ на C# выполняются:

Ответ:

 (1) в методах классов 

 (2) в методах объектов 

 (3) в методах секций 

 (4) в методах блоков 


Упражнение 5:
Номер 1
Проверку допустимости присваиваемого значения можно провести с помощью следующего кода:

Ответ:

 (1) private int m_stateOfVeryCriticalResource; public int stateOfVeryCriticalResource { get { if (IsAllowedUser()) return m_stateOfVeryCriticalResource; } set { if (IsAdmin()) m_stateOfVeryCriticalResource = value; } } ... stateOfVeryCriticalResource = vcrCompletelyScrewedUp; 

 (2) private int m_AgeOfClient; public int AgeOfClient { get { if (AccessToPersonalInfoAllowed()) return m_AgeOfClient; } set { if (value > 0 && value <= 120) m_AgeOfClient = value; else MessageBox.Show("This client is not recommended for insurance"); } }  

 (3) Hashtable ziphash = new Hashtable(); ... foreach (string zip in ziphash.Keys) { Console.WriteLine(zip + " " + ziphash[zip]); }  


Номер 2
Данный пример:private int m_stateOfVeryCriticalResource;
public int stateOfVeryCriticalResource {
  get { if (IsAllowedUser()) 
           return m_stateOfVeryCriticalResource; }
  set { if (IsAdmin()) 
           m_stateOfVeryCriticalResource = value; }
}
...
stateOfVeryCriticalResource = vcrCompletelyScrewedUp;позволяет проверить достаточность полномочий запрашивающего приложения:

Ответ:

 (1) для доступа к данному объекту 

 (2) для доступа к данной строке 

 (3) для доступа к данному классу 

 (4) для доступа к данному полю 


Номер 3
При таком описании класса:public class Matrix 
{
	public const int n = 10;
	public int[,] elements = new int[n,n];

	public int this[int i, int j]
	{
		get { return elements[i,j]; }
		set { elements[i,j] = value; }
	}
}
допустимо следующее использование:

Ответ:

 (1) Matrix a = new Matrix(); 

 (2) b[0,0] = -4; b[1,5] = 10; 

 (3) Matrix b = new Matrix(); 

 (4) a[0,0] = 1; a[1,5] = 5; 


Упражнение 6:
Номер 1
Для реализации модели "публикация/подписка" в C# используются:

Ответ:

 (1) представители 

 (2) события 

 (3) индексаторы 

 (4) модификаторы 


Номер 2
В данном примере:using System; 
public delegate void EventHandler (string strText);
class EventSource {
  public event EventHandler TextOut;
  public void TriggerEvent() { 
    if (TextOut != null) TextOut("Event triggered..."); }
}
class TestApp {
  public static void Main() {
    EventSource evsrc = new EventSource();
    evsrc.TextOut += new EventHandler(CatchEvent);  evsrc.TriggerEvent();
    evsrc.TextOut -= new EventHandler(CatchEvent);  evsrc.TriggerEvent();
    TestApp theApp = new TestApp();
    evsrc.TextOut += new EventHandler(theApp.InstanceCatch); 
    evsrc.TriggerEvent();
  }
public static void CatchEvent(string strText) { WriteLine(strText); }
public void InstanceCatch(string strText) { WriteLine("Instance "+strText); }
происходят:

Ответ:

 (1) подписка на событие 

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

 (3) получение события 

 (4) отказ от дальнейшей обработки события 


Номер 3
Какая операция используется для того, чтобы сократить и привести к привычному виду запись операций над объектами, определенными программистом?

Ответ:

 (1) индексирование 

 (2) присваивание 

 (3) перегрузка операторов 

 (4) упорядочивание операторов 


Упражнение 7:
Номер 1
В данном случае:int v2 = v1; происходит:

Ответ:

 (1) неявное приведение переменной v1 к типу int 

 (2) явное приведение переменной v1 к типу int 

 (3) приведение переменной v1 к типу int 

 (4) сопоставление переменной v1 с типом int 


Номер 2
В C# есть специальное ключевое слово params, которое позволяет:

Ответ:

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

 (2) задать целый список параметров 

 (3) задать целый список объектов 

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


Номер 3
Для params верно:

Ответ:

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

 (2) быть последним параметром 

 (3) быть первым параметром 

 (4) не должен сопровождаться типом параметров 


Упражнение 8:
Номер 1
Для препроцессор C# верны следующие утверждения:

Ответ:

 (1) в C# запрещены подстановки текста 

 (2) #define, #undef служат для определения/отмены идентификаторов 

 (3) реализован механизм #if DEBUG… #else … #endif 

 (4) реализована генерация ошибок и предупреждений 


Номер 2
Из привычного набора макросов в препроцесоре C# оставлены следующие:

Ответ:

 (1) #define и #undef для определения идентификаторов и отмены определения 

 (2) механизм условной компиляции, основанный на директивах #if, #else, #endif 

 (3) генерация предупреждений и ошибок с помощью макросов #warning и #error 


Номер 3
В C# механизм условной компиляции, основан на директивах:

Ответ:

 (1) #warning,#error 

 (2) #define,#undef 

 (3) #if,#else,#endif 


Упражнение 9:
Номер 1
Атрибуты в C# представляют собой:

Ответ:

 (1) "примечания" к элементам исходного текста программы 

 (2) "примечания" к классам исходного текста программы 

 (3) "примечания" к методам исходного текста программы 

 (4) "примечания" к параметрам методов исходного текста программы 


Номер 2
В C# информация, записанная в атрибутах, во время компиляции:

Ответ:

 (1) теряется 

 (2) сохраняется в метаданных программы 

 (3) не сохраняется в метаданных программы 

 (4) сохраняется в специальном блоке 


Номер 3
С помощью какого атрибута в данном примере:using System.Runtime.InteropServices;
public class AppMain {
  [DllImport("user32.dll")]
  public static extern int MessageBoxA(int handle, string message,
    string caption,int flags);
  public static void Main(){
    MessageBoxA(0,"Hello World","Native Message Box",0);
  }
  [conditional("DEBUG")] 
  public static void SayHello() { 
    Console.WriteLine("Hello, World!"); return; 
  }
}
обеспечивается взаимодействие с функцией MessageBoxA из Win32 API:

Ответ:

 (1) conditional 

 (2) SayHello 

 (3) DllImport 

 (4) caption 


Упражнение 10:
Номер 1
Для того, чтобы определить собственные, пользовательские атрибуты достаточно создать класс, унаследованный от:

Ответ:

 (1) New.Attribute 

 (2) System.Attribute 

 (3) Users.Attribute 

 (4) Special.Attribute 


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

Ответ:

 (1) механизма рефлексии  

 (2) механизма распаковки  

 (3) механизма упаковки 

 (4) механизма перезагрузки операторов 


Номер 3
Для написания опасного кода необходимо пометить метод или блок ключевым словом:

Ответ:

 (1) unsafe 

 (2) safe 

 (3) fixed 

 (4) undef 


Упражнение 11:
Номер 2
Какие механизмы реализованы в C#:

Ответ:

 (1) исключения 

 (2) контроль версий 

 (3) межъязыковая разработка и отладка 

 (4) работа с переполнением 


Номер 3
Отключить контроль переполнения можно с помощью ключевого слова:

Ответ:

 (1) unchecked 

 (2) checked 

 (3) control 

 (4) syscontrol 

 (5) unsafe 

 (6) fixed 


Упражнение 12:
Номер 1
Язык Cи-бемоль был разработан:

Ответ:

 (1) путем усечения C# 

 (2) путем дополнения C# 

 (3) путем усечения C++ 

 (4) путем дополнения C++ 


Номер 2
Из типов данных язык Cи-бемоль поддерживает следующие:

Ответ:

 (1) встроенные типы 

 (2) классы 

 (3) многомерные массивы 

 (4) интерфейсы 

 (5) одномерные массивы 

 (6) тип данных "множество" 


Номер 3
Из управляющих конструкций в языке Cи-бемоль допускаются:

Ответ:

 (1) if-then-else 

 (2) while-do 

 (3) do-while 

 (4) присваивания 

 (5) вызовы 

 (6) repeat-until 




Главная / Программирование / Разработка компиляторов / Тест 2