下列程序(请注意循环体内的LOOP和EXIT语句)的运行结果是(  )。 X=8 DO WHILE .T. X=X+1 IF X=INT(X/3)*3 ? X ELSE LOOP ENDIF IF X>10 EXIT ENDIF ENDDO

admin2010-08-21  34

问题 下列程序(请注意循环体内的LOOP和EXIT语句)的运行结果是(  )。
X=8
DO WHILE .T.
X=X+1
IF X=INT(X/3)*3
? X
ELSE
LOOP
ENDIF
IF X>10
EXIT
ENDIF
ENDDO

选项 A、9  12
B、12  15
C、15  18
D、18  21

答案A

解析 DO WHILE-ENDDO语句的格式为:
DO WHILE<条件>
<命令序列>
ENDDO
执行该语句时,先判断DO WHILE处的循环条件是否成立,如果条件为真,则执行DO WHILE与ENDDO之间的<命令序列>(循环体)。当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否为真,以确定是否再次执行循环体。若条件为假,则结束该循环语句,执行ENDDO后面的语句。在循环语句的循环体中还可以出现两条特殊的命令:LOOP和EXIT。这两条命令会影响循环语句的正常执行流程。
①如果循环体包含LOOP命令,那么当遇到LOOP时,就结束循环体的本次执行,不再执行其后面的语句,而是转回DO WHILE处重新判断条件;②如果循环体包含EXIT命令,那么当遇到EXIT时,就结束循环语句的执行,转回执行EXIT后面的语句。
分析题干,首先将初始值8分别赋给两个变量X,然后进入循环。
执行X=X+1后,X=9,INT表示取整数,则INT(X/3)*3的结果为9,即IF的判断条件成立,所以输出X,即输入9,因为此时X=9,小于10,再次进入循环。执行X=X+1后,X=10,则INT(X/3)*3的结果为9,即IF的判断条件不成立,执行LOOP命令,不再执行后面的语句,而是转回DO WHILE处重新判断条件,重新执行循环。执行 X=X+1后,X=11,则INT(X/3)*3的结果为9,即IF的判断条件不成立,执行LOOP命令,不再执行后面的语句,而是转回DO WHILE处重新判断条件,重新执行循环。执行X=X+1后,X=12,则INT(X/3)*3的结果为12,即Ⅳ的判断条件成立,所以输入X,即输入12,因为此时X=12,大于10,执行EXIT命令,跳出循环。最后输出的是9和12。
转载请注明原文地址:https://kaotiyun.com/show/Gkzp777K
0

最新回复(0)