13543

Работа с массивами и матрицами в языке программирования

Тест

Информатика, кибернетика и программирование

Тема: Работа с массивами и матрицами в языке программирования1. Что нужно знать: работу цикла for цикла с переменной массив – это набор однотипных элементов имеющих общее имя и расположенных в памяти рядом для обращения к элементу массива используют квадрат

Русский

2013-05-12

230 KB

5 чел.

Тема:  Работа с массивами и матрицами в языке программирования1.

Что нужно знать:

  •  работу цикла for (цикла с переменной)
  •  массив – это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом
  •  для обращения к элементу массива используют квадратные скобки, запись  A[i] обозначает элемент массива A с номером (индексом)  i
  •  матрица (двухмерный массив) – это прямоугольная таблица однотипных элементов
  •  если матрица имеет имя A, то обращение A[i,k] обозначает элемент, расположенный на пересечении строки i и столбца k
  •  элементы, у которых номера строки и столбца совпадают, расположены на главной диагонали2

A[1,1]

A[2,2]

A[3,3]

A[4,4]

  •  выше главной диагонали расположены элементы, у которых номер строки меньше номера столбца:

A[1,2]

A[1,3]

A[1,4]

A[2,3]

A[2,4]

A[3,4]

  •  ниже главной диагонали расположены элементы, у которых номер строки больше номера столбца:

A[2,1]

A[3,1]

A[3,2]

A[4,1]

A[4,2]

A[4,3]

Ещё пример задания:

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Ниже представлен фрагмент программы, записанный на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются.  

for i:=0 to 9 do

 A[i]:=9-i;

for i:=0 to 4 do begin

 k:=A[i];

 A[i]:=A[9-i];

 A[9-i]:=k;

end;

Чему будут равны элементы этого массива после выполнения фрагмента программы?

1)  9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9

3) 9 8 7 6 5 5 6 7 8 9

4) 0 1 2 3 4 4 3 2 1 0

Решение:

  1.  выясним, как заполняется массив в первом цикле

for i:=0 to 9 do

 A[i]:=9-i;

здесь элемент A[0] равен 9, элемент A[1]=8 и т.д. до A[9]=0

  1.  рассмотрим второй цикл, в котором операторы

 k:=A[i];

 A[i]:=A[9-i];

 A[9-i]:=k;

меняют местами элементы A[i] и A[9-i]

  1.  второй цикл выполняется всего 5 раз, то есть останавливается ровно на половине массива

for i:=0 to 4 do begin

 ...

end;

таким образом в нем меняются элементы A[0]A]9], A[1]A]8], A[2]A]7], A[3]A]6] и A[4]A]5]

  1.  в результате массив оказывается «развернут» наоборот, элемент A[0] (он был равен 9) стал последним, следующий (A[1]=8) – предпоследним и т.д., то есть получили

0 1 2 3 4 5 6 7 8 9

  1.  Ответ: 2.

Ещё пример задания:

Дан фрагмент программы, обрабатывающей двухмерный массив A размера n×n.

k := 1;

for i:=1 to n do begin

 c := A[i,i];

 A[i,i] := A[k,i];

 A[k,i] := c;

end

Представим массив в виде квадратной таблицы, в которой для элемента массива A[i,j] величина i является номером строки, а величина j – номером столбца, в котором расположен элемент. Тогда данный алгоритм меняет местами

 1) два столбца в таблице

 2) две строки в таблице

 3) элементы диагонали и k-ой строки таблицы

 4) элементы диагонали и k-го столбца таблицы

Решение:

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

 c := A[i,i];

 A[i,i] := A[k,i];

 A[k,i] := c;

меняют местами значения A[i,i] и  A[k,i], используя переменную c в качестве вспомогательной ячейки;

  1.  элемент матрицы  A[i,i], у которого номера строки и столбца одинаковые, стоит на главной диагонали; элемент A[k,i] стоит в том же столбце i, но в строке с номером k; это значит, что в столбце i меняются местами элемент на главной диагонали и элемент в строке k

i

k

A[k,i]

i

A[i,i]

  1.  так как эти операторы находятся в цикле, где переменная i принимает последовательно все значения от 1 до n, обмен выполняется для всех столбцов матрицы; то есть, все элементы главной диагонали меняются с соответствующими элементами строки  k
  2.  перед циклом стоит оператор присваивания k := 1;, а после него переменная k не меняется; поэтому в программе элементы главной диагонали обмениваются с первой строкой
  3.  таким образом, правильный ответ – 3.

Возможные ловушки и проблемы:

  •  сложность этой задачи в том, что все действия нужно «прокручивать в уме» (или на бумаге), не используя компьютер для отладки
  •  главная проблема – не перепутать столбцы и строки; номер строки – это (по соглашению) первый индекс элемента матрицы, а номер столбца – второй

Совет:

  •  чтобы понять, что делает программа, часто бывает полезно сделать ручную прокрутку на матрице небольшого размера, например, 3 на 3 или 4 на 4.
  •  если матрица небольшая (скажем, 5 на 5) можно (а иногда и нужно) вообще сделать все вычисления вручную и посмотреть, что получится

