[单项选择题] 有人编写了如下程序:
Private Sub Form_Click()
Dim s As Integer, x As Integer
s=0
x=0
Do While s=10000
x=x+1
s=s+x^2
Loop
Print s
End Sub
上述程序的功能是:计算s=1+22+32+…+n2+…,直到s>10000为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是( )。
A.把x=0改为x=1
B.把Do While s=10000改为Do While s<=10000
C.把Do While s=10000改为Do while s>10000
D.交换x=x+1和s=s+x^2的位置
正确答案:B
参考解析:Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在Until循环中条件为False时执行循环体,条件为True时退出循环;在While循环中条件为True时执行循环体,条件为False时退出循环。本题中循环的条件为s=10000,意味着只有当s=10000时才会继续循环,而实际情况是只有当s>10000的时候才会退出循环,故此循环条件应该改为s<=10000。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)