单选题 执行如下程序,最后s的显示值为( )。

SETTALKOFF

s=0

i=2

x=l0

DO WHILE s<=x

s=s+i

i=i+1

ENDDO

?s

SET TALK ON

【正确答案】 B
【答案解析】[解析] DO WHILE-ENDDO语句的格式:
DO WHILE<条件>
<命令序列>
ENDDO
执行该语句时,先判断DO WHILE处的循环条件是否成立,如果条件为真,则执行DO WHILE与ENDDO之间的<命令序列>(循环体)。当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否为真,以确定是否再次执行循环体。若条件为假,则结束该循环语句,执行ENDDO后面的语句。先给3个变量赋初始值,使用一个DO WHILE循环语句来操作,判断条件是变量s是否小于等于x,如果大于x,则退出循环,否则执行循环体,执行S=S+i,s=2;再执行i=i+1后,i=3,重复此循环体的操作。题干中的循环步骤及结果见下表。
循环步骤及结果
步骤
s
i
x
判断条件s<=x
①初始值
0
2
10
.T.
②因为s<=x,执行循环体
2
3
10
.T.
续表
步骤
s
i
x
判断条件s<=x
③因为s<=x,条件真,执行循环体
5
4
10
.T.
④因为s<=x,条件真,执行循环体
9
5
10
.T.
⑤因为s<=x,条件真,执行循环体
14
6
10
.F.
⑥因为s>x,条件假,退出循环体
14
6
10


所以s最终的显示值是14。