Еще пример задания:

Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

for n:=1 to 100 do

 A[n] := (n-80)*(n-80);

for n:=1 to 100 do

 B[101-n] := A[n];

Какой элемент массива B будет наибольшим?

1) B[1] 2) B[21] 3) B[80] 4) B[100]

Решение:

  1.  здесь два цикла, в первом из них заполняется массив А, во втором – массив В
  2.  в элемент массива A[n] записывается квадрат числа n-80; все элементы массива А неотрицательны (как квадраты чисел)
  3.  посмотрим чему равны некоторые элементы массива А:

A[1] = (1–80)2 = (–79)2 = 792 A[2] = (2–80)2 = (–78)2 = 782

...

A[80] = (80–80)2 = (0)2 = 0 A[81] = (81–80)2 = (1)2 = 1

...

A[99] = (99–80)2 = 192  A[100] = (100–80)2 = 202

  1.  таким образом, при увеличении n от 1 до 80 значение A[n] уменьшается от 792 до нуля, а потом (для n > 80) возрастает до 202
  2.  отсюда следует, что максимальное значение в массиве A – это A[1] = 792
  3.  во втором цикле для всех номеров n от 1 до 100 выполняется оператор

 B[101-n] := A[n];

который просто переписывает элементы массива A в массив В, «развертывая» массив в обратном порядке (элемент A[1] будет записан в B[100], а A[100] – в B[1])

  1.  A[1], наибольший элемент массива А, будет записан в B[100], поэтому B[100] – наибольший элемент в массиве В
  2.  таким образом, правильный ответ – 4.

Еще пример задания:

Значения элементов двухмерного массива A[1..10,1..10] задаются с помощью следующего фрагмента программы:

for i:=1 to 10 do 

for k:=1 to 10 do

if i > k then

    A[i,k] := 1

else A[i,k] := 0;

Чему равна сумма элементов массива после выполнения этого фрагмента программы?

1) 45 2) 50 3) 90 4) 100

Решение:

  1.  в программе есть вложенный цикл, в котором переменная i обозначает строку, а k – столбец матрицы
  2.  элементы, для которых i=k – это главная диагональ матрицы, поэтому элементы, для которых i > k (только они будут равны 1), находятся под главной диагональю
  3.  в первой строке единичных элементов нет, во второй есть один такой элемент, в третьей – 2, в последней (10-ой) их 9, поэтому сумма элементов массива равна

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45

  1.  таким образом, правильный ответ – 1.
  2.  при большом размере массива (например, 100 на 100) суммирование может оказаться трудоемким, поэтому лучше вспомнить формулу для вычисления суммы элементов арифметической прогрессии (именно такая прогрессия у нас, с шагом 1):

,

где  - количество элементов, а и  – соответственно первый и последний элементы последовательности; в данном случае имеем

.

  1.  если приведенная выше формула прочно забыта, можно попытаться сгруппировать слагаемые в пары с равной суммой (как сделал, будучи школьником, великий математик К.Ф. Гаусс), например:

Еще пример задания:

Значения элементов двухмерного массива A[1..10,1..10] сначала равны 5. Затем выполняется следующий фрагмент программы:

for i:=1 to 5 do

 for j:=1 to 4 do begin

   A[i,j]:=A[i,j]+5; { 1 }

   A[j,i]:=A[j,i]+5; { 2 } 

 end;

Сколько элементов массива будут равны 10?

1) 8 2) 16 3) 24 4) 0

Решение (вариант 1, анализ алгоритма):

1

2

3

4

5

6

7

1

2

3

4

5

6

7

  1.  обратим внимание, что в двойном цикле переменная i изменяется от 1 до 5, а j – от 1 до 4 (на 1 шаг меньше)
  2.  внутри цикла в операторе, отмеченном цифрой 1 в комментарии, в записи A[i,j] переменная i – это строка, а j – столбец, поэтому по одному разу обрабатываются все элементы массива, выделенные зеленым цветом:

1

2

3

4

5

6

7

1

2

3

4

5

6

7

  1.  это значит, что если оставить только один первый оператор внутри цикла, все выделенные элементы увеличиваются на 5 и станут равны 10
  2.  теперь рассмотрим второй оператор внутри цикла: в записи A[j,i] переменная i – это столбец, а j – строка, поэтому по одному разу обрабатываются (увеличиваются на 5 ) все элементы массива, выделенные рамкой красного цвета на рисунке справа
  3.  теперь хорошо видно, что левый верхний угол массива (квадрат 4 на 4, синяя область) попадает в обе области, то есть, эти 16 элементов будут дважды увеличены на 5: они  станут равны 15 после выполнения программы
  4.  элементы, попавшие в зеленый и красный «хвостики» обрабатываются (увеличиваются на 5) по одному разу, поэтому они-то и будут равны 10
  5.  всего таких элементов – 8 штук
  6.  таким образом, правильный ответ – 1.

