2011-gre-cs-practice-book.pdf/Q06 — различия между версиями
Материал из DISCOPAL
Строка 36: | Строка 36: | ||
k = 0 | k = 0 | ||
− | * Шаг 1: k = 0 | + | * Шаг 1: k = 0 \rightarrow k % 3 = 0 \rightarrow 0 != 1 \rightarrow result = 0 + 1 = 1 |
− | * Шаг 2: k = 1 | + | * Шаг 2: k = 1 ⇒ k % 3 = 1 ⇒ 1 == 1 ⇒ result = 1 + 1 = 2 |
* Шаг 3: k = 2 -> k % 3 = 2 -> 2 != 1 -> result = 2 + 1 = 3 | * Шаг 3: k = 2 -> k % 3 = 2 -> 2 != 1 -> result = 2 + 1 = 3 |
Версия 11:25, 18 декабря 2024
Вопрос: Q06-08c765
Какое значение будет возвращено в результате вызова функции f () ?
int f () { int k, result; result = 0; for ( k = 0; k < 5; k++ ) { if ( ( k % 3 ) == 1 ) result = result + k; else result = result + 1; } return result; }
Ответы
- 5
- 6
- 7
- Правильный ответ: 8
- 9
Объяснение
Исходники — вопрос 6 на 17 странице книги «2011-gre-cs-practice-book.pdf»
Результат выполнения функции f():
Начальное состояние: result = 0 k = 0
- Шаг 1: k = 0 \rightarrow k % 3 = 0 \rightarrow 0 != 1 \rightarrow result = 0 + 1 = 1
- Шаг 2: k = 1 ⇒ k % 3 = 1 ⇒ 1 == 1 ⇒ result = 1 + 1 = 2
- Шаг 3: k = 2 -> k % 3 = 2 -> 2 != 1 -> result = 2 + 1 = 3
- Шаг 4: k = 3 -> k % 3 = 0 -> 0 != 1 -> result = 3 + 1 = 4
- Шаг 5: k = 4 -> k % 3 = 1 -> 1 == 1 -> result = 4 + 4 = 8
Функция завершается, возвращая значение result = 8
Самопроверка: - цикл выполнился 5 раз (k от 0 до 4) - условие k % 3 == 1 выполнилось дважды: при k = 1 и k = 4 - в остальных случаях добавлялась единица
Задача зарезервирована: Markvernikov 11:13, 18 декабря 2024 (UTC)