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