Демоверсия ЕГЭ 2010 - задание A6
Уровень сложности задания: повышенный
Максимальный балл за задание: 1.
Примерное время выполнения: 4 мин.
Работа с массивами (заполнение, считывание, поиск, сортировка, массовые операции и др.).
Следует обратить внимание учеников на то, как организованы внутренний и внешний циклы, а также учитывать, что априори (если другого не дано) все ячейки массива имеют нулевое значени. часто ученики путают порядок адресации ячейки, то есть что стоит сначала - номер строки или номер столбца, а также присчитывают нули или в в отрицательные числа, или в положительные.
Вариант 1
Дан фрагмент программы, обрабатывающей двумерный массив A размера n × n.
Бейсик |
Алгоритмический |
k = 1 FOR i = 1 TO n c = A(i, k) A(i, k) = A(k, i) A(k, i) = c NEXT i |
k := 1 нц для i от 1 до n c := A[i, k] A[i, k] := A[k, i] A[k, i] := c кц |
Паскаль |
Си |
k := 1; for i:= 1 to n do begin c := A[i, k]; A[i, k] := A[k, i]; A[k, i] := c end; |
k:=1; for (i=0;i<n;i++) { c = A[i] [k]; A[i] [k] = A[k] [i]; A[k] [i] = c; } |
Представим массив в виде квадратной таблицы, в которой для элемента массива A[i,j] величина i является номером строки, а величина j – номером столбца, в котором расположен элемент. Тогда данный алгоритм меняет местами
А) элементы двух диагоналей
Б) элементы диагонали и k-й строки
В) элементы диагонали и k-го столбца
Г) элементы k-й строки и k-го столбца
Вариант 2
Значения двух массивов А и В с индексами от 1 до 100 задаются при помощи следующего фрагмента программы:
Бейсик |
Алгоритмический |
FOR i = 1 TO 100 A(i)=i*i NEXT i FOR i=1 TO 100 B(i)=A(i)-100 NEXT i |
нц для i от 1 до 100 A[i]:=i*i кц нц для i от 1 до 100 B[i]:=A[i]-100 кц |
Паскаль |
Си |
for i:= 1 to 100 do A[i]:=i*i; for i:= 1 to 100 do B[i] := A[i]-100; |
for (i=1;i<=100;i++) A[i]=i*i; for (i=1;i<=100;i++) B[i]= A[i]-100; /*В программе на языке Си следует считать, что массивы А и В индексируются начиная с 1 и состоят из элементов А[1],..., A[100], B[1],...,B[100]*/ |
Какое количество элементов массива В[1...100] будет принимать положительные значения после выполнения данной программы?
А) 0
Б) 10
В) 90
Г) 91
Вариант 3
Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:
Бейсик |
Паскаль |
Алгоритмический |
FOR n=1 TO 100 A(n)=(n-75)*(n-75) NEXT n FOR n=1 TO 100 B(101-n)=A(n) NEXT n |
for n:=1 to 100 do A[n]:= (n-75)*(n-75); for n:=1 to 100 do B[101-n]:=A[n]; |
нц для n от 1 до 100 A[n]=(n-75)*(n-75) кц нц для n от 1 до 100 B[101-n]=A[n] кц |
Какой элемент массива В будет наибольшим?
А) B[1]
Б) B[26]
В) B[75]
Г) B[100]
Вариант 4
Элементы двумерного массива A размера N × N первоначально были равны 1000. Затем значения некоторых из них меняются с помощью вложенного оператора цикла в представленном фрагменте программы:
Бейсик |
Паскаль |
Алгоритмический |
k:=0 FOR i=1 TO N FOR j=N-i+1 TO N k=k+1 A(i, j)=k NEXT j NEXT i |
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 |
k:=0 нц для i от 1 до N нц для j от N-i+1 до N k:=k+1 A[i, j]:=k кц кц |
Какой элемент массива в результате будет иметь минимальное значение?
А) А(1, 1)
Б) А(1, N)
В) А(N, 1)
Г) А(N, N)
Вариант 5
Значения двумерного массива А размера 9 × 9 задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
Бейсик |
Паскаль |
Алгоритмический |
FOR n=1 TO 9 FOR k=1 TO 9 A(n, k)=n+k+1 NEXT k NEXT n |
for n:=1 to 9 do for k:=1 to 9 do A[n, k]:=n+k+1 |
нц для n от 1 до 9 нц для k от 1 до 9 A[n, k]:=n+k+1 кц кц |
Сколько элементов массива А будут принимать четное значение?
А) 36
Б) 40
В) 41
Г) 45
Вариант 6
Значения двух массивов A[1..100] и В[1..100] задаются с помощью следующего фрагмента программы:
Бейсик |
Паскаль |
Алгоритмический |
FOR n=1 TO 100 A(n)=n-50 NEXT n FOR n=1 TO 100 В(101-n)=A(n)*A(n) NEXT n |
for n:=1 to 100 do A[n]:=n-50 for n:=1 to 100 do B[101-n]:=A[n]*A[n] |
нц для n от 1 до 100 A[n]=n-50 кц нц для n от 1 до 100 B[101-n]=A[n]*A[n] кц |
Какой элемент массива В будет наименьшим?
А) B[1]
Б) B[50]
В) B[51]
Г) B[100]
Вариант 7
Значения двух массивов A[1..100] и В[1..100] задаются с помощью следующего фрагмента программы:
Бейсик |
Паскаль |
Алгоритмический |
FOR n=1 TO 100 A(n)=(n-80)*(n-80) NEXT n FOR n=1 TO 100 В(101-n)=A(n) NEXT n |
for n:=1 to 100 do A[n]:=(n-80)*(n-80); for n:=1 to 100 do B[101-n]:=A[n]; |
нц для n от 1 до 100 A[n]=(n-80)*(n-80) кц нц для n от 1 до 100 B[101-n]=A[n] кц |
Какой элемент массива В будет наибольшим?
А) B[1]
Б) B[21]
В) B[80]
Г) B[100]
Вариант 8
Дан фрагмент программы, обрабатывающей массив А из n элементов:
Бейсик |
Паскаль |
Алгоритмический |
j = 1 FOR i = 1 TO n IF A(i) > A(j) THEN j = i NEXT i s = A(j) |
j:=1; for i:=1 to n do begin if A[i]>A[j] then j:=i end; s:= A[j] |
j:= 1 нц для i от 1 до n если A[i]>A[j] то j:=i все кц s:= A[j] |
Чему будет равно значение переменной s после выполнения данного алгоритма, при любых значениях элементов массива А?
А) Максимальному элементу в массиве А
Б) Индексу максимального элемента в массиве А (первому из них, если максимальных элементов несколько)
В) Индексу максимального элемента в массиве А (последниму из них, если максимальных элементов несколько)
Г) Количеству элементов, равных максимальному в массиве А
Вариант 9
Дан фрагмент программы, обрабатывающей массив A из n элементов (известно, что в массиве имеются положительные элементы):
Бейсик |
Паскаль |
s = 0 k = 0 FOR i = 1 TO n IF A(i)>0 THEN s = s+A(i) : k=k+1 ENDIF NEXT i s = s/k |
s:=0; k:=0; for i:=1 to n do begin if A[i]>0 then begin s:=s+A[i]; k:=k+1 end end; s:=s/k; |
Си |
Алгоритмический |
s = 0; k = 0; for (i = 0; i<n ; i++) if (A[i]>0) { s=s+A[i]; k++; } s = s/k; |
s:=0 k:=0 нц для i от 1 до n если A[i]>0 то s:=s+A[i] k:=k+1 все кц s:=s/k |
Чему будет равно значение переменной s после выполнения данного алгоритма?
А) Среднему арифметическому всех элементов массива А
Б) Среднему арифметическому всех положительных элементов массива А
В) Количеству положительных элементов в массиве А
Г) Значению последнего положительного элемента в массиве А
Вариант 10
В программе описан одномерный целочисленный массив А с индексами от 0 до 10 и целочисленные переменные k, i. Ниже представлен фрагмент одной и той же программы, записанный на разных языках програмирования, в котором значения элементов сначало задаются, а затем меняются.
Бейсик |
Паскаль |
FOR i=0 TO 10 A(i)=i NEXT i FOR i=10 TO 0 STEP -1 k=A(10-i) A(10-i)=A(i) A(i)=k NEXT 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; |
Си |
Алгоритмический |
for (i=0;i<10;i++) A[i]=i; for (i=10;i>=0;i--) { k=A[10-i]; A[10-i]=A[i] A[i]=k; } |
нц для i от 0 до 10 A[i]:=i кц нц для i от 10 до 0 шаг -1 k:=A[10-i] A[10-i]:=A[i] A[i]:=k кц |
Чему будут равны элементы этого массива?
А) 10 9 8 7 6 5 4 3 2 1 0
Б) 0 1 2 3 4 5 6 7 8 9 10
В) 0 1 2 3 4 5 4 3 2 1 0
Г) 10 9 8 7 6 5 6 7 8 9 10
Ваши ответы: