wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Массивы С++

Total questions: 18

Worksheet time: 3hrs 0mins

Name
Class
Date
1.

Значением, доступным по адресу *a, является элемент массива

a)

a[0] 

b)

a[1] 

c)

a[2] 

d)

a[ ] 

2.

Значением, доступным по адресу **b, является элемент массива

a)

b[1][0] 

b)

b[0][1] 

c)

b[1][1] 

d)

b[0][0] 

3.

Для глобальных массивов место в памяти будет выделено

a)

во время его вторичной инициализации 

b)

во время начала работы с массивом 

c)

в момент запуска программы 

4.

Двоичный поиск можно применить только в том случае, если исходный массив

a)

транспонирован 

b)

упорядочен 

c)

является статическим 

5.

Массивы, память под которые выделяется работающей программе по запросам, предусмотренным программистом, называют

a)

динамическими 

b)

анализаторными 

c)

модификативными 

d)

Статические

6.

Требуется заполнить массив именно так:

X = [1 3 5 7 9 11]

Какой оператор надо поместить в тело цикла вместо многоточия?

for ( k=0; k<6; k++ )

{

...

}

a)

X[k] = k

b)

X[k] = 2*k - 1

c)

X[k] = 2*(k + 1)

d)

X[k] = 2*k + 1

7.

Как удалять динамические массивы?

a)

delete <имя массива>;

b)

delite [] <имя массива>;

c)

delete <имя массива>[];

d)

delete [] <имя массива>;

8.

Как определить динамический массив?

a)

int *mas = new int[N];

b)

int *mas = new int a;

c)

new int[mas]=int *N;

d)

int mas = new * int;

9.

Как определить двумерный динамический массив?

a)

float **A = new float* [N];

for (int i = 0; i < N; i++)

A[i] = new float [M];

b)

float **A = new float* [N], new float* [M];

c)

int mas= new int* [N] [M];

d)

int**mas = new int* [N];

for (int i = mas; i < 10; i++)

mas[i] = new int[N];

10.

Удаление двумерного массива

a)

for (int i = 0; i < N; i++)

{

delete [] mas[i];

}

delete [] mas;

b)

for (int i = 0; i < N; i++)

{

delete [] mas[i];

delete [] mas;

}

c)

delete [] **mas;

d)

delete mas[N][M];

11.

С помощью какого цикла можно просмотреть все элементы массива?

a)

if

b)

for

c)

while

d)

do while

12.

Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:

#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;

}

a)

Ошибка на этапе компиляции

b)

100

c)

Ошибка на этапе выполнения

d)

Мусорные значения

13.

Отработает ли следующий код, если да то что произойдет в результате его выполнения, если нет то укажите ошибки:

#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;

}

a)

Будет создан двумерный массив размером на rows строк и cols столбцов

b)

Будет создан двумерный массив размером на rows столбцов и cols строк

c)

Ошибка на этапе компиляции

d)

Ошибка на этапе выполнения

14.

Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:

#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;

}

a)

Мусорные значения

b)

Адреса строк

c)

Адреса столбцов

d)

0 3 6 9 12

e)

0 1 2 3 4

15.

Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:

#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;

}

a)

0 1 2

b)

Адреса строк массива mas

c)

Мусорные значения

d)

Ошибка на этапе компиляции

e)

Ошибка на этапе выполнения

16.

Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:

#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;

}

a)

1 1 2 2 3 3 4 5

b)

Мусорные значения

c)

0 1 0 1 0 1 0 1 0

d)

0 1 2 3 4 5 6 7 8

e)

0 1 1 2 3 2 3 4 5

17.

Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:

#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;

}

a)

1 2 3 4

b)

4 3 2 1

c)

0 1 1 0

d)

Ошибка на этапе компиляции

e)

Ошибка на этапе выполнения

18.

Отработает ли следующий код, если да то что выведет на экран, если нет то укажите ошибки:

#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;

}

a)

0 4 8

b)

Ошибка на этапе компиляции

c)

Ошибка на этапе выполнения

d)

Мусорные значения

e)

-1 3 7