2010-04-12 2 views
2

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

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

Какова ценность i в конце псевдокода?

а) 4
б) 5
с) 6
д) 7
е) 8

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

+1

оно должно быть 'x <= 1000' –

ответ

1

< X 1000, так что это не входит в то время.

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

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

2 - 4 - 16 - 65K

2 - 3 - 4 - 5

1

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

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

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

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

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

1

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

Если бы тест на некоторое время был отменен (т.е.х < 1000), то ряд:

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

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

Так я бы 5

0

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

Смежные вопросы