Visual Foxpro练习6一、单项选择题1.在程序中定义局部变量的命令动词是()。
A.PUBLIC B.PRIVATE C.LOCAL D.DECLARE2.VFP 6.0程序设计的三种基本结构是()。
A.顺序,选择,循环B.顺序,选择,逻辑C.模块,转移,循环D.网状,选择,逻辑3.在DO WHILE / ENDDO循环中,若循环条件设置为.T.,则下列说法中正确的是()。
A.程序无法跳出循环B.程序不会出现死循环C.用LOOP可跳出循环D.用EXIT可跳出循环4.SCAN循环语句是( )扫描式循环。
A.数组B.数据表C.内存变量D.程序5.在DO WHILE … ENDDO循环结构中,LOOP命令的作用是()。
A.退出过程,返回程序开始处B.转移到DO WHILE语句行,开始下一个判断和循环C.终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行D.终止程序执行6.下列程序段执行时在屏幕上显示的结果是()。
DIME A(6)A(1)=1A(2)=1FOR J=3 TO 6A(J)=A(J-1)+A(J-2)NEXT?A(6)A.5 B.6 C.8 D.77.执行如下程序SET TALK OFFS=0I=1INPUT "N=" TO NDO WHILE S<=NS=S+II=I+1ENDDO?SSET TALK ON如果输入N值为5,则最后S的显示值是()。
A.1 B.3 C.5 D.68.下列程序段执行时在屏幕上显示的结果是()。
X1=20X2=30DO test With X1,X2?X1,X2PROCEDURE testPARAMETERS a,bx=aa=bb=xENDPROA. 30 30 B.30 20 C.20 20 D.20 30 9.有程序如下USE CJM.ZF=0SCANM.ZF=M.ZF+ZFENDSCAN?M.ZFRETURN其中数据库文件CJ.DBF中有2条记录,内容如下XM ZF1 李四500.002 张三600.00运行该程序的结果应当是()。
A.1100.00 B.1000.00 C.1600.00 D.1200.00 10.如下程序段的输出结果是()。
DECLARE b(6)FOR i=1 TO 6b(i)=i*10NEXTFOR i=1 TO 6NEXTA.60 B.50 C.40 D.3011.下列程序段的输出结果是()。
ACCEPT “请输入任意一个字符串:”TO AIF A=[123]S=0ENDIFS=1?SA.0B.1C.123D.由A的值决定12-14题基于如下程序:设ZGK.DBF为职工数据库文件,“职称”为该库中一字符型字段名。
本程序的功能是显示库中职称为教授的所有记录。
SET TALK OFFCLEAR ALL( 12 )DO WHILE NOT EOF()IF ( 13 )SKIPLOOPENDIFDISPLAY( 14 )ENDDOUSESET TALK ON12.A.USE ZGK B.USE C.LOCATE FOR "教授"$职称D.SET TALK OFF13.A.职称= "教授" B.职称<> "教授" C.职称>< "教授"D.!EOF()14.A.EXIT B.LOOP C.SKIPD.GO TOP15.有以下程序,假设从键盘输入数字75,请选择最后在屏幕显示的结果:()。
CLEARINPUT "请输入你的成绩:" TO cjIF cj >=80?"优良!"ELSE?"及格!"ENDIFELSE?"不及格!"ENDIFRETURNA .优良B .及格C .不及格D .空白16. 表示应用程序文件的扩展名为___________________。
二、 编程题1. 求数N 的阶乘2. 求两个数中较小值3. 编程实现下列分段函数4. 求前100个自然数的和:S=1+2+3+4+……+1005. 计算1~100的奇数和6. 计算自然对数e 的近似值(n 为20)e=1+1/1!+1/2!+…+1/n! 7. 编程求自然数1——1000中所有能被7整除的数的累加和。
参考答案:一、选择题1-5 CADBB 6-10 CDBAA 11-15BABCB 16 .prg二、编程题1、方法1:CLEAR1 (X>0)0 (X=0) -1 (X<0)Y= Y=SET TALK OFFINPUT "请输入数N:" TO NIF N < 1? "输入的数:", N, '太小!'CANCELENDIFSTORE 1 TO I,SDO WHILE I <= NS=S*II=I+1ENDDO? N,"的阶乘是:", SSET TALK ONRETURN方法2:CLEARSET TALK OFFINPUT “请输入N的值:” TO n T=1FOR I=1 TO nt=t*INEXT? N, ??"的阶乘=“,tSET TALK ONRETURN2、CLEARSET TALK OFFInput "X=" To XInput "Y=" To YIf X<YMin=XElseMin=YEndif? " X与Y中的较小者是:", Min SET TALK ONRETURN3、方法1:CLEARSET TALK OFFInput "请输入一个数:" To XIf X>0Y=1ElseIf X=0Y=0ElseY=-1EndifEndif? YSET TALK ONRETURN方法2:CLEARInput "请输入一个数:" To X Do CaseCase X>0Y=1Case X=0Y=0OtherwiseY=-1Endcase? YSET TALK ON RETURN4、方法1:CLEARSET TALK OFFS=0N=1Do While N<=100S=S+NN=N+1Enddo? "1+2+3+……+100=", S SET TALK ON RETURN方法2:CLEARS=0For N=1 To 100S=S+NEndfor? "1+2+3+…+98+99+100=",S SET TALK ONRETURN5、方法1:CLEARSET TALK OFFstore 0 to i, tdo while i<100i=i+1if int(i/2)=i/2loopendift=t+ienddo? ’1~100奇数和为:’ , tSET TALK ONRETURN方法2:CLEARSET TALK OFFstore 0 to i, tdo while i<100i=i+1if mod(i,2)=0loopendift=t+ienddo? ’1~100奇数和为:’ , tSET TALK ONRETURN6、方法1:CLEARSET TALK OFFE=0STORE 1 TO T,N (或T=1 <ENTER> N=1)FOR N=1 TO 10 [STEP 1]T=T*NE=E+1/TENDFOR|NEXT?”所求的E值为:”,ESET TALK ONRETURN方法2:CLEARSET TALK OFFE=0STORE 1 TO T,NDO WHILE T<=10T=T*NE=E+1/TN=N+1ENDDO?”所求的E值为:”,ESET TALK ONRETURN7、方法1:CLEARSET TALK OFFN=1SUM=0DO WHILE N<=1000IF MOD(N,7)==0SUM=SUM+NENDIFN=N+1ENDDO?”1到1000中能被7整除的数的累加和是:”,SUMSET TALK ONRETURN方法2:CLEARSET TALK OFFSUM=0FOR N=1 TO 1000 [STEP 1]IF MOD(N,7)==0SUM=SUM+NENDIFENDFOR|NEXT?”1到1000中能被7整除的数的累加和是:”,SUM SET TALK ONRETURN。