以下伪代码中i的值是多少?

时间:2010-04-12 12:01:57

标签: testing

我在编程测试中遇到了这个问题。你认为这个问题是否正确?看看答案选择。 (2 ^ x表示2被提升为x)

请考虑以下伪代码 x:= 1;
i:= 1;
而(x> = 1000)
开始
x:= 2 ^ x;
i:= i + 1;
端;

伪代码末尾的i值是多少?

a)4
b)5
c)6
d)7
e)8

我确信i的价值为1。我告诉检查员这个差异,他告诉我,如果我认为这是不正确的,请不要回答这个问题。我还能做些什么呢?

4 个答案:

答案 0 :(得分:1)

这个问题测试了两件事:

  1. 你能阅读代码吗
  2. 你能沟通/互动吗
  3. 既然你问过这个差异,你就表明1.是真的。如果你通过2,我不太确定,这在很大程度上取决于情况/期望。

    我相信我会在答题纸上留下一条说明“没有给出”的说明。

    不是一件容易的事情!

答案 1 :(得分:1)

1

X< 1000,所以它不会进入。

或者问题中存在错误(X应该是< = 1000而不是> = 1000)

如果它是< = 1000则应该是5:

2 - 4 - 16 - 65K

2 - 3 - 4 - 5

答案 2 :(得分:1)

如上所述,答案是1。

如果时间上的测试被逆转(即x <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

答案 3 :(得分:0)

如果我在哪里,我会说它不是上述内容,并且基本上说因为当while循环开始时x小于1000,所以i的值永远不会被修改。我认为在测验中留下空白答案是一件坏事,写一些你认为相关的东西总是更好。如果你认为存在错误,你可以在陈述你的答案之前总是说出一个假设,所以在这种情况下你可以说while循环永远不会起作用,或者你明确地陈述一个假设,在这种情况下,它会类似于“假设问题中存在错误,并且”而(x> = 1000)“实际应该是”while(x <= 1000)“...... 然后,继续你的工作。