解析:主程序中调用函数rev$一次,取出实际参数的第一个字符串存入b$中,然后判断b$是否为空串,若为空串结束函数体,返回主程序;若不为空串则执行rev$=rev$(_______)+b$语句,显然此句用到了递归算法,它是把b$、返回点等压入递归调用栈内,同时取出第二个字符以后的字符串作为新的参数继续调用rev$,直至b$为空串,进行退栈。所以rev$=rev$(_______)+b$语句中的空格应该是取出new$字符串第二个字符以后的字符串。rev$=rev$(_______)+b$的完整格式应为“rev$=rev$(MID$(new$,2))+b$”。11、数组a中有100个小于10000的整数,下标从1到100。下面的程序采用插入排序算法把a中所有的数按照升序存入数组b。请在______处填入适当内容将程序补充完整。
OPTION BASE 1
DIM a(100),b(100)
FOR i=1 TO 100
a(i)=INT(10000*RND):PRINT a(i);
NEXT i
PRINT
FOR i=______
k=1
FOR j=______
IF a(i)>a(j) THEN k=k+1
NEXT j
______
NEXT i
FOR i=1 TO 100
PRINT b(i);
NEXT i
PRINT
END
解析:在双重FOR循环中,外循环是要取出数组中的每一个数,因此FOR i=______的完整结构应为“For I=1 to 100”;在内循环中,是要把外程序中取出的数与整个数组的数进行比较,以确定它在b数组中的位置,因此FOR j=______的完整结构应为“For j=1 to 100”;而每次内循环结束后,通过 IF a(i)>a(j) THEN k=k+1语句可以确定数组元素a(i)应在b 数组中的位置,同时要根据具体位置k给b数组元素赋值,因此最后一个空应埴“b(k)=a(i)”。