Пусть a = a(x) - некоторое условие, зависящее только от значения переменной x. Укажите, чему может быть равно значение переменной y в результате выполнения следующего фрагмента программы: int x = 1; int y = 1; while (a(x)) { ...

Пусть a = a(x) - некоторое условие, зависящее только от значения переменной x. Укажите, чему может быть равно значение переменной y в результате выполнения следующего фрагмента программы: int x = 1; int y = 1; while (a(x)) { . . . if (y < 0) { x = 2; y = 10; } else { x = 1; y = 20; } } (Отметьте один правильный вариант ответа.) Вариант 1 Значение y равно 1 или 10. Вариант 2 Значение y равно 1 или 20. Вариант 3 Значение y может быть равным любому из чисел 1, 10, 20. Вариант 4 Значение y не может быть равным любому из чисел 1, 10, 20. Ответить Прокомментировать Прервать
Гость
Ответ(ы) на вопрос:
Гость
В языке С/С++ любое ненулевое значение считается истинным. Цикл с заголовком while (a(x)) выполнятся до тех пор. пока a(x) ненулевое, следовательно, при выходе из цикла a(x)=0. Первоначально х=1 и если a(1) окажется равным нулю, то тело цикла не выполнится ни разу. В этом случае у будет равен начальному значению, т.е. у=1. Если же а(1) не равняется нулю, то будет выполняться тело цикла. При у<0 переменная х получает значение 2, у получает значение 10. Мы должны полагать что а(2) ложно и тогда произойдет выход из цикла. Если же это не так, то тело цикла будет выполняться повторно. Ветка при y>=0 дает присваивание х=1, а мы рассматриваем вариант, когда такое значение не приводит к выходу из цикла, следовательно у=20 никогда не будет последним присваиванием значения у. Тогда возможен только вариант ответа 1 (у=1 или 10) Ответ: Вариант 1
Не нашли ответ?
Ответить на вопрос
Похожие вопросы