Решение (вариант 2, прокрутка небольшого массива):

  1.  понятно, что в программе захватывается только левый верхний угол массива, остальные элементы не меняются
  2.  сократим размер циклов так, чтобы можно было легко выполнить программу вручную; при этом нужно сохранить важное свойство: внутренний цикл должен содержать на 1 шаг меньше, чем внешний:

for i:=1 to 3 do

 for j:=1 to 2 do begin

   A[i,j]:=A[i,j]+5; { 1 }

   A[j,i]:=A[j,i]+5; { 2 } 

 end;

  1.  выполняя вручную этот вложенный цикл, получаем

1

2

3

4

5

1

15

15

10

5

5

2

15

15

10

5

5

3

10

10

5

5

5

4

5

5

5

5

5

5

5

5

5

5

5

  1.  видим, что в самом углу получился квадрат 2 на 2 (по количеству шагов внутреннего цикла), в котором все элементы равны 15; по сторонам этого квадрата стоят 4 элемента, равные 10, их количество равно удвоенной стороне квадрата
  2.  в исходном варианте внутренний цикл выполняется 4 раза, поэтому угловой квадрат будет иметь размер 4 на 4; тогда 8 элементов, граничащих с его сторонами, будут равны 10
  3.  таким образом, правильный ответ – 1.

Возможные проблемы:

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


Задачи для тренировки
3:

  1.  Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

for n:=1 to 100 do

   A[n] := n - 10;

for n:=1 to 100 do

   B[n] := A[n]*n;

Сколько элементов массива B будут иметь положительные значения?

1) 10 2) 50 3) 90 4) 100

  1.  Все элементы двумерного массива A размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы:

for n:=1 to 4 do

 for k:=n to 4 do begin

   A[n,k] := A[n,k] + 1;

   A[k,n] := A[k,n] + 1;

 end;

Сколько элементов массива в результате будут равны 1?

1) 0 2) 16 3) 12 4) 4

  1.  Значения двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы:

for n:=1 to 5 do

 for k:=1 to 5 do

   B[n,k] := n + k;

Чему будет равно значение B[2,4]?

1) 9 2) 8 3) 7 4) 6

  1.  Дан фрагмент:

for n:=l to 6 do

 for m:=l to 5 do begin

   C[n,m]:=C[n,m]+(2*n-m);

 end;

Чему будет равно значение С[4,3], если перед этими командами значение С[4,3]=10?

1) 5 2) 10 3) 15 4) 25 

  1.  Значения элементов двух массивов А и В размером 1 х 100 задаются с помощью следующего фрагмента программы:

for i:=1 tо 100 do

 A[i] := 50 – i;

for i:=1 tо 100 do 

 B[i] := A[i] + 49;

Сколько элементов массива В будут иметь отрицательные значения?

1) 1 2) 10 3) 50 4) 100 

  1.  Значения элементов двумерного массива А были равны 0. Затем значения некоторых элементов были изменены (см. представленный фрагмент программы):

n := 0;

for i:=1 tо 5 do

 for j:=1 tо 6-i do begin

   n := n + 1;

   A[i,j] := n;

 end;

Какой элемент массива будет иметь в результате максимальное значение?

1) A[1,1] 2) A[1,5] 3) A[5,1] 4) A[5,5] 

  1.  Значения элементов двумерного массива А размером 5x5 задаются с помощью вложенного цикла в представленном фрагменте программы:

for i:=1 tо 5 do

 for j:=1 tо 5 do begin

   A[i,j] := i*j;

 end;

Сколько элементов массива будут иметь значения больше 10?

1) 12 2) 8 3) 10 4) 4 

  1.  Значения элементов двумерного массива А размером 5x5 задаются с помощью вложенного цикла в представленном фрагменте программы:

for i:=1 tо 5 do

 for j:=1 tо 5 do begin

   A[i,j] := i + j;

 end;

Сколько элементов массива будут иметь значения больше 5?

1) 5 2) 20 3) 10 4) 15 

  1.  Дан фрагмент программы:

for n:=1 tо 5 do

 for m:=1 tо 5 do

   C[n,m] := (mn)*(mn);

Сколько элементов массива С будут равны 1?

1) 5 2) 2 3) 8 4) 14

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

 A[i]:= i + 1;

for i:=1 to 10 do

 A[i]:= A[i-1];

Как изменяются элементы этого массива?

1) все элементы, кроме последнего, сдвигаются на 1 элемент вправо

2) все элементы, кроме первого, сдвигаются на 1 элемент влево

3) все элементы окажутся равны 1

4) все элементы окажутся равны своим индексам

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

 A[i]:= i + 1;

for i:=10 downto 0 do

 A[i]:= A[10-i];

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 11 10 9 8 7 6 5 4 3 2 1

3) 11 10 9 8 7 6 7 8 9 10 11

4) 1 2 3 4 5 6 5 4 3 2 1

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

 A[i]:= i + 1;

