Главная / Программирование /
Основы программирования на C# / Тест 11
Основы программирования на C# - тест 11
Упражнение 1:
Номер 2
Отметьте правильные объявления:
Ответ:
 (1) double[] v1 = {1,2,3}, v2={3,4,5}, v3={6,7,8};
 
 (2) double[,] w1 = new double[3,3];
 
 (3) double[][] z1 = new double[3][];
 
 (4) object[][] z2 = new object[3][];
 
Номер 3
Отметьте правильные объявления:
Ответ:
 (1) int[][,] mx = {
new int[2,3],
new int[3,2]
}; 
 (2) object[][] mz = {
new int[3],
new double[4]
}; 
 (3) int n = 10; string[,] ms = new string[n,2*n];
 
 (4) double[] md = new double[5] = {1.5, 2.7, 3.9};
 
 (5) float[] mf = {1.5, 2.7, 3.9};
 
Упражнение 2:
Номер 1
Отметьте истинные высказывания:
Ответ:
 (1) массив массивов является более общей структурой данных, чем многомерный массив 
 (2) в языке C# переменные m1
и m2
, являющиеся массивами с разным числом элементов всегда принадлежат разным классам 
 (3) в языке C# переменные m1
и m2
, являющиеся массивами с разными типами элементов всегда принадлежат разным классам 
 (4) процедура – функция в C# может возвращать массив в качестве результата 
Номер 2
Отметьте истинное высказывание:
Ответ:
 (1) массив массивов позволяет задать многомерный массив 
 (2) в языке C# переменные m1
и m2
, являющиеся массивами, всегда принадлежат одному классу 
 (3) в языке C# для массивов не допускается отложенная инициализация 
Номер 3
Отметьте истинные высказывания
Ответ:
 (1) элементы массива доступны для чтения и записи 
 (2) в массивы C# можно добавлять и удалять элементы 
 (3) объявления int[]
и double[]
задают один и тот же класс-массив 
 (4) если у метода формальный аргумент является массивом, то его можно вызывать по значению, опуская описатели ref или out, даже если его элементы меняются в теле метода, но не меняется сам массив (ссылка) 
Упражнение 3:
Номер 1
Какая из процедур вызовет ошибку периода трансляции?
Ответ:
 (1) public static void L1_V1_Q31(int[] A, int S)
{
S=0;
for(int i =0; i<A.Length; i++) S+=A[i];
} 
 (2) public static void L1_V1_Q32(ref int[] A, ref int S)
{
S=0;
for(int i =0; i<A.Length; i++) S+=A[i];
} 
 (3) public void L1_V1_Q33(val int[] A, val int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
return(S);
} 
 (4) public static int L1_V1_Q34(object[] A)
{
int S=0;
foreach(int i in A) S+=(int)i;
return(S);
} 
Номер 2
Какие из процедур корректно вычислят сумму переданного им массива int?
Ответ:
 (1) public static void L1_V1_Q31(int[] A, int* S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
} 
 (2) public static void L1_V1_Q32(ref int[] A, ref int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
} 
 (3) public void L1_V1_Q33(val int[] A, val int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
return(S);
} 
 (4) public static int L1_V1_Q34(object[] A)
{
int S=0;
foreach(int i in A) S+=(int)i;
return(S);
} 
Номер 3
Отметьте вызовы процедур, в которых переменная sum получит значение 21. int sum =0; int[] mas = {7, 6, 8}; object[] mas2 = {3, 9, 9};
Описания процедур:public static void L1_V1_Q31(int[] A, int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
}
public static void L1_V1_Q32(ref int[] A, ref int S)
{
S=0;
for(int i =0; i< A.Length; i++) S+=A[i];
}
public static int L1_V1_Q34(object[] A)
{
int S=0;
foreach(int i in A) S+=(int)i;
return(S);
}
Ответ:
 (1) Questions.L1_V1_Q31(mas, sum)
 
 (2) Questions.L1_V1_Q32(ref mas, ref sum)
 
 (3) sum = Questions.L1_V1_Q34(mas)
 
 (4) sum = Questions.L1_V1_Q34(mas2)
 
Упражнение 4:
Номер 1
Размерность массива определяется:
Ответ:
 (1) числом его элементов 
 (2) числом его индексов 
 (3) по максимальному значению элементов 
Номер 2
Массив массивов – это массив
Ответ:
 (1) двумерный 
 (2) одномерный, элементы которого являются массивами 
 (3) в котором массивы, принадлежащие одному измерению, могут иметь произвольное число элементов 
Номер 3
При инициализации массива задание конструктора обязательно
Ответ:
 (1) для одномерных массивов 
 (2) для многомерных массивов 
 (3) для массива массивов 
Упражнение 5:
Номер 1
Отметьте верные утверждения:
Ответ:
 (1) массивы C# являются динамическими 
 (2) запись T[]
следует понимать как одномерный массив с элементами типа T
 
 (3) значения элементов массива можно не инициализировать при первом использовании 
Номер 2
Правда ли, что:
Ответ:
 (1) в процедуре, которой передан массив в качестве аргумента, можно определить все характеристики этого массива 
 (2) в C# многомерный массив и массив массивов – это два разных вида массивов 
 (3) константные массивы можно использовать только при инициализации массивов 
Номер 3
Правда ли, что:
Ответ:
 (1) элементы константного массива следует заключать в квадратные скобки 
 (2) если массив объявляется без инициализации, то создается только висячая ссылка со значением null 
 (3) для динамических массивов можно указать нижнюю и верхнюю границу изменения индексов