有如下程序:
a$="apple"
m$=MID$(a$,5,1)
FOR j=1 TO 4
READ b$
e=INSTR(b$,m$)
s=s+e
NEXT j
PRINT s
DATA pear,orange,peach,pineapple
END
运行时输出的结果是:
(A)4 (B)8
(C)10 (D)14
解析:MID$(〈字符串〉,p,n)函数是求一个字符串中从第p个字符开始的n个字符。因此,m$="e"。INSTR函数的功能是测试一个字符串(第2个参数)在另一个字符串(第1个参数)中的起始位置。如果第2个参数字符串不在第1个参数字符串中,则函数值为0。本程序的功能是:测试字符串"e"在字符串pear,orange,peach,pineapple中的起始位置之和。所以,S=2+6+2+4=14。因此答案为D。
2、有如下程序
FOR j=1 TO 4
GOSUB s:
m=m+1/n
NEXT j
PRINT m;n
END
s:n=j*(j+1)
RETURN
运行后输出的结果是:
(A).8 20 (B).75 12
(C)1.8 20 (D)1.75 12
解析:在主程序中,循环体执行了4次,从而调用了4次子程序s。第1次调用时,n=1*(1+1)=2,返回后,m=0+1/2=1/2;第2次调用时,n=2*(2+1)=6,返回后,m=1/2+1/6=2/3;第3次调用时,n=3*(3+1)=12,返回后,m=2/3+1/12=3/4;第4次调用时,n=4*(4+1)=20,返回后,m=3/4+1/20=4/5=0.8。因此答案为A。
如下程序
j=2
FOR k=6 TO 2 STEP -1
READ a(k)
j=j+1
NEXT k
DATA 9,7,5,3,1
DO WHILE j〉2
PRINT a(j);
j=j-1
LOOP
END
运行时输出的结果是
(A)1 3 5 7 9 (B)0 9 7 5 3
(C)0 1 3 5 7 (D)9 7 5 3 1
解析: 在本程序中,第一个循环给数组a赋值:a(6)=9、a(5)=7、a(4)=5、a(3)=3、a(2)=1,同时使变量j为7。
而程序中的第二个循环是输出数组中的部分元素:a(7)、a(6)、a(5)、a(4)、a(3),而a(7)没有被赋初值,因而a(7)=0。因此答案为B。