for i:=0 to 10 do

 A[i]:= A[10-i];

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 11 10 9 8 7 6 5 4 3 2 1

3) 11 10 9 8 7 6 7 8 9 10 11

4) 10 9 8 7 6 5 6 7 8 9 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

 A[i]:= i - 1;

for i:=1 to 10 do

 A[i-1]:= A[i];

A[10] := 10;

Как изменяются элементы этого массива?

1) все элементы, кроме последнего, окажутся равны между собой

2) все элементы окажутся равны своим индексам

3) все элементы, кроме последнего, сдвигаются на один элемент вправо

4) все элементы, кроме последнего, уменьшаются на единицу

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

 A[i]:= i;

for i:=1 to 11 do

 A[i-1]:= A[11-i];

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 11 10 9 8 7 6 5 4 3 2 1

3) 10 9 8 7 6 5 6 7 8 9 10

4) 11 10 9 8 7 6 7 8 9 10 11

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 10 do begin

   A[10-i]:=A[i];

   A[i]:=A[10-i];

 end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9 10

3) 10 9 8 7 6 5 6 7 8 9 10

4) 0 1 2 3 4 5 4 3 2 1 0

  1.  Элементы двухмерного массива A размером NN первоначально были равны 1000. Затем значения некоторых из них меняют с помощью следующего фрагмента программы:

 k := 0;

 for i:=1 to N do

   for j:=N-i+1 to N do begin

     k:= k + 1;

     A[i,j]:= k;

   end;

Какой элемент массива в результате будет иметь минимальное значение?

1) A[1,1] 2) A[1,N] 3) A[N,1] 4) A[N,N]

  1.  Элементы двухмерного массива A размером 99 задаются с помощью следующего фрагмента программы:

 for n:=1 to 9 do

   for k:=1 to 9 do

     A[n,k]:=n+k+1;

Сколько элементов массива A будут принимать четные значения?

1) 36 2) 40 3) 41 4) 45

  1.  Значения элементов двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

 for n:=1 to 100 do 

   A[n] := n – 50;

 for n:=1 to 100 do

   B[101-n]:=A[n]*A[n];

Какой элемент массива B будет наименьшим?

1) B[1] 2) B[50] 3) B[51] 4) B[100]

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=10 downto 0 do begin

   k:=A[10-i];

   A[10-i]:=A[i];

   A[i]:=k;

 end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9 10

3) 10 9 8 7 6 5 6 7 8 9 10

4) 0 1 2 3 4 5 4 3 2 1 0

  1.  Элементы двухмерного массива A размером 44 первоначально были равны 0.  Затем они изменяются с помощью следующего фрагмента программы:

 for n:=1 to 4 do 

   for k:=n to 4 do 

     A[n,k]:=1;

Сколько элементов массива A будут равны 1?

1) 4 2) 8 3) 10 4) 16

  1.  Элементы двухмерного массива A размером 1010 первоначально были равны 1. Затем значения некоторых из них меняют с помощью следующего фрагмента программы:

 for n:=1 to 4 do

   for k:=1 to n+1 do begin

     A[n,k]:=A[n,k]-1;

     A[n,k+1]:=A[n,k]-1;

   end;

Сколько элементов массива в результате будут равны 0?

1) 0 2) 4 3) 8 4) 16

  1.  Дан фрагмент программы, обрабатывающий массив А из 10 элементов:

n := 10;

for i:=1 tо n do A[i] := i;

j := 1;

for i:=1 tо n-1 do

 if A[i] < A[i+1] then j := j + 1;

Чему будет равно значение переменной j после выполнения этого алгоритма?

1) 1 2) 2 3) 10 4) 11

  1.  Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью следующего фрагмента программы:

for i:=1 to 100 do

for k:=1 to 100 do

if i = k then

    A[i,k] := 1

else A[i,k] := -1;

Чему равна сумма элементов массива после выполнения этого фрагмента программы?

1) 0 2) 9800 3) 9900 4) 10000

  1.  Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью следующего фрагмента программы:

for i:=1 to 100 do

for k:=1 to 100 do

if i > k then

    A[i,k] := 1

else A[i,k] := -1;

Чему равна сумма элементов массива после выполнения этого фрагмента программы?

1) 0 2) 100 3) -100 4) -200

  1.  Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью следующего фрагмента программы:

for i:=1 to 100 do

for k:=1 to 100 do

if i > k then

    A[i,k] := i

else A[i,k] := -k;

Чему равна сумма элементов массива после выполнения этого фрагмента программы?

1) 5000 2) 0 3) -5000 4) -5050

  1.  Дан фрагмент программы, обрабатывающий массив А из 10 элементов:

j := 1;

for i:=1 tо 10 do

 if A[i] = A[j] then j := i;

s := j;

Чему будет равно значение переменной s после выполнения этого алгоритма?

1) 1

2) 10

3) индексу элемента, равного первому, и имеющему наибольший индекс

4) индексу элемента, равного последнему, и имеющему наименьший индекс

  1.  Значения элементов двухмерного массива A[1..10,1..10] сначала равны 4. Затем выполняется следующий фрагмент программы:

