Каково будет значение i в следующем псевдокоде? - PullRequest
2 голосов
/ 12 апреля 2010

Я получил этот вопрос в тесте по программированию. Как вы думаете, этот вопрос даже правильный? Посмотрите на варианты ответа. (2 ^ x означает 2, возведенный в x)

Рассмотрим следующий псевдокод.
x: = 1;
я: = 1;
while (x> = 1000)
начать
х: = 2 ^ х;
i: = i + 1;
конец;

Каково значение i в конце псевдокода?

а) 4
б) 5
в) 6
г) 7
д) 8

Я уверен, что значение i будет 1. Я сказал экзаменатору о несоответствии, и он посоветовал мне оставить вопрос без ответа, если я чувствую, что это неправильно. Что еще я мог сделать?

Ответы [ 4 ]

1 голос
/ 12 апреля 2010

1

X <1000, поэтому он не входит в то время. </p>

Или в вопросе есть ошибка (и X должно быть <= 1000, а не> = 1000)

Если это <= 1000, это должно быть 5: </p>

2 - 4 - 16 - 65K

2 - 3 - 4 - 5

1 голос
/ 12 апреля 2010

Как написано, ответ будет 1.

Если бы тест в то время как был полностью изменен (то есть x

В конце каждой итерации цикла

i = 2, x = 2
i = 3, x = 2^2 = 4
i = 4, x = 2^4 = 16
i = 5, x = 2^16 = 65,536

Так что я бы 5

1 голос
/ 12 апреля 2010

Этот вопрос проверяет две вещи:

  1. Вы можете прочитать код
  2. Вы можете общаться / взаимодействовать

Поскольку вы спросили о несоответствии, вы показали, что 1. это правда. Я не уверен, что если вы сдали 2, это слишком сильно зависит от ситуации / ожиданий.

Полагаю, я бы оставил на листе ответов записку с надписью «ничего не дано».

Непростая ситуация!

0 голосов
/ 12 апреля 2010

Если я где вы, я бы сказал, что это не что-то из вышеперечисленного, и в основном сказал бы, что, поскольку x меньше 1000, когда начинается цикл while, значение i никогда не изменяется. Я думаю, что оставлять пустые ответы в викторине - это плохо, всегда лучше написать что-то, что вы считаете актуальным. Если вы считаете, что есть ошибка, вы всегда можете сформулировать предположение, прежде чем констатировать свой ответ, поэтому в этом случае вы можете либо сказать, что цикл while никогда не работает, либо вы явно сформулируете допущение, в этом случае оно будет быть что-то вроде «Предполагая, что в вопросе есть ошибка, и что« while (x> = 1000) »на самом деле должно быть« while (x <= 1000) »... Затем вы приступаете к работе. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...