问题
单项选择题
为计算1+2+22+23+24+…+210的值,并把结果显示在文本框Text1中,若编写如下事件过程:
Private Sub Command1 Click()
Dim a&, s&, k&
s=1
a=2
For k = 2 To 10
a=a*2
s=s+a
Next k
Text1. Text = s
End Sub
执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是( )。
A) 把s=1改为s=0
B) 把For k = 2 To 10改为For k = 1 To 10
C) 交换语句s=s+a和a=a*2的顺序
D) 把For k = 2 To 10改为For k = 1 To 10、交换语句s=s+a和a=a*2的顺序
答案
参考答案:D
解析: 程序应该计算的是2的0次方到2的10次方的和,程序少计算了2的1次方,应该先累加,再执行a=a*2,并且将For k=2 to 10改为For k=1 to 10,这样最后一次循环2的10次方的值能正确累加,然后循环结束。因此答案为D。