2011-gre-cs-practice-book.pdf/Q06 — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) (Новая страница: « == Вопрос: Q06-08c765 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…») |
|||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | |||
== Вопрос: Q06-08c765 == | == Вопрос: Q06-08c765 == | ||
− | + | Какое значение будет возвращено в результате вызова функции ''f ()'' ? | |
− | + | ||
− | + | ||
− | + | ||
− | + | <code-c> | |
− | + | 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; | ||
+ | } | ||
+ | </code-c> | ||
=== Ответы === | === Ответы === | ||
− | |||
− | |||
− | * | + | * 5 |
− | * | + | * 6 |
− | * | + | * 7 |
− | * | + | * Правильный ответ: 8 |
− | * | + | * 9 |
− | + | === Объяснение === | |
− | + | {{cstest-source|2011-gre-cs-practice-book.pdf|17|6}} | |
− | + | ||
+ | Результат выполнения функции f(): | ||
− | === | + | Начальное состояние: |
− | + | result = 0 | |
− | + | k = 0 | |
+ | |||
+ | * Шаг 1: k = 0 ⇒ k % 3 = 0 ⇒ 0 != 1 ⇒ 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 | ||
+ | * в остальных случаях добавлялась единица | ||
− | {{ | + | {{reserve-task|[[Участник:Markvernikov|Markvernikov]] 11:13, 18 декабря 2024 (UTC)}} |
+ | {{checkme|[[Участник:Markvernikov|Markvernikov]] 11:26, 18 декабря 2024 (UTC)}} |
Версия 11:26, 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 ⇒ k % 3 = 0 ⇒ 0 != 1 ⇒ 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)
Решено: Markvernikov 11:26, 18 декабря 2024 (UTC)