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