2011-gre-cs-practice-book.pdf/Q27 — различия между версиями
Материал из DISCOPAL
Urmat A (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
(не показано 11 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | == Вопрос: Q27-08c765 == | |
− | + | Рассмотрим два фрагмента программы на языке Java: | |
− | + | ||
− | + | ||
− | + | ||
− | + | Фрагмент 1: | |
− | + | <source lang=java> | |
+ | public void P1 (int x, int y, int z) | ||
+ | { | ||
+ | if ((x != 0) && ((y / x) == z)) | ||
+ | z = z + 1; | ||
+ | System.out.println("x = " + x + " y = " + y + " z = " + z); | ||
+ | } | ||
+ | </source> | ||
− | + | Фрагмент 2: | |
+ | <source lang=java> | ||
+ | public void P2 (int x, int y, int z) | ||
+ | { | ||
+ | if (((y / x) == z) && (x != 0)) | ||
+ | z = z + 1; | ||
+ | System.out.println("x = " + x + " y = " + y + " z = " + z); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Что из следующего верно? | ||
=== Ответы === | === Ответы === | ||
− | |||
− | |||
− | * | + | * Для всех x, y и z P1(x, y, z) и P2(x, y, z) ведут себя одинаково. |
− | * | + | * Для всех x и y существует z такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному. |
− | + | * Для всех x и z существует y такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному. | |
− | * | + | * Правильный ответ: Для всех y и z существует x такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному. |
− | * | + | * Для всех x, y и z P1(x, y, z) и P2(x, y, z) ведут себя по-разному. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
=== Объяснение === | === Объяснение === | ||
− | + | {{cstest-source|2011-gre-cs-practice-book.pdf|28|27}} | |
− | {{cstest-source|2011-gre-cs-practice-book.pdf| | + | |
− | + | ||
− | + | ||
− | + | Приведём такой x: x = 0. Тогда в первом случае условие if не выполнится, но программа продолжит работать, пропустив блок if. Но во втором случае срабатывает исключение и программа не сработает | |
− | + | ||
− | + | ||
− | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 14:41, 19 декабря 2024 (UTC)}} | |
− | + | [[Категория:Понимание кода]] |
Текущая версия на 15:13, 19 декабря 2024
Вопрос: Q27-08c765
Рассмотрим два фрагмента программы на языке Java:
Фрагмент 1:
public void P1 (int x, int y, int z) { if ((x != 0) && ((y / x) == z)) z = z + 1; System.out.println("x = " + x + " y = " + y + " z = " + z); }
Фрагмент 2:
public void P2 (int x, int y, int z) { if (((y / x) == z) && (x != 0)) z = z + 1; System.out.println("x = " + x + " y = " + y + " z = " + z); }
Что из следующего верно?
Ответы
- Для всех x, y и z P1(x, y, z) и P2(x, y, z) ведут себя одинаково.
- Для всех x и y существует z такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
- Для всех x и z существует y такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
- Правильный ответ: Для всех y и z существует x такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
- Для всех x, y и z P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
Объяснение
Исходники — вопрос 27 на 28 странице книги «2011-gre-cs-practice-book.pdf»
Приведём такой x: x = 0. Тогда в первом случае условие if не выполнится, но программа продолжит работать, пропустив блок if. Но во втором случае срабатывает исключение и программа не сработает