执行如下程序,最后s的显示值为( )。 SETTALKOFF s=0 i=2 x=l0 DO WHILE s<=x s=s+i i=i+1 ENDDO s SET TALK ON
A.12
B.14
C.16
D.18
参考答案: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。