В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:
| Бейсик | Python |
|---|---|
FOR i = 0 TO 10 A(i) = i NEXT i FOR i = 0 TO 4 k = A(10-i) A(10-i) = A(i) k = A(i) NEXT i
| for i in range(0, 11): A[i] = i for i in range(0, 5): k = A[10-i] A[10-i] = A[i] k = A[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;
| нц для i от 0 до 10 A[i] : = i кц нц для i от 0 до 4 k : = A[10-i]; A[10-i] : = A[i]; k : = A[i]; кц
|
| Си++ | |
for (i = 0; i <= 10; i++) { A[i] = i; } for (i = 0; i <= 4; i++) { k = A[10-i]; A[10-i] = A[i]; k = A[i]; } | |
Чему будут равны элементы этого массива?
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
Первый цикл, заполняем массив:
i=0: a[0]=0,
i=1: a[1]=1,
i=2: a[2]=2,
...
i=10: a[10]=10.
Второй цикл, не меняет местами значения первых пяти элементов с последующими, потому что переменной k присваивается поочерёдно два разных значения, что никак не зависит от операции
A[10-i]:=A[i] и нигде не учитывается.
i=0: a[10]=a[0]=0,
i=1: a[9]=a[1] = 1,
...
i=4: a[6]=a[4] = 4.
Поэтому в результате выполнени программы элементы массива будут равны: 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0.
Правильный ответ указан под номером 3.