for i:=1 to 6 do

 for j:=1 to 5 do begin

   A[i,j]:=A[i,j]+6;

   A[j,i]:=A[j,i]+6;

 end;

Сколько элементов массива будут равны 10?

1) 30 2) 25 3) 10 4) 0

  1.  Значения элементов двухмерного массива A[1..10,1..10] сначала равны 4. Затем выполняется следующий фрагмент программы:

for i:=1 to 4 do

 for j:=1 to 5 do begin

   A[i,j]:=A[i,j]+4;

   A[j,i]:=A[j,i]+5;

 end;

Сколько элементов массива будут равны 9?

1) 20 2) 16 3) 5 4) 4

  1.  Значения элементов двухмерного массива A[1..10,1..10] сначала равны 0. Затем выполняется следующий фрагмент программы:

for i:=1 to 4 do

 for j:=2 to 5 do begin

   A[i,j]:=A[i,j]+4;

   A[j,i]:=A[j,i]+5;

 end;

Сколько элементов массива будут равны 9?

1) 20 2) 16 3) 9 4) 4

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 4 do begin

   k:=A[i];

   A[i]:=A[10-i];

   A[10-i]:=k;

 end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9 10

 3) 0 1 2 3 4 5 4 3 2 1 0

 4) 10 9 8 7 6 5 6 7 8 9 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 10 do begin

   k:=A[i];

   A[i]:=A[10-i];

   k:=A[10-i];

 end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9 10

 3) 0 1 2 3 4 5 4 3 2 1 0

 4) 10 9 8 7 6 5 6 7 8 9 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 4 do begin

   k:=A[10-i];

   A[10-i]:=A[i];

   k:=A[i];

 end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9 10

 3) 0 1 2 3 4 5 4 3 2 1 0

 4) 10 9 8 7 6 5 6 7 8 9 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленная переменная i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 9 do begin

   A[i]:=A[i+1];

 end;

Чему будут равны элементы этого массива?

1) 10 0 1 2 3 4 5 6 7 8 9

2) 1 2 3 4 5 6 7 8 9 10 10

 3) 0 0 1 2 3 4 5 6 7 8 9

 4) 1 2 3 4 5 6 7 8 9 10  0

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 k:=A[10]; 

 for i:=0 to 9 do

   A[i]:=A[i+1];

 A[0]:=k;

Чему будут равны элементы этого массива?

1) 10 0 1 2 3 4 5 6 7 8 9

2) 10 2 3 4 5 6 7 8 9 10 10

 3) 1 2 3 4 5 6 7 8 9 10 10

 4) 1 2 3 4 5 6 7 8 9 10  0

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 4 do begin

   k:=A[2*i];

   A[2*i]:=A[2*i+1];

   A[2*i+1]:=k;

 end;

Чему будут равны элементы этого массива?

1) 5 6 7 8 9 0 1 2 3 4  10

2) 10 9 8 7 6 5 4 3 2 1 0

 3) 0 1 2 3 4 5 4 3 2 1 0

 4) 1 0 3 2 5 4 7 6 9 8 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i;

 for i:=0 to 4 do begin

   k:=A[i];

   A[i]:=A[i+5];

   A[i+5]:=k;

 end;

Чему будут равны элементы этого массива?

1) 5 6 7 8 9 0 1 2 3 4  10

2) 10 9 8 7 6 5 4 3 2 1 0

 3) 0 1 2 3 4 5 4 3 2 1 0

 4) 1 0 3 2 5 4 7 6 9 8 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[10-i]:=i;

 k:=A[9];

 for i:=0 to 9 do

   A[10-i]:=A[9-i];

 A[1]:=k;

Чему будут равны элементы этого массива?

1) 9 8 7 6 5 4 3 2 1 0 10

2) 10 1 9 8 7 6 5 4 3 2 1

 3) 0 10 9 8 7 6 5 4 3 2 1

 4) 10 0 9 8 7 6 5 4 3 2 1

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленная переменная i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 10 do A[i]:=i+1;

 for i:=1 to 10 do

   A[i]:=A[i-1];

Чему будут равны элементы этого массива?

1) 1 1 2 3 4 5 6 7 8 9 10

2) 1 2 3 4 5 6 7 8 9 10 10

 3) 1 1 1 1 1 1 1 1 1 1 1

 4) 0 1 2 3 4 5 6 7 8 9 10

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 9 и целочисленные переменные k и i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

 for i:=0 to 9 do A[i]:=i+1;

 k:=A[9];

 for i:=9 downto 1 do

   A[i]:=A[i-1];

 A[0]:=k;

Чему будут равны элементы этого массива?

1) 10 3 4 5 6 7 8 9 10 10

2) 10 1 2 3 4 5 6 7 8 9

3) 10 1 1 1 1 1 1 1 1 1

4) 10 10 10 10 10 10 10 10 10 10

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=i-1;

 for i:=10 downto 1 do

   A[i-1]:=A[i];

