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

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

Упражнение 1:
Номер 1
В результате выполнения фрагмента кода
  
  int p = 1, q = 2, r = 3;
  p += q *= r-= p+q+r;
  
  переменные p, q, r примут значения:
  

Ответ:

 (1) p = 1, q = 2, r = 6 

 (2) p = 6, q = 6, r = 6 

 (3) p = -5, q = -6, r = -3 

 (4) p = 5, q = 6, r = 3 


Номер 2
К выражениям с побочным эффектом относятся выражения, заданные операциями:

Ответ:

 (1) присваивания (x = expr, x += y *= expr

 (2) увеличения и уменьшения (x++, x--, ++x, --x

 (3) арифметическими (x + y, x / y

 (4) сдвига (x << n, x >> n


Номер 3
Выражением с побочным эффектом называется выражение, которое помимо прямого эффекта - вычисления значения и типа выражения:

Ответ:

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

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

 (3) изменяет значение некоторой переменной, связанной с выражением 

 (4) изменяет тип операндов 


Упражнение 2:
Номер 1
Присваивание является ссылочным присваиванием, если:

Ответ:

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

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

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


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

Ответ:

 (1) операции "упаковать" и "распаковать" (boxing, unboxing) выполняются, когда цель и источник присваивания относятся к разным типам - ссылочным и значимым 

 (2) переменной ссылочного типа нельзя присвоить значение выражения значимого типа 

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

 (4) переменной ссылочного типа object можно присвоить значение выражения значимого типа 


Номер 3
Присваивание является значимым присваиванием, если:

Ответ:

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

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

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


Упражнение 3:
Номер 1
При выполнении фрагмента кода
  
  for (int i = 0, j =1; i < 2; i++)
            {
                i--; j = -j;
            }
  
  

Ответ:

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

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

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

 (4) ошибки не возникнет, и переменная j будет иметь значение 1 

 (5) ошибки не возникнет, и переменная j будет иметь значение -1 


Номер 2
Правда ли, что при выполнении фрагмента кода
  
int j = 0;
  for (int i = 1; i < 5; i++)
  {
     if (i < 2) continue;
     j += 2;
     if (i < j) break;                
   }
  
  

Ответ:

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

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

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

 (4) ошибки не возникнет, и переменная j будет иметь значение 0 

 (5) ошибки не возникнет, и переменная j будет иметь значение 2 

 (6) ошибки не возникнет, и переменная j будет иметь значение 4 

 (7) ошибки не возникнет, и переменная j будет иметь значение 8 


Номер 3
При выполнении фрагмента кода
object x = 2+3;

Ответ:

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

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

 (3) ошибки не возникнет, и переменная x будет иметь значение 5 и тип object 

 (4) ошибки не возникнет, и переменная x будет иметь значение 5 и тип int 


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

Ответ:

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

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

 (3) счетчик цикла должен быть объявлен в заголовке оператора цикла for 


Номер 2
Какие из операторов не  относятся  к операторам  перехода:

Ответ:

 (1) goto; 

 (2) break; 

 (3) switch; 

 (4) continue; 

 (5) return; 


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

Ответ:

 (1) оператор return, позволяет завершить выполнение процедуры или функции 

 (2) оператор break завершает выполнение цикла 

 (3) оператор continue завершает выполнение цикла 

 (4) оператор continue используется только в теле цикла 


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

Ответ:

 (1) тело цикла foreach выполняется столько раз, сколько элементов находится в контейнере 

 (2) цикл foreach работает только на чтение, но не на запись элементов 

 (3) оператор yield позволяет заполнить контейнер элементами 

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


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

Ответ:

 (1) присваивание является операцией языка C# 

 (2) в теле оператора foreach текущий элемент позволяет получать и изменять значения элементов, хранящихся в контейнере 

 (3) в операторе if число ключевых слов if должно совпадать с числом слов else 

 (4) case-выражение в операторе switch может задавать диапазон значений 


Номер 3
Операторами цикла в C# являются:

Ответ:

 (1) оператор for 

 (2) оператор foreach 

 (3) оператор while с проверкой условия в начале цикла 

 (4) оператор do - while с проверкой условия в конце цикла 

 (5) оператор loop с проверкой условия в середине цикла 


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

Ответ:

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

 (2) оператор if может быть эквивалентен по своему действию пустому оператору 

 (3) оператор foreach не применим при работе с массивами 

 (4) каждая case-ветвь оператора switch должна заканчиваться оператором break 


Номер 2
В результате выполнения следующего фрагмента кода
  
  int a = 2,  b = 3, c = 5,  x = 0;
  if( a > b) 
  if(c > a)  if(c > a + b)  x = a + b + c;  else x = 7;  else x = 12;
  
  переменная x получит значение: 
  

Ответ:

 (1)

 (2)

 (3) 10 

 (4) 12 


Номер 3
При выполнении фрагмента кода
  
int j = 0;
  for (int i = 1; i < 5; i++)
  {
    if (i < 2) continue;
    j += 2;
    if (i < j) break;                
   }
  
  

Ответ:

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

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

 (3) тело цикла выполнится три раза 

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


Упражнение 7:
Номер 1
Правда ли, что при выполнении фрагмента кода
  
int j = 0;
 for (byte i = 1; i > 0; i++) j = i;
  
  

Ответ:

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

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

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

 (4) ошибки не возникнет, и переменная j будет иметь значение 0 

 (5) ошибки не возникнет, и переменная j будет иметь значение 128 

 (6) ошибки не возникнет, и переменная j будет иметь значение 255 


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

Ответ:

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

 (2) оператор switch по своему действию может быть эквивалентен пустому оператору 

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

 (4) в теле оператора foreach не допускается присваивание значения текущему элементу 


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

Ответ:

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

 (2) оператор switch по своему действию может быть эквивалентен пустому оператору 

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

 (4) в теле оператора foreach не допускается присваивание значения текущему элементу 




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