Решение задач типа А17

advertisement
Решение задач ЕГЭ типа А17.
1. В программе описан одномерный целочисленный массив А с индексами от 1 до 10.
Ниже представлен фрагмент программы, записанный на разных языках
программирования, в котором значения элементов массива сначала задаются, а затем
меняются.
Бейсик
Паскаль
FOR i=1 TO 10
for i:=1 to 10 do
A(i)=5+i
A[i]:=5+i;
NEXT i
for i:=1 to 10 do
FOR i=1 TO 10
if A[i]+i>12 then
IF (A(i)+i >12) THEN
A[i]:=A[i]+i;
A(i)=A(i)+i
end;
ENDIF
NEXT i
Си
Алгоритмический язык
for (i=1; i<=10; i++)
нц для i от 1 до 10
A[i]=5+i;
A[i]:=5+i
for (i=1; i<=10; i++)
кц
{ if (A[i]+i>12)
нц для i от 1 до 10
A[i]=A[i]+i; }
если A[i]+i>12
то A[i]:=A[i]+i
кц
Сколько элементов массива будут нечетными?
1) 4 2) 6 3) 8 4) 10
Решение:
1) A[i]:=5+i
5+1 = 6
5+2 = 7
5+3 = 8
…
5+10 = 15
Итак, элементы массива = 6,7,8,9,10,11,12,13,14,15
2) for i:=1 to 10 do if A[i]+i>12 then A[i]:=A[i]+i;
A[i]+i =
6+1 = 7
>12 Нет
A[i]:=A[i]+i
7+2 = 9
8+3 = 11
9+4 = 13
Да
13
10+5 = 15
15
11+6 = 17
17
12+7 = 19
19
13+8 = 21
21
14+9 = 23
23
15+10 = 25
25
Итого 8 элементов массива нечетные.
2. Значения двумерного массива размера 7х7 задаются с помощью вложенного оператора
цикла в представленном фрагменте программы
Бейсик
Паскаль
Алгоритмический язык
FOR n=1 TO 7
for n:=1 to 7 do
нц для n от 1 до 7
FOR k=1 TO 7
for k:=1 to 7 do
нц для k от 1 до 7
B(n, k)=k-n
B[n, k]:=k-n;
B[n, k]:=k-n
NEXT k
кц
NEXT n
кц
Сколько элементов массива будут иметь положительные значения?
1) 49 2) 28 3) 21 4) 7
Решение:
n= 1
2
3
4
5
k=
1,2,3,4,5,6,7
1-1 = 0
2-1 = 1
3-1 = 2
4-1 = 3
5-1 = 4
1-2 = -1
2-2 = 0
3-2 = 1
4-2 = 2
5-2 = 3
…
2-3 = -1
3-3 = 0
4-3 = 1
5-3 = 2
…
…
4-4 = 0
5-4 = 1
4-5 = -1
5-5 = 0
…
5-6 = -1
…
Итого 21 элемент массива имеет положительное значение.
6
7
6-1 = 5
6-2 = 4
6-3 = 3
6-4 = 2
6-5 = 1
6-6 = 0
6-7 = -1
7-1 = 6
7-2 = 5
7-3 = 4
7-4 = 3
7-5 = 2
7-6 = 1
7-7 = 0
Решите сами:
1. В программе описан одномерный целочисленный массив А с индексами от 1 до 10.
Ниже представлен фрагмент программы, записанный на разных языках
программирования, в котором значения элементов массива сначала задаются, а затем
меняются.
Бейсик
Паскаль
FOR i=1 TO 10
for i:=1 to 10 do
A(i)=6+i
A[i]:=6+i;
NEXT i
for i:=1 to 10 do
FOR i=1 TO 10
if A[i]+i>11 then
IF (A(i)+i >11) THEN
A[i]:=A[i]+i;
A(i)=A(i)+i
end;
ENDIF
NEXT i
Си
Алгоритмический язык
for (i=1; i<=10; i++)
нц для i от 1 до 10
A[i]=6+i;
A[i]:=6+i
for (i=1; i<=10; i++)
кц
{ if (A[i]+i>11)
нц для i от 1 до 10
A[i]=A[i]+i; }
если A[i]+i>11
то A[i]:=A[i]+i
кц
Сколько элементов массива будут четными?
1) 10 2) 9 3) 8 4) 7
2. В программе описан одномерный целочисленный массив А с индексами от 0 до 10.
Ниже представлен фрагмент этой программы, записанный на разных языках
программирования, в котором значения элементов массива сначала задаются, а затем
меняются.
Бейсик
Паскаль
FOR i=0 TO 10
for i:=0 to 10 do
A(i)=i-1
A[i]:=i-1;
NEXT i
for i:=10 downto 1 do
FOR i=10 TO 1 STEP -1
A[i-1]:=A[i];
A(i-1)=A(i)
NEXT i
Си
for (i=0; i<=10; i++)
A[i]=i-1;
for (i=10; i>=1; i--)
A[i-1]=A[i]
Алгоритмический язык
нц для i от 0 до 10
A[i]:=i-1
кц
нц для i от 10 до 1 шаг -1
A[i-1]:=A[i]
кц
Чему окажутся равны элементы этого массива?
1) 99999999999
2) 01234567899
3) 012345678910
4) -1-1012345678
3. В программе описан одномерный целочисленный массив А с индексами от 0 до 10.
Ниже представлен фрагмент программы, записанный на разных языках
программирования, в котором значения элементов массива сначала задаются, а затем
меняются.
Бейсик
Паскаль
FOR i=0 TO 10
for i:=0 to 10 do
A(i)=i
A[i]:=i;
NEXT i
for i:=0 to 10 do
FOR i=0 TO 10
begin
A(10-i)=A(i)
A[10-i]:=A[i];
A(i)=A(10-i)
A[i]:=A[10-i];
NEXT i
end;
Си
Алгоритмический язык
for (i=0; i<=10; i++)
нц для i от 0 до 10
A[i]=i;
A[i]:=i
for (i=0; i<=10; i++)
кц
{
нц для i от 0 до 10
A[10-i]=A[i];
A[10-i]:=A[i]
A[i]=A[10-i];
A[i]:=A[10-i]
}
кц
Чему будут равны элементы этого массива после выполнения фрагмента программы?
1) 109876543210
2) 012345678910
3) 1098765678910 4) 01234543210
4. Все элементы двумерного массива А размером 10х10 элементов первоначально были
равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в
представленном фрагменте программы.
Бейсик
Паскаль
Алгоритмический язык
FOR n=1 TO 4
for n:=1 to 4 do
нц для n от 1 до 4
FOR k=n TO 4
for k:=n to 4 do
нц для k от n до 4
A(n, k)=A(n, k)+1
begin
A[n, k]:=A[n, k]+1
A(k, n)=A(k, n)+1
A[n, k]:=A[n, k]+1;
A[k, n]:=A[k, n]+1
NEXT k
A[k, n]:=a[k, n]+1;
кц
NEXT n
end
кц
Сколько элементов массива в результате будут равны 1?
1) 0 2) 16 3) 12 4) 4
5. Дан фрагмент программы, обрабатывающей двумерный массив А размером nхn.
Бейсик
Паскаль
Алгоритмический язык
k=1
k:=1;
k:=1
FOR i=1 TO n
for i:=1 to n do
нц для i от 1 до n
c=A(i,i)
begin
c:=A[i,i]
A(i,i)= A(k,i)
A(k,i)=c
NEXT i
c:=A[i,i];
A[i,i]:=A[k,i]
A[i,i]:=A[k,i];
A[k,i]:=c
A[k,i]:=c;
кц
end
Представим массив в виде квадратной таблицы, в которой для элемента массива A[i,j]
величина i является номером строки, а величина j – номером столбца, в котором
расположен элемент. Тогда данный алгоритм меняет местами
1) два столбца в таблице
2) две строки в таблице
3) элементы диагонали и k-ой строки таблицы
4) элементы диагонали и k-го столбца таблицы
6. Значения двух массивов A[1..100] и В[1..100] задаются с помощью следующего
фрагмента программы:
Бейсик
Паскаль
Алгоритмический язык
FOR n=1 TO 100
for n:=1 to 100 do
нц для n от 1 до 100
A(n)=(n-80)*(n-80)
A[n]:=(n-80)*(n-80);
A[n]:=(n-80)*(n-80)
NEXT n
for n:=1 to 100 do
кц
FOR n=1 TO 100
B[101-n]:=A[n];
нц для n от 1 до 100
B(101-n)=A(n)
B[101-n]:=A[n]
NEXT n
кц
Какой элемент массива В будет наибольшим?
1) B[1]
2) B[21]
3) B[80]
4) B[100]
7. Значения двух массивов A[1..100] и В[1..100] задаются с помощью следующего
фрагмента программы:
Бейсик
Паскаль
Алгоритмический язык
FOR n=1 TO 100
for n:=1 to 100 do
нц для n от 1 до 100
A(n)=n-10
A[n]:=n-10;
A[n]:=n-10
NEXT n
for n:=1 to 100 do
кц
FOR n=1 TO 100
B[n]:=A[n]*n;
нц для n от 1 до 100
B(n)=A(n)*n
B[n]:=A[n]*n
NEXT n
кц
Сколько элементов массива В будут иметь положительные значения?
1) 10
2) 50
3) 90
4) 100
Download