第十章练习题一、选择题1.将逻辑值赋给内存变量LZ的正确方法是:A)LZ=“.T.”B)STORE “T” TO LZC)LZ=TRUED)STORE .T. TO LZ2.将98年国庆节的日期赋给内存变量ND的正确方法是:A)ND=DTOC(“10/01/98”)B)ND=CTOD([10/01/98])C)STORE DATE()TO NDD)STORE 10/01/98 TO ND3.执行命令INPUT “请输入出生日期:” TO MDATE时,如果通过键盘输入CTOD(“01/01/88”)则内存变量MDATE的值应当是:A)CTOD(“01/01/88”)B)“01/01/88”C)日期值01/01/88D)拒绝接收,MDATE不赋值4.在DO WHILE .T.的循环中,退出循环应使用的命令是:A)LOOPB)EXITC)CLOSED)CLEAR5.下列程序的运行结果是:A=10IF A=10S=0ENDIFS=1?SA)0B)1C)程序出错D)结果无法确定6.有如下的程序:M=0N=0DO WHILE N>MM=M+NN=N-10ENDDO?M运行此程序后M的值为:A)0B)10C)100D)997.有如下程序:SET TALK OFFSTORE 2 TO S,KDO WHILE S<14S=S+KK=K+2ENDDO?S,KSET TALK ONRETURN此程序运行后的输出结果是:A)2210B)228C)148D)14108.执行如下程序:SET TALK OFFS=0I=1INPUT “N=?” TO NDO WHILE S<=NS=S+1I=I+1ENDDO?SSET TALK ON如果输入N的值为5,则最后S的显示值是:A)1B)3C)5D)69.有如下的程序:SET TALK OFFM=0N=100DO WHILE N>MM=M+NN=N-10ENDDO?M,NRETURN运行此程序的显示结果为:A)010B)1090C)90100D)1009010.执行语句DIMENSION M(3),N(2,3)后,数组M和N的元素个数分别为:A)1个,2个B)3个,6个C)3个,5个D)4个,12个11.运行下列程序后,语句?”123”被执行的次数是:I=0DO WHILE I<10IF INT(I/2)=I/2?”123”EDNIF?”ABC”I=I+1ENDDORETURNA)10B)5C)11D)612.在程序中,如果先用命令DIMENSION Q(2,3)定义了一个数组,再对每个下标变量赋值,Q(1,1)=1,Q(1,2)=2,Q(1,3)=3,Q(2,1)=4,Q(2,2)=5,Q(2,3)=6,然后执行命令?Q(2),则显示的结果为:A)变量未定义B)4C)2D).F.13.运行如下程序的结果是:SET TALK OFFDIMENSION K(2,3)I=1DO WHILE I<=2J=1DO WHILE J<=3K(I,J)=I*J??K(I,J)??” ”J=J+1ENDDO?I=I+1ENDDORETURNA)123B)12C)123D)1232463212324914.假设当前数据表中有5个字段:学号(C)、姓名(C)、政治(N)、英语(N)、数学(N),当前记录指针指向一个非空的记录,有如下命令序列:DIMENSION X(3)SCATTER TO XLIST MEMORY顺序执行上述命令之后,数组各元素的值分别是:A)数组各元素的值是一串*号,表示数据溢出B)有5个数组元素X(1)、X(2)、X(3)、X(4)、X(5),分别是当前记录各个字段值C)有3个数组元素X(1)、X(2)、X(3),分别是当前记录的前3个字段值D)有3个数组元素X(1)、X(2)、X(3),分别从当前记录开始,连续3个记录的学号字段值15.能够把数组的值存入数据表当前记录的命令是:A)STOREB)REPLACEC)SCATTERD)GATHER16.有如下程序,执行命令DO ZCX后,屏幕显示的结果为:主程序ZCX.PRG子程序ZCX1.PRGSET TALK OFFK1=K1+’200’K1=’AB’?K1DO ZCX1RETURN?K1RETURNA)ABB)AB200C)AB200D)200AB200AB200AB20017.有如下程序,执行命令DO ZZ后,屏幕显示的结果是:主程序ZZ.PRG子程序Z1.PRG子程序Z2.PRGSET TALK OFFX2=X2+1X3=X3+1STORE 2 TO X1,X2,X3DO Z2RETURN TO MASTERX1=X1+1?X1+X2+X3DO Z1RETURN?X1+X2+X3RETURNA)9B)5C)8D)418.有如下程序:主程序SS.PRG子程序SUB1.PRGSET TALK OFFPARAMETER A,BX=10X=A+10A=2A=A+BB=3?X,A,BDO SUB1 WITH A,BRETURNDO SUB1 WITH A,B?X,A,BSET TALK ONRETURN执行命令DO SS之后,第1行输出的结果是:A)1053B)1253C)1285D)都不对二、填空题1.有3个数A,B,C,其中两个数相等,而另一个数比其他两个数都大,下列程序段的功能是找出其中最大的那个数,请填空。
DO CASECASE (1)?“C=”,CCASE (2)?“B=”,BCASE(3)?“A=”,AENDCASE2.程序A.PRG的功能是求1到100之间所有整数的平方和并输出结果,请填空。
SET TALK OFFCLEARS=0X=1DO WHILE X<=100(1)(2)ENDDO?SRETURN3.阅读下列程序,并给出运行结果。
SET TALK OFFCLEARSTORE 1 TO XSTORE 20 TO YDO WHILE X<=YIF INT(X/2)<>X/2X=1+X^2Y=Y+1LOOPELSEX=X+1ENDIFENDDO?X?YSET TALK ON运行结果X的值为:,Y的值为:。
4.有如下程序:SET TALK OFFI=1DO WHILE I<=2CLEARINPUT “A=” TO AIF A>INT(A).OR.A>=10LOOPELSEINPUT “B=” TO BIF B=INT(B).AND.B<10LOOPELSE?A,”+”,B,”=”,A+BENDIFENDIFI=I+1ENDDO执行以上程序,如果依次输入数据2.5,8,2.5,3,2,2,10,则输出结果是以及。
5.下列程序的功能是删除输入字符串中所含的空格,请填空。
SET TALK OFFACCEPT “请输入字符:” TO XI=2DO WHILE “ ”$XI=AT(“ ”,X)(1)I=I+1ENDDO?XRETURN6.执行下列程序,如果依次输入数据2,3.5,3.5,3,2,2,3,则输出结果是。
SET TALK OFFI=1DO WHILE I<=2CLEARINPUT “A=” TO AIF A<>INT(A).OR.A<1.OR.A>99LOOPELSE??A,”+”,B,”=”,A+BENDIFI=I+1ENDDO7.下列程序的功能是对ABC.DBF中的字段“数量”里的数,求其偶数之和,并显示所有偶数,请填空。
SET TALK OFFUSE ABCS=0DO WHILE .T.IF(1)?数量S=S+数量ENDIF(2)IF EOF()(3)ENDIFENDDO?SRETURN8.请阅读下列程序,并根据运行结果填空。
SET TALK OFFM=1DO WHILE M<5N=1??MDO WHILE N<MTT=N+M??TTN=N+1ENDDO?M=M+1ENDDORETURN此程序共显示行数据,第1行是,最后一行是。
9.共有5个数据表文件STD1.DBF ~ STD5.DBF,下列程序的功能是删除每个表文件的最后一条记录,请填空。
N=1DO WHILE N<=5DB= (1)USE &DBGOTO BOTTOMDELETEPACKN=N+1ENDDOUSE10.下列程序逐行显示职称为教授的数据记录,请填空。
USE TEACHERDO WHILE .NOT.EOF()CLEARIF 职称<>“教授”SKIP(1)ENDIFDISPLAYWAIT “按任意键继续!”SKIPENDDOUSE11.填空完成下列程序:SET TALK OFFUSE STDACCEPT “请输入待查学生姓名:” TO XMDO WHILE .NOT.EOF()IF(1)?“姓名:”+姓名,“成绩:”+STR(成绩,3,0)ENDIFSKIPENDDOSET TALK ONRETURN12.已经建立了工资数据表文件GZ.DBF,在下列程序中要求修改水电费字段值,请填空。
SET TALK OFFCLEARUSE GZACCEPT “要将水电费字段清零吗?(Y/N)” TO PIF(1)REPLACE ALL 水电费WITH 0ENDIFGO TOPBROWSE FIELDS 姓名,水电费USERETURN13.下列程序的功能是从键盘接受到Y或N才退出循环,请填空DO WHILE .T.WAIT “请输入Y/N” TO YNIF ((UPPER(YN)<>”Y”).AND.(UPPER(YN)<>”N”))(1)ELSEEXITENDIFENDDO14.计算机等级考试的查分程序如下,请填空:USE STUDENTACCEPT “请输入准考证号:” TO NUMLOCATE FOR 准考证号=NUMIF(1)?姓名+“的成绩是:”+STR(成绩,3,0)ELSE?“没有此考生!”ENDIFUSE15.计算机等级考试考生数据表为STUDENT.DBF。
笔试和上级成绩已分别录入其中的“笔试”和“上机”字段(均为数值型)中,此外另有“等级”字段(字符型)。
凡两次考试均达到80分以上者,应在等级字段中填入“优秀”。
为此编写如下程序,请填空。
SET TALK OFFUSE STUDENTDO WHILE .NOT.EOF()IF 笔试>=80.AND.上机>=80(1)ENDIFSKIPENDDOUSESET TALK ON16.阅读下列程序,回答指定问题。
SET TALK OFFCLEARUSE SALARYDO WHILE .NOT.EOF()IF 实发工资>=250SKIPLOOPENDIFDISPLAYSKIPENDDOCLOSE DATABASERETURN该程序完成的功能是;LOOP语句的功能是。