Чему будут равны элементы этого массива?

1) 9 9 9 9 9 9 9 9 9 9 9

2) 0 1 2 3 4 5 6 7 8 9 9

3) 0 1 2 3 4 5 6 7 8 9 10

4) -1 -1 0 1 2 3 4 5 6 7 8

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=i;

 for i:=0 to 5 do begin

   A[10-i]:=A[9-i];

   A[i]:=A[i+1];

 end;

Чему будут равны элементы этого массива?

1) 0 1 2 3 4 5 6 7 8 9 10

2) 0 1 2 3 4 5 6 7 8 9 9

3) 1 2 3 4 5 5 5 6 7 8 9

4) 1 2 3 4 5 6 5 4 3 2 1

  1.  В программе обрабатывается двумерный целочисленный массив A [0..n,0..n]. Первый индекс элемента обозначает номер строки, а второй – номер столбца. Дан фрагмент программы:

 for i:=0 to n do begin

   c:=A[i,n-i];

   A[i,n-i]:=A[1,i];

   A[1,i]:=c;

 end;

Что меняет этот фрагмент программы?

1) два столбца в таблице

2) строку и столбец в таблице

3) элементы диагонали и строки в таблице

4) элементы диагонали и столбца в таблице

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=i;

 for i:=0 to 5 do begin

   A[5-i]:=A[5+i];

   A[2+i]:=A[10-i];

 end;

Чему будут равны элементы этого массива?

1) 10 9 8 7 8 7 6 7 8 9 10

2) 9 8 7 6 5 9 8 7 6 5 10

3) 10 9 8 7 6 10 9 8 7 6 10

4) 10 9 8 7 6 5 6 7 8 9 10

  1.  В программе описан двухмерный целочисленный массив A [1..6,1..6]. Ниже представлен фрагмент этой программы, в котором изменяются значения элементов массива.

 for n:=1 to 6 do

 for m:=1 to 6 do

   A[n,m]:=A[m,n]+2*n-m;

До выполнения данного фрагмента программы значение A[4,3] было равно 10, а значение A[3,4] было равно 15. Чему будет равно значение A[4,3] после выполнения этого фрагмента программы?

1) 10 2) 15 3) 17 4) 20

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=10-i;

 for i:=0 to 5 do begin

   A[10-i]:=A[5-i];

   A[5+i]:=A[i];

 end;

Чему будут равны элементы этого массива?

1) 9 8 7 6 5 10 9 8 7 6 10

2) 10 9 8 7 6 5 6 7 8 9 10

3) 10 9 8 7 6 10 9 8 7 6 10

4) 5 6 7 8 9 10 9 8 7 6 5

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до n. Известно, что в массиве есть несколько элементов с максимальным значением. Дан фрагмент программы:

j:=1;

for i:=1 to n do

 if A[i] > A[j] then j:= i;

s:=j;

Чему будет равно значение переменной s после выполнения этого фрагмента программы:

1) значению максимального элемента

2) количеству элементов в массиве A, имеющих максимальное значение

3) индексу первого элемента в массиве A, имеющего максимальное значение

4) индексу последнего элемента в массиве A, имеющего максимальное значение

  1.  Дан фрагмент программы, обрабатывающий двухмерный массив A размером nn.

for i:=1 to n-1 do

 for j:=i to n do

 if A[i,1] < A[j,1] then begin

   k:=A[i,1];

   A[i,1]:=A[j,1];

   A[j,1]:=k;

 end;

В этом фрагменте:

1) упорядочивается первая строка массива по убыванию

2) упорядочивается первый столбец массива по убыванию

3) заменяются элементы k-ого столбца таблицы

4) заменяются элементы k-ой строки таблицы

  1.  Значения двух массивов A и B с индексами от 1 до 100 задаются при помощи следующего фрагмента программы:

for i:=1 to n do

 A[i]:=i*i;

for i:=1 to n do

 B[i]:=A[i]-100;

Сколько положительных значений будет в  массиве B?

1) 0 2) 10 3) 90 4) 91

  1.  Значения двух массивов A и B с индексами от 1 до 100 задаются при помощи следующего фрагмента программы:

for i:=1 to n do

 A[i]:=(i-75)*(i-75);

for i:=1 to n do

 B[101-i]:=A[i];

Какой элемент массива B будет наибольшим?

1) B[1] 2) B[26] 3) B[75] 4) B[100]

  1.  Значения двухмерного массив A размером 99 задаются при помощи следующего фрагмента программы:

for n:=1 to 9 do

 for k:=1 to 9 do

   A[n,k]:=n+k+1;

Сколько четных значений будет в  массиве A?

1) 36 2) 40 3) 41 4) 45

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=2+i;

 for i:=0 to 4 do begin

   A[i]:=A[10-i]-1;

   A[10-i]:=A[i]+3;

 end;

Чему будут равны элементы этого массива?

1) 11 10 9 8 7 5 6 7 8 9

2) 11 10 9 8 7 7 5 6 7 8 9

