2011-gre-cs-practice-book.pdf/Q27 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
Строка 40: Строка 40:
  
 
{{question-ok|[[Участник:StasFomin|StasFomin]] 14:41, 19 декабря 2024 (UTC)}}
 
{{question-ok|[[Участник:StasFomin|StasFomin]] 14:41, 19 декабря 2024 (UTC)}}
 +
{{checkme|[[Участник:Urmat A|Urmat A]] 14:50, 19 декабря 2024 (UTC)}}
  
 
[[Категория:Понимание кода]]
 
[[Категория:Понимание кода]]

Версия 14:50, 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. Но во втором случае срабатывает исключение и программа не сработаетCheck-me-animated.gif Решено: Urmat A 14:50, 19 декабря 2024 (UTC)