Главная / Программирование /
Основы программирования на С# 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) 0 
 (2) 7 
 (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
не допускается присваивание значения текущему элементу