3) 11 10 9 8 7 7 10 11 12 13 14

4) 11 10 9 8 7 10 11 12 13 14

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=2+i;

 for i:=0 to 4 do begin

   A[10-i]:=2*A[10-i];

   A[i]:=A[i+1]+4;

 end;

Чему будут равны элементы этого массива?

1) 7 8 9 10 11 7 16 18 20 22 24

2) 7 8 9 10 11 16 18 20 22 24

3) 2 3 4 5 6 7 16 18 20 22 24

4) 3 4 5 6 7 7 16 18 20 22 24

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=2*i;

 for i:=0 to 4 do begin

   A[10-i]:=A[i]-1;

   A[i]:=A[10-i]-1;

 end;

Чему будут равны элементы этого массива?

1) 0 2 4 6 8 10 12 14 16 18 20

2) 19 17 15 13 11 10 -1 1 3 5 7

3) -2 0 2 4 6 10 7 5 3 1 -1

4) -1 1 3 5 7 9 11 13 15 17 19

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 A[0]:=1;

 for i:=1 to 10 do

   A[i]:=2+A[i-1];

 for i:=0 to 5 do

   A[10-i]:=A[i]-1;

Чему будут равны элементы этого массива?

1) 1 3 5 7 9 10 8 6 4 2 0

2) 1 3 5 7 9 11 13 15 17 19 21

3) 1 3 5 7 9 11 9 7 5 3 1

4) 1 3 5 7 9 11 8 6 4 2 0

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=i;

 t:=A[0];

 for i:=1 to 10 do

   A[i-1]:=A[i];

 A[10]:=t;

Чему будут равны элементы этого массива?

1) 10 10 10 10 10 10 10 10 10 10

2) 1 2 3 4 5 6 7 8 9 10 0

3) 0 0 0 0 0 0 0 0 0 0

4) 1 2 3 4 5 6 7 8 9 10 1

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=i+3;

 for i:=10 downto 0 do begin

   k:=A[i];

   A[i]:=A[10-i];

   A[10-i]:=k;

 end;

Чему будут равны элементы этого массива?

1) 13 12 11 109 8 7 6 5 4 3

2) 3 4 5 6 7 8 9 10 11 12 13

3) 13 12 11 10 9 8 9 10 11 12 13

4) 3 4 5 6 7 8 7 6 5 4 3

  1.  Дан фрагмент программы, обрабатывающей двухмерный массив A[1..5,1..4]:

k:=4;

for m:=1 to 4 do begin

 k:=k+1;

 for n:=1 to 5 do begin

   k:=m-k;

   A[n,m]:=n*n+m*m-2*k;

 end;

end;

Чему будет равно значение A[3,1]?

1) 18 2) 19 3) 20 4) 21

  1.  В программе описан одномерный целочисленный массив A с индексами от 1 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=1 to 10 do

   A[i]:=2*i;

for i:=1 to 10 do begin

   k:=2*A[i]+3;

   A[10-i+1]:=k;

 end;

Чему будут равны элементы этого массива?

1) 7 11 15 19 23 27 31 35 39 43

2) 17 25 33 41 49 23 19 15 11 7

3) 5 9 13 17 21 25 29 33 37 41

4) 43 39 35 31 27 23 19 15 11 7

  1.  В программе описан одномерный целочисленный массив A с индексами от 1 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=1 to 10 do

   A[i]:=5*i;

for i:=1 to 10 do begin

   k:=A[i]-2;

   A[10-i+1]:=k;

 end;

Чему будут равны элементы этого массива?

1) 1 6 11 16 21 23 18 13 8 3

2) 3 8 13 18 23 28 33 38 43 48

3) 48 43 38 33 28 23 18 13 8 3

4) 1 6 11 16 21 26 31 36 41 46

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

 for i:=0 to 10 do

   A[i]:=3*i;

for i:=1 to 10 do

   A[i]:=A[i] mod 3;

Чему будут равны элементы этого массива?

1) Все элементы будут равны 3.

2) Все элементы будут равны 1.

3) Все элементы будут равны 0.

4) Все элементы будут равны своим индексам.

  1.  В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

for i:=0 to 10 do

 A[i]:=i-1;

for i:=1 to 10 do

 A[i-1]:=A[i];

A[10]:=10;

Как изменятся элементы этого массива после выполнения фрагмента программы?

1) все элементы, кроме последнего, окажутся равны между собой

2) все элементы окажутся равны своим индексам

3) все элементы, кроме последнего, будут сдвинуты на один элемент вправо

4) все элементы, кроме последнего, уменьшатся на единицу

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:=0;

n:=10;

for i:=1 to n do begin

 s:=s+A[i]-A[i-1];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, т.е. А[0]=0, А[1]=2 и т.д. Чему будет равно значение переменной s после выполнения данной программы?

1) 10 2) 20 3) 22 4) 110

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

 if і = n-i then s:=s+A[i]+A[i+1];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

1) 0 2) 100 3) 110 4) 550

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

 if A[n-i]-A[і] > A[і] then

    s:=s+A[і];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

