игра брюс 2048
Главная / Программирование / Основы программирования на 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) для динамических массивов можно указать нижнюю и верхнюю границу изменения индексов 




Главная / Программирование / Основы программирования на C# / Тест 11