игра брюс 2048
Главная / Программирование / Основы программирования на С# 3.0: ядро языка - Visual Studio 2008 / Тест 3

Основы программирования на С# 3.0: ядро языка - Visual Studio 2008 - тест 3

Упражнение 1:
Номер 1
Назовем выражением последовательность констант, переменных, функций, объединенных знаками операций и скобок. Правда ли, что:

Ответ:

 (1) любое выражение, соответствующее этому определению, по правилам языка C# является синтаксически корректным 

 (2) ошибки синтаксиса в записи выражения обнаруживаются на этапе компиляции 

 (3) любое синтаксически корректное выражение может быть вычислено на этапе выполнения, не приводя к появлению ошибок 


Номер 2
Правила вычисления выражения задают:

Ответ:

 (1) приоритет операций 

 (2) приоритет операндов 

 (3) порядок выполнения операций одного приоритета 

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

 (5) тип и значение результата выполнения операции над заданными значениями операндов определенного типа 


Номер 3
Операндами выражения являются:

Ответ:

 (1) константы 

 (2) переменные 

 (3) переменные с индексами 

 (4) события 

 (5) функции 


Упражнение 2:
Номер 1
Отметьте истинные высказывания:

Ответ:

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

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

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


Номер 2
Каково значение переменной u в результате выполнения следующего фрагмента программы:
  
  int x = 5, y = 7, z = 12, u = x & y | x & z;
  
  

Ответ:

 (1)

 (2)

 (3)

 (4) 12 

 (5) 21 


Номер 3
Укажите правильный порядок следования приоритетов бинарных операций:

Ответ:

 (1) арифметические, логические, отношения 

 (2) отношения, логические, арифметические 

 (3) арифметические, отношения, логические 


Упражнение 3:
Номер 1
В сигнатуру метода входит:

Ответ:

 (1) подпись метода 

 (2) знаки операндов метода 

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


Номер 2
Преобразования между значимыми и ссылочными типами:

Ответ:

 (1) всегда допустимы 

 (2) никогда не допустимы 

 (3) должны быть явными 

 (4) используют операции boxing и unboxing 

 (5) могут быть неявными 


Номер 3
Отметьте истинные высказывания:

Ответ:

 (1) перегрузкой операции называется выполнение операции над тяжелыми операндами 

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

 (3) методы класса в отличие от операций не могут быть перегруженными 

 (4) имена перегруженных методов совпадают 

 (5) сигнатура метода однозначно определяется заголовком метода 

 (6) перегруженные методы и операции отличаются сигнатурой 


Упражнение 4:
Номер 1
Для безопасного преобразования типа справедливо выполнение следующих условий:

Ответ:

 (1) тип и значение источника преобразования math преобразуется к типу и значению цели преобразования math 

 (2) тип источника преобразуется к типу цели, а значение остается без изменения 

 (3) при преобразовании значения не происходит потери точности 

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


Номер 2
Явное преобразование типа может быть выполнено:

Ответ:

 (1) приведением типа (кастингом) 

 (2) методами класса Convert 

 (3) методом Parse 

 (4) методом ToString 

 (5) методами класса Translate из библиотеки FCL 


Номер 3
Отметьте истинные высказывания:

Ответ:

 (1) явные преобразования задаются программистом и явно заданы в программном коде 

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

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

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

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


Упражнение 5:
Номер 1
Правда ли, что преобразование типа:

Ответ:

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

 (2) всегда может быть выполнено, используя методы класса Convert 

 (3) всегда может быть выполнено, используя метод Parse 

 (4) не всегда выполнимо 


Номер 2
Для данного фрагмента программы
  
  int n = 4; float u = 5.55f; double v; 
  v = u + n;
  
  

Ответ:

 (1) возникнет ошибка на этапе компиляции 

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

 (3) при выполнении оператора присваивания будет выполнено одно неявное преобразование типа 

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


Номер 3
Операция, заданная знаком "точка",  в форме X.Y или X.Y()это:

Ответ:

 (1) операция вызова - одна из важнейших и часто используемых операций в объектном программировании 

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

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

 (4) завершаемая знаком "точка с запятой" задает оператор вызова языка C# 


Упражнение 6:
Номер 1
В результате выполнения фрагмента
  
  double x = 1, y = Math.Sin(x), z = Math.Cos(x);
  double  w = (y < z) ? (x -1)/(x+1) : (x + 1) /(x - 1);
  
  

Ответ:

 (1) возникнет ошибка на этапе компиляции 

 (2) возникнет ошибка на этапе выполнения 

 (3) ошибок не будет и переменная w получит значение 0 

 (4) ошибок не будет и переменная w получит значение Infinity 


Номер 2
Отметьте истинные высказывания:

Ответ:

 (1) вызов объектом X свойства или метода называется квалифицированным, если в вызове явно указано имя объекта 

 (2) вызов объектом X свойства или метода называется квалифицированным, если X - это текущий объект 

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

 (4) у текущего объекта нет имени 

 (5) this - это имя текущего объекта 

 (6) при вызове текущим объектом свойства или метода имя текущего объекта можно опускать 


Номер 3
В результате выполнения фрагмента 
  
  int n = 1, m = n++ + ++n;
  
  переменные m и n получат значения:
  

Ответ:

 (1) n = 3, m = 3 

 (2) n = 1, m = 3 

 (3) n = 3, m = 4 

 (4) n = 1, m = 4 


Упражнение 7:
Номер 1
В результате выполнения фрагмента
string s = "2009", s1 = ""; 
if( s[1] == s[2] ) s1 = "happy number";

Ответ:

 (1) возникнет ошибка на этапе компиляции 

 (2) возникнет ошибка на этапе выполнения 

 (3) ошибок не будет и число символов переменной s1 равно 0 

 (4) ошибок не будет и число символов переменной s1 равно 12 


Номер 2
В каком фрагменте оценка mark получит значение 5:

Ответ:

 (1) int mark; if(1 = 1/2 + 1/2) mark = 5; else mark = 2 

 (2) int mark; if(1 == 1/2 + 1/2) mark = 5; else mark = 2 

 (3) int mark; if(1 == 1.0/2 + 1.0/2) mark = 5; else mark = 2 


Номер 3
В результате выполнения фрагмента
  
  short u1 = 100, u2 = 200, u3 = u1 + u2;
  
  

Ответ:

 (1) возникнет ошибка на этапе компиляции 

 (2) возникнет ошибка на этапе выполнения 

 (3) ошибок не будет и переменная u3 получит значение 300 

 (4) ошибок не будет и переменная u3 получит значение 45 




Главная / Программирование / Основы программирования на С# 3.0: ядро языка - Visual Studio 2008 / Тест 3