1) 60 2) 100 3) 150 4) 550

  1.  В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

 if A[n-i]-A[і] < A[і] then

   s:=s+A[і];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, т. е. А[0]=0, А[1]=2 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

1) 44 2) 60 3) 78 4) 98

1 Здесь рассматривается только язык Паскаль, который является наиболее распространенным в школах России.

2 В этом примере используется стандартная нумерация для Паскаля: индексы начинаются с единицы.

3 Источники заданий:


Демонстрационные варианты ЕГЭ 2004-2013 гг.


Тренировочные работы МИОО.


Гусева И.Ю. ЕГЭ. Информатика: раздаточный материал тренировочных тестов. — СПб: Тригон, 2009.


Якушкин П.А., Крылов С.С. ЕГЭ-2010. Информатика: сборник экзаменационных заданий. – М.: Эксмо, 2009.


Якушкин П.А., Лещинер В.Р., Кириенко Д.П.  ЕГЭ 2010. Информатика. Типовые тестовые задания. — М.: Экзамен, 2010.


Крылов С.С., Лещинер В.Р., Якушкин П.А. ЕГЭ-2010. Информатика. Универсальные материалы для подготовки учащихся / под ред. В.Р. Лещинера / ФИПИ. — М.: Интеллект-центр, 2010.


Крылов С.С., Ушаков Д.М.  ЕГЭ 2010. Информатика. Тематическая рабочая тетрадь.  — М.: Экзамен, 2010.


Якушкин П.А., Ушаков Д.М.  Самое полное издание типовых вариантов реальных заданий ЕГЭ 2010. Информатика.  — М.: Астрель, 2009.


Абрамян М.Э., Михалкович С.С., Русанова Я.М., Чердынцева М.И.  Информатика. ЕГЭ шаг за шагом. — М.: НИИ школьных технологий, 2010.


Чуркина Т.Е. ЕГЭ 2011. Информатика. Тематические тренировочные задания. — М.: Эксмо, 2010.


 

А также другие работы, которые могут Вас заинтересовать

40854. Множественное число существительных и прилагательных 146.5 KB
  Образуется от формы единственного числа при помощи непроизносимого окончания s: ville s = villes [vil] города grnd s = grnds [grã] большие Существительные и прилагательные которые в единственном числе оканчиваются на s x z не изменяются во множественном числе: succès m успех успехи heureux счастливый счастливые nez m нос носы Во французском языке прилагательные согласуются в роде и числе с существительными: une nouvelle intéressnte интересная новость des nouvelles intéressntes интересные новости 4....
40855. Слитные артикли с предлогами à и de во французском языке 101.5 KB
  Следите за слитным произношением: vous êtes nous vons nous llons vous vez vous llez ils ont. Quelles lngues étrngères prlezvous B. Prlezvous nglis B. Vous llez à l’école.
40857. Употребление неопределенного и определенного артикля 157.5 KB
  Je prends mon petit déjeuner à six heures trente. J’i une journée de trvil très chrgée. НЕОПРЕДЕЛЕННЫЙ АРТИКЛЬ un une des употребляется: а после оборота c'est ce sont: C'est un professeur. Elle est une bonne secrétire.
40858. Недавнее прошедшее время. Passé immédiat 124.5 KB
  ls viennent de commencer ce travail. 2. Je viens de prendre une douche. 3. Nous venons de nous lever. 4. Tu viens de sonner à la porte. 5. Elle vient d’ avoir ce poste. 6. Vous venons de nous préparer à cet examen.
40859. Безличные обороты (il + глагол) во французском языке 103 KB
  C’est clme et gréble. lors ton nouveu logement n’ ps de défuts Notre cuisine n’est ps très clire. En revnche elle est ssez grnde. Trduisez les questions en frnзis et rйpondezy задайте следующие вопросы пофранцузски и ответьте на них: 1.
40860. Текст и упражнения на французском языке 88.5 KB
  Traduisez les questions en franзais et rйpondez-y (задайте следующие вопросы по-французски и ответьте на них): У вас есть дача? Какая она? Вы часто туда ездите? Вы любите ездить за город осенью? Когда вы предпочитаете ездить за город? Почему?
40861. Passé Composé глаголов III группы 89 KB
  Passé composé глаголов III группы образуется так же, как I и II групп: avoir + participe passé. Отличие лишь в том, что participe passé глаголов III группы различны, и их следует заучивать.vezvous bien ppris cette leçon vezvous déjà vu cette comédie musnte Elle n’ ps voulu fixer le rendezvous à dix heures. Je voir un rendezvous hier.
40862. Вопросительное предложение. Сложная инверсия 97 KB
  Mes félicittions Qui est son fincé Il s’ppelle Georges il est cndien. Mis t soeur ne prle ps nglis Comment fontils pour se comprendre Ils n’ont ps de problèmes : Georges est de Montrél c’est une ville frncophone. Quelle est s profession Il est journliste. Il est rrivé à Nice en voyge d’ffires.