СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Контрольная работа "Алгоритмы обработки массивов"

Категория: Информатика

Нажмите, чтобы узнать подробности

Контрольная работа "Алгоритмы обработки массивов" состоит из двух вариантов. Есть ключ к задачам для учителя.

Просмотр содержимого документа
«Контрольная работа "Алгоритмы обработки массивов"»

Контрольная работа

Алгоритмы обработки массивов

Вариант 1

(2 балла) 1. Назовите вид сортировки массива: «Дана последовательность чисел. Требуется переставить элементы так, чтобы они были расположены по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый - на место наибольшего. Затем, начиная со второго, эта процедура повторяется».

А) сортировка обменами; Б) сортировка выбором;

В) сортировка вставками; Г) сортировка Шелла.



(4 балла) 2. а) Что выполняет фрагмент программы:

for (int i = 0; i

a[i] = rand() % 100;

cout



б) Напишите фрагмент программы сортировки обменами элементов массива.

(6 баллов) 3. Дан массив из 5 целых чисел. Числа вводятся с клавиатуры. Составить программу вычисления разности между произведением и суммой элементов массива. В выходные данные выводится одно число – разность между произведением и суммой элементов массива.

№ теста

Входные данные

Выходные данные

1

5

1 2 1 2 1

-3

2

5

1 2 3 1 1

-2











(8 баллов) 4. Задайте массив из 10 элементов и найдите сумму и количество элементов, которые кратны 3 и оканчиваются на 5.


Входные данные: первое число – количество элементов в массиве.

Выходные данные: первое число – сумма, второе число – количество.

№ теста

Входные данные

Выходные данные

1

5

3 5 15 45 105

165

3

2

10

1 2 5 15 45 105 75 8 9 4

240

4


(10 баллов) 5. Составьте программу, которая задает массив целых чисел и находит среднее арифметическое элементов с четными значениями и нечетными индексами.

Входные данные: первое число – количество элементов в массиве.

№ теста

Входные данные

Выходные данные

1

5

2 1 6 8 3

5

2

5

1 2 3 4 5

3





Шкала выставления отметки



10б

1

2

3-5

6-8

9-11

12-14

15-18

19-23

24-28

29-30













Контрольная работа

Алгоритмы обработки массивов

Вариант 2

(2 балла) 1.Назовите вид сортировки массива: «Дана последовательность чисел a1, a2,...an. Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа ai и ai+1. Если aiai+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не окажутся расположенными в порядке возрастания».

А) сортировка обменами; Б) сортировка выбором;

В) сортировка вставками; Г) сортировка Шелла.



(4 балла) 2. а) Что выполняет фрагмент программы:

for (int i = 0; i

cout a[i]



б) Напишите фрагмент программы сортировки выбором элементов массива.

(6 баллов) 3. Дан массив из N элементов. Найдите сумму элементов с четными номерами и найдите отдельно произведение с нечетными номерами. В выходных данных первое число выводится сумма элементов с четными индексами, второе число – произведение элементов с нечетными номерами.


№ теста

Входные данные

Выходные данные

1

6

1 2 3 4 5 6

8

48

2

5

1 1 2 2 3

6

2













(8 баллов) 4. Задайте массив из 10 элементов и найдите сумму и количество элементов, которые кратны 7 и оканчиваются на 6.


Входные данные: первое число – количество элементов в массиве.

Выходные данные: первое число – сумма, второе число – количество.

№ теста

Входные данные

Выходные данные

1

5

56 13 5 126 3

182

2

2

5

1 2 196 56 126

378

3



(10 баллов) 5. Составьте программу, которая заполняет массив числами, вводимыми с клавиатуры, находит минимальный элемент массива среди элементов с четными индексами и находит максимальный элемент среди элементов с нечетными индексами.

Входные данные: первое число – количество элементов в массиве.

Выходные данные: первое число – минимальное число, второе число – максимальное число.

№ теста

Входные данные

Выходные данные

1

5

2 4 8 1 5

2

4

2

7

1 7 8 2 3 5 9

1

7




Шкала выставления отметки

10б

1

2

3-5

6-8

9-11

12-14

15-18

19-23

24-28

29-30











Решение задач

Вариант 1

(6 баллов) 3. Дан массив из 5 целых чисел. Числа вводятся с клавиатуры. Составить программу вычисления разности между произведением и суммой элементов массива. В выходные данные выводится одно число – разность между произведением и суммой элементов массива.

№ теста

Входные данные

Выходные данные

