2011-gre-cs-practice-book.pdf/Q27

Материал из DISCOPAL
Перейти к: навигация, поиск

Задача зарезервирована: Urmat A 10:57, 19 декабря 2024 (UTC)

== Вопрос: 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);
}

Что из следующего верно?

Ответы

  1. Для всех x, y и z P1(x, y, z) и P2(x, y, z) ведут себя одинаково.
  2. Для всех x и y существует z такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
  3. Для всех x и z существует y такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
  4. Правильный ответ: Для всех y и z существует x такой, что P1(x, y, z) и P2(x, y, z) ведут себя по-разному.
  5. Для всех x, y и z P1(x, y, z) и P2(x, y, z) ведут себя по-разному.


Объяснение

Исходники — вопрос 27 на 28 странице книги «2011-gre-cs-practice-book.pdf»

Приведём такой x: x = 0. Тогда в первом случае условие if не выполнится, но программа продолжит работать, пропустив блок if. Но во втором случае срабатывает исключение и программа не сработаетCheck-me-animated.gif Решено: Urmat A 13:25, 19 декабря 2024 (UTC)

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.