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

admin2009-02-15  30

问题 下列程序(请注意循环体内的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

答案1

解析 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(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,即IF的判断条件成立,所以输入X,即输入12,因为此时X=12,大于10,执行EXIT命令,跳出循环。最后输出的是9和12。
转载请注明原文地址:https://kaotiyun.com/show/JlKZ777K
0

最新回复(0)