WorksheetsМассивы С++
Total questions: 18
Worksheet time: 3hrs 0mins
Значением, доступным по адресу *a, является элемент массива
a[0]
a[1]
a[2]
a[ ]
Значением, доступным по адресу **b, является элемент массива
b[1][0]
b[0][1]
b[1][1]
b[0][0]
Для глобальных массивов место в памяти будет выделено
во время его вторичной инициализации
во время начала работы с массивом
в момент запуска программы
Двоичный поиск можно применить только в том случае, если исходный массив
транспонирован
упорядочен
является статическим
Массивы, память под которые выделяется работающей программе по запросам, предусмотренным программистом, называют
динамическими
анализаторными
модификативными
Статические
Требуется заполнить массив именно так:
X = [1 3 5 7 9 11]
Какой оператор надо поместить в тело цикла вместо многоточия?
for ( k=0; k<6; k++ )
{
...
}
X[k] = k
X[k] = 2*k - 1
X[k] = 2*(k + 1)
X[k] = 2*k + 1
Как удалять динамические массивы?
delete <имя массива>;
delite [] <имя массива>;
delete <имя массива>[];
delete [] <имя массива>;
Как определить динамический массив?
int *mas = new int[N];
int *mas = new int a;
new int[mas]=int *N;
int mas = new * int;
Как определить двумерный динамический массив?
float **A = new float* [N];
for (int i = 0; i < N; i++)
A[i] = new float [M];
float **A = new float* [N], new float* [M];
int mas= new int* [N] [M];
int**mas = new int* [N];
for (int i = mas; i < 10; i++)
mas[i] = new int[N];
Удаление двумерного массива
for (int i = 0; i < N; i++)
{
delete [] mas[i];
}
delete [] mas;
for (int i = 0; i < N; i++)
{
delete [] mas[i];
delete [] mas;
}
delete [] **mas;
delete mas[N][M];
С помощью какого цикла можно просмотреть все элементы массива?
if
for
while
do while
Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main()
{ int i, j;
int m1 = 5, m2 = 5;
int** pArr = new int* [m1];
for (i = 0; i < m1; i++)
{
pArr[i] = new int[m2];
}
pArr[3][3] = 100;
cout << pArr[3][3] << "\n";
for (i = 0; i < m1; i++)
{delete[]pArr[i];}
delete[]pArr;
return 0;
}
Ошибка на этапе компиляции
100
Ошибка на этапе выполнения
Мусорные значения
Отработает ли следующий код, если да то что произойдет в результате его выполнения, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main ()
{
int rows, cols;
cin>>rows>>cols;
int * mas = new int[rows];
for (int i=0; i<rows; i++)
mas[i]=new int[cols];
return 0;
}
Будет создан двумерный массив размером на rows строк и cols столбцов
Будет создан двумерный массив размером на rows столбцов и cols строк
Ошибка на этапе компиляции
Ошибка на этапе выполнения
Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main()
{
int rows = 5, cols = 3, count = 0;
int ** mas = new int*[rows];
for (int i = 0; i < rows; i++)
{
mas[i] = new int[cols];
for (int j = 0; j < cols; j++, count++)
mas[i][j] = count;
}
for (int i = 0; i < rows; i++)
cout << *mas[i] << "\t";
for (int i = 0; i < rows; i++)
delete[]mas[i];
delete[]mas;
return 0;
}
Мусорные значения
Адреса строк
Адреса столбцов
0 3 6 9 12
0 1 2 3 4
Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main()
{
int rows = 3, cols = 5;
int ** mas = new int*[rows];
int i;
for (i = 0; i<rows; i++)
mas[i] = new int[cols];
cout << mas[i] << "\t";
for (i = 0; i<cols; i++)
delete[] mas[i];
delete[] mas;
return 0;
}
0 1 2
Адреса строк массива mas
Мусорные значения
Ошибка на этапе компиляции
Ошибка на этапе выполнения
Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main()
{
int* ar1 = new int[4];
int* ar2 = new int[3];
int* ar3 = new int[2];
for (int i = 0; i < 4; i++)
ar1[i] = i + 2;
for (int i = 0; i < 3; i++)
ar2[i] = i + 1;
for (int i = 0; i < 2; i++)
ar3[i] = i;
for (int i = 0; i < 2; i++){
cout << ar3[i];
}
for (int i = 0; i < 3; i++){
cout << ar2[i];
}
for (int i = 0; i < 4; i++){
cout << ar1[i];
}
delete[] ar3;
delete[] ar2;
delete[] ar1;
return 0;
}
1 1 2 2 3 3 4 5
Мусорные значения
0 1 0 1 0 1 0 1 0
0 1 2 3 4 5 6 7 8
0 1 1 2 3 2 3 4 5
Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main()
{
int ar[2][2] = { { 1, 2 }, { 3, 4 } };
int** mas = ar;
for (int i = 0; i<2; i++)
for (int j = 0; j<2; j++)
cout << mas[i][j] << '\t';
return 0;
}
1 2 3 4
4 3 2 1
0 1 1 0
Ошибка на этапе компиляции
Ошибка на этапе выполнения
Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:
#include <iostream>
using namespace std;
int main()
{
int ** mas = new int*[3];
for (int i = 0; i<3; i++)
{
mas[i] = new int[3];
}
for (int i = 0; i<3; i++)
{
*(mas + i) = i--;
cout << mas[i][i] << '\t';
}
return 0;
}
0 4 8
Ошибка на этапе компиляции
Ошибка на этапе выполнения
Мусорные значения
-1 3 7
