我在编程测试中遇到了这个问题。你认为这个问题是否正确?看看答案选择。 (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
。我告诉检查员这个差异,他告诉我,如果我认为这是不正确的,请不要回答这个问题。我还能做些什么呢?
答案 0 :(得分:1)
这个问题测试了两件事:
既然你问过这个差异,你就表明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)“...... 然后,继续你的工作。