1

5

1 2 1 2 1

-3

2

5

1 2 3 1 1

-2

#include


using namespace std;


int main()

{

int n;

cinn;

int a[n];

for(int i=0;i

cina[i];


int s=0; int p=1;

for(int i=0;i

{s=s+a[i];

p=p*a[i];}


int r=p-s;


cout

return 0;

}











(8 баллов) 4. В двумерном массиве найти наибольший элемент, лежащий на главной диагонали.

Входные данные: два первых числа вводится размерность массива – количество строк и столбцов.


№ теста

Входные данные

Выходные данные

1

3 3

1 2 3

4 5 6

7 8 9

9

2

2 2

1 9

8 7

7


#include

#include

using namespace std;

int main()

{

int n,m;

cinn;

cinm;

int a[n][m];

for(int i=0;i

{ for(int j=0;j

cina[i][j];}


int max=a[0][0];


for(int i=1;i

for(int j=1;j

if ((i=j)&&(a[i][j]max))

{

max=a[i][j];

}


cout


return 0;

}











(10 баллов) 5. Составьте программу, которая задает массив целых чисел и находит среднее арифметическое элементов с четными значениями и нечетными индексами.

Входные данные: первое число – количество элементов в массиве.

№ теста

Входные данные

Выходные данные

1

5

2 1 6 8 3

5

2

5

1 2 3 4 5

3


#include


using namespace std;


int main()

{

int n;

cinn;

int a[n];

for(int i=0;i

cina[i];


int s=0; int k=0;

for(int i=0;i

if (a[i]%2==0)

{s=s+a[i];

k=k+1;}


int s1=0; int k1=0;

for(int i=0;i

if (i%2==1)

{s1=s1+a[i];

k1=k1+1;}


double sr;

sr=(s+s1)/(k+k1);


cout

cout

cout

cout

cout

return 0;

}







Вариант 2

(6 баллов) 3. Дан массив из N элементов. Найдите сумму элементов с четными номерами и найдите отдельно произведение с нечетными номерами. В выходных данных первое число выводится сумма элементов с четными индексами, второе число – произведение элементов с нечетными номерами.


№ теста

Входные данные

Выходные данные

1

6

1 2 3 4 5 6

8

24

2

5

1 1 2 2 3

6

2


#include


using namespace std;


int main()

{

int n;

cinn;

int a[n];

for(int i=0;i

cina[i];


int s=0;

for(int i=0;i

if(i%2==0)

{s=s+a[i];

}

int p=1;

for(int i=0;i

if(i%2==1)

{p=p*a[i];

}


cout

cout

return 0;

}










(8 баллов) 4. В двумерном массиве вычислить суммы элементов, расположенных выше и ниже главной диагонали, результат вывести на экран.

Входные данные: два первых числа вводится размерность массива – количество строк и столбцов.

Выходные данные: первое число - сумма элементов, расположенных выше главной диагонали; второе число - сумма элементов, расположенных ниже главной диагонали.


№ теста

Входные данные

Выходные данные

1

3 3

1 2 3

4 5 6

7 8 9

11

19

2

4 4

1 2 4 5

4 7 8 9

3 1 2 4

1 1 1 1

32

11

#include

#include

#include

using namespace std;


int main()

{

int n,m;

cinn;

cinm;

int a[n][m];

for(int i=0;i

{ for(int j=0;j

cina[i][j];}


int s=0;

for(int i=0;i

for(int j=0;j

if (ij)

s=a[i][j]+s;


int s1=0;

for(int i=0;i

for(int j=0;j

if (i

s1=a[i][j]+s1;


cout

cout


return 0;

}


(10 баллов) 5. Составьте программу, которая заполняет массив числами, вводимыми с клавиатуры, находит минимальный элемент массива среди элементов с четными индексами и находит максимальный элемент среди элементов с нечетными индексами.

Входные данные: первое число – количество элементов в массиве.

Выходные данные: первое число – минимальное число, второе число – максимальное число.

№ теста

Входные данные

Выходные данные

1

5

2 4 8 1 5

2

4

2

7

1 7 8 2 3 5 9

1

7

#include


using namespace std;


int main()

{

int n; cinn; int a[n];

for(int i=0;i

cina[i];

int min=a[0];

for(int i=0;i

if ((i%2==0)&&(a[i]

{min=a[i];}


int max=a[0];

for(int i=1;i

if ((i%2==1)&&(a[i]max))

{max=a[i];}


cout

cout

return 0; }