单选题
执行下列程序后,变量s的值是( )。
SET TALK OFF
CLEAR
x=〝l2345〞
s=〝〞
1=LEN(x)
DO WHILE l>1
x1=SUBSTR(x,1-1,2)
s=s+x1
1=l-2
ENDD0
?s
【正确答案】
B
【答案解析】本题涉及的考点有求字符串长度函数、取子串函数以及DOwHILE-ENDD0循环语句。其中LEN(<字符表达式>)返回指定字符表达式的长度,即所包含的字符个数,函数值为数值型。SUBSTR()从给定字符串的指定起始位置取指定长度的子串作为函数值。运行DOWHILE-ENDD0语句时,先判断<条件>是否为真,如果是真则运行DOWHILE与ENDD0间的循环体,当运行到ENDD0时,再返回DOWHILE’重新判断循环条件是否为真,确定是否再次运行循环体。若条件为假则结束循环语句运行ENDD0后的语句。程序执行过程如下:程序开始时l=len(x)=5,进入循环条件判断,5>1,条件成立,执行第一次循环,xl-SUB-STR(x,I一1,2)=〝45〞,s=S+x1=”45“,i=5-2=3。第一次循环结束。程序回到循环条件判断,3>1,条件成立,执行第二次循环,xl=SUBSTR(X,j-1,2)=”23”,s=s+x1=”4523”,i=3-2=1。第二次循环结束,程序回到循环条件判断,i>1,条件不成立,结束循环。最终s中的值为字符串”4523”。故答案选B。