Вопрос:

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

Ответ:

Решение:

Рассмотрим выполнение фрагмента программы для языка C++:

for (i = 0; i < 6; i++) {
if (i % 2 == 0) {
a[i] = i + 1;
} else {
a[i] = i - 1;
}
}

Начальные значения массива `a` не указаны, но по условию задачи предполагается, что массив `a` будет заполняться согласно логике программы. Индекс `i` будет изменяться от 0 до 5.

  1. При `i = 0`: `i % 2 == 0` (истина), `a[0] = 0 + 1 = 1`.
  2. При `i = 1`: `i % 2 == 0` (ложь), `a[1] = 1 - 1 = 0`.
  3. При `i = 2`: `i % 2 == 0` (истина), `a[2] = 2 + 1 = 3`.
  4. При `i = 3`: `i % 2 == 0` (ложь), `a[3] = 3 - 1 = 2`.
  5. При `i = 4`: `i % 2 == 0` (истина), `a[4] = 4 + 1 = 5`.
  6. При `i = 5`: `i % 2 == 0` (ложь), `a[5] = 5 - 1 = 4`.

Таким образом, элементы массива `a` будут равны: `a = [1, 0, 3, 2, 5, 4]`.

Теперь рассмотрим выполнение фрагмента программы для языка Паскаль:

for i := 0 to 5 do begin
if i mod 2 = 0 then
a[i] := i + 1
else
a[i] := i - 1;
end;

Логика выполнения идентична:

  1. При `i = 0`: `i mod 2 = 0` (истина), `a[0] := 0 + 1 = 1`.
  2. При `i = 1`: `i mod 2 = 0` (ложь), `a[1] := 1 - 1 = 0`.
  3. При `i = 2`: `i mod 2 = 0` (истина), `a[2] := 2 + 1 = 3`.
  4. При `i = 3`: `i mod 2 = 0` (ложь), `a[3] := 3 - 1 = 2`.
  5. При `i = 4`: `i mod 2 = 0` (истина), `a[4] := 4 + 1 = 5`.
  6. При `i = 5`: `i mod 2 = 0` (ложь), `a[5] := 5 - 1 = 4`.

Результат выполнения для Паскаля также будет `a = [1, 0, 3, 2, 5, 4]`.

Сравнивая полученный результат с вариантами ответов:

  • A. 0 1 3 2 4 5
  • Б. 1 0 3 2 5 4
  • B. 1 0 3 2 5 4
  • Г. 2 1 4 3 6 5

Варианты Б и В совпадают с полученным результатом.

Ответ: Б. 1 0 3 2 5 4 или В. 1 0 3 2 5 4.