单选题
[程序说明] 程序的功能是统计一个字符串中各个字符的个数(假设字符串仅由大写英文字母A、B、C、D组成)。
[程序]
CSTR="ABCDDDBBDCCAACB"
STORE 0 TO NA,NB,NC,ND
DO WHILE LEN(CSTR)>0
C=LEFT(CSTR,1)
N&C= ______
CSTR= ______
ENDDO
? NA,NB,NC,ND
A、
N&A+1
B、
N&B+1
C、
N&C+1
D、
N&D+1
【正确答案】
C
【答案解析】
A、
ALLTRIM(CSTR,2)
B、
SUBSTR(STR,2)
C、
SUBSTR(CSTR,2)
D、
RTGHT(CSTR,2)
【正确答案】
B
【答案解析】
[解析] 要求出一个字符串中各种字符的个数,可依次分离出该字符中的字符,判断该字符是什么,从而给相应的计数器加1。本题通过一个DO WHILE循环来实现该功能,实现方法是:先用LEFT函数求出字符串的第一个字符,把该字符对应的计数器加1。此处需要注意的是使用了宏代换“&”假设C为A,则N&C表示的就是NA,因此只需给N&C加1即可,也就是给分离出来的字符对应计数器加1。处理完该字符后,把原字符串中的该字符去掉,即从原字符串的第2个字符开始取到最后一个字符作为下一次要处理的字符串,这可通过SUBS TR函数来实现,第2个空应填SUBSTR(CSTR,2)。
提交答案
关闭