问题 单项选择题

为计算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.同时进行B)、C)两种修改

答案

参考答案:D

解析: 原程序中s的初始值为1,循环第一次时a=22,这样s就漏加了2。选项A把s=1改为s=0会漏加1和2,不正确。B选项的改法同样会漏加2,不正确。C选项交换了两条语句的位置,s首先加上2,再做下一个累加项,但是当k=10时,s实际加上的是29,少加了一项210,同样不正确,所以本题答案为D。同时进行B、C两项修改后,循环执行10次,累加10个项,虽然当k=10时,a的最后结果为211,但它不会被累加到s中。

选择题
判断题