我先给你一些VF的例题看看吧!Vfp--程序设计典型例题Vfp题库:程序设计基础典型例题[例1] 在()窗口中可以控制列表框内显示的变量种类。
A.跟踪窗口B.监视窗口C.局部窗口D.调动堆栈窗口分析:局部窗口用于显示模板程序中的内存变量,并显示它们的名称.当前取值的类型。
它可以控制在列表内显示的变量类型。
答案c例2下面选项中关于ACCEPT命令说法错误的是()A.ACCEPT命令格式是:ACCEPT[<字符表达式>] TO<内存变量>B.该命令只接收字符串,但是用户在输入字符串时,必须要加上定界符C如果不输入任何内容直接按回车键,系统就会把空串赋给指定的内存变量D如果选用<字符表达式>,那么系统就会首先显该表达式的值,作为提示信息分析:该命令只接收字符串,但用户在输入时不需要加定界符;否则,系统会把定界符当作字符串的一部分输出.答案:B例3下列关于过程的说法中不正确的是A.过程文件可以放在任何程序文件代码的后面,也可以保存在称为过程文件的单独文件里B.过程文件只包含过程,这些过程只能被过程文件调用C.如果需要打开多个过程文件,可以在调用过程语句中加ADDITVE,那么在打开过程文件时, 并不关闭原先已打开的过程文件D.关闭个别过程文件的命令格式是:RELESE PROCEDURE<过程文件>分析:过程文件只包含过程,这些过程可以被任何其它程序调用.命令格式SETPOCEDURE TO[<过程文件>][ADDITIVE]就可以打开多个过程文件.当使用不带任何文件名的SET PROCEDURE TO命令时,将会关闭所有的过程文件,使用命令RELEASE PROCEDURE<过程文件>时,将关闭指定的过程文件.答案:B例4 在一个程序定义了的一些变量,选出局部变量( )1.PRGPUBLIC aILOCAL a2,a3SCORE'B'TO a4LOCATE a5A.a1B.a2,a3C.a4D.a5分析:A是公共变量,C是私有变量,D的命令和LOCA TE相似,但不存在这样定义变量的命令.只有B才是定义了两个局部变量.答案:B例5 不需要先建立就可以使用的变量是( )A.局部变量B.公共变量C.私有变量D.数组分析:私有变量是指在程序中直接使用,由系统自动隐含建立的变量.即没有通过PUBLIC 或LOCAL定义的变量.它的作用域是建立它的模块及其下属的各层模块.私有变量随着建立它的模块运行结束自动清除,不需要先建立就可以使用.答案:C「例6」可以设置表达式类型的断点窗口是()A.跟踪窗口B.监视窗口C.局部窗口D.调用堆栈窗口分析:监视窗口主要就是用来指定表达式在程序调试执行过程中的变化。
要设置一个监视表达式,只需单击窗口中的“监视”文本框,然后输入表达式的内容,按回车键后表达式便添入文本框下方的列表框中。
答案:B「例7」下列命令语句正确的是()A.INPUT〃请输入账号〃TO zhB.INPUT〔2001-03-01〕TO rqC.INPUT〃T〃TO saD.INPUT〃∧2001-03-01〃TO zh分析:B的正确写法是:INPUT〔∧2001-03-01〕TO rq;C的正确写法是:INPUT.T.TO sa。
答案:A「例8」阅读下列程序,该程序的运行结果是()SET TALK OFFINPUT〃请输入A,B:〃TO A,BIF A〈BT = AA = BB = TENDIFDO WHILE B〈〉0T = MOD(A,B)A = BB = TENDDO?ASET TALK ONRETURN运行时输入:12,8A.2B.4C.12D.8分析:本程序的功能是求两个数的最大公约数。
方法是用两个数中较小的去除较大的,然后将除数作为一次除的被除数,余数作为下一次除的除数,反复进行这样的操作,直到余数为零时为止。
则最后一次除的除数,即为所给两个数的最大公约数。
答案:B「例9」用于说明程序中所有内存变量都是局部变量的命令是()A.PRIV ATE ALLB.PUBLIC ALLC.ALL=PRIV ATED.STORE PRIV A TE TO ALL分析:定义局部变量的语句有PRIV A TE<内存变量名表>和PRIVATE ALL(LIKE/EXCEPT<通配符>)。
在使用PRIV ATE ALL本程序中所有内存变量都说明为局部变量。
答案:A(例10)在Visual FoxPro中,用于建立过程文件PROGI的命令是( )A. CREATE PORGIB. MODIFY COMMAND PROGIC. MODIFY PROGID. EDIT PROGI分析:在Visual FoxPro中,建立程序的命令是MODIFY COMMAND答案:B例11:一个过程文件最多可以包含128个过程,其文件扩展名是( )A. PRGB. FOXC. DBTD. TXT分析:过程文件也是一种命令文件,扩展名为.PRG答案:A例12:有Visual FoxPro程序如下:SET TALK OFFUSE CJM - >ZF=0DO WHILE.NOT.EOF()M - >ZF=M - >ZF+ZFSKIPENDDO?M - >ZFRETURN其中数据库文件CJ.DBF中有2条记录,内容如下:XM ZF1 李四500.002 张三600.00运行该程序的结果应当是A.1100B.1000C.1600D.1200分析:分析该程序的结果时,只要理解“M - >ZF”的含义,程序就没有社么难度了。
答案:A例13:在命令文件中,调用另一个命令文件。
应使用命令分析:在FoxPro系统中,LOAD命令用于将一个二进制文件调人内存,CALL命令执行一个已调人内存的二进制文件。
PROCEDURE仅在程序中说明过程名,每个过程以PROCEDURE<过程名>开始,用PETURN结束,不是调用程序。
要在命令文件中调用另一个命令文件应该使用命令DO<命令文件名>.答案:DO〈命令文件名〉[例14]有下列程序:PARAMETER A,B,C,DD=B* B-4*A*CDO CASECASE D=OCASE D〈OD=OCASE D〉OD=2CASE D=OD=1在主程序中执行如下命令:STORE 2 TO A,CDO SUB WITH A,B,C,D?DD的值为—————分析:执行主程序DO SUB WITH A,B,C,D时,把实参1,2,1,2传递给形参A,B,C,D。
在执行过程SUB中语句D=B*B-4*A*C后的D值为O,然后执行DO CASE/ENDCASE语句,条件CASE D=O成立,重新赋值D=1,最后返回主程序时,把形参A,B,C,D的值1,2,1,1传给对应实参A,B,C,D此时D的值为1。
答案:1[例15]有如下程序:STORE O TO N,SDO WHILE.T.N=N+1S=S+NIF N>=1OEXITENDIFENDDO?”S=“+STR(S,2)本程序的运行结果是—————分析:本程序是无限次循环程序,有N的值来决定何时停止循环。
程序的功能是求1到1O 之间的所有整数之和。
可得程序运行的结果为S=55答案:S=55[例16]有如下程序:*主程序:MAIN。
PRGSET TALK OFFCLEARS=0DO SUB WITH 10,S?SRETU*子程序SUB。
PRGPARAMETERS D1,D2D1=D1+D1D2=D1*2RETURN执行主程序后S的值是__________。
分析:DO...WITH语句中的实在参数除了可以是变量外,还可以是任意有数或表达式。
当直接把值传给对应的形参;当为表达式时,先求其值后把其值传给形参。
主程序中变量S 的初值为0,S调用子程序SUB,将数值10和0对应传给子程序中的参数D1和D2,执行D1=D1+D1后,D1=20,再执行D2=D1*2,D2=40,返回到主程序时D2将值回传给S。
因此,在主程序执行?S时,屏幕显示40。
答案:40[例17]设成绩库CJK.DBF中“数学”(数值型字段)这门课程的学分为4,其学分计算的方法如下:数学>=90,学分值为480<=数学<90,学分值为370<=数学<80,学分值为260<=数学<70,学分值为1数学<60,学分值为0计算任一学生数学这门课程的学分值的程序如下:SET TALK OFFUSE CJKACCEPT "输入学号:" TO XHXF=0LOCATE FOR学号=XHDO CASECASE______XH=40CASE______XH=3CASE__________XF=2CASE__________XF=1OTHERWISEXF=0ENDCASE?"学号:",XH?"数学的学分值:",XFUSERETURN分析:本程序的考核要点是DO CASE分支语句答案:数学>=90 数学>=80 数学>=70 数学>=60【例18】参数的两种传递方法是_______和_______。
分析:调用程序模块时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,并把它们赋值给相应的形参变量。
这种情形称为按值传递。
如果实参是变量,那么传递的将不是变量的值,的地址。
这时形参和实参实际上是同一个变量,在模块程序中对形参变量值的改变,同样是对实参变量值的改变,这种情形称为引用传递。
答案:TO V ALUE(按值传递),REFERENCE(按引用传递)【例19】填空完成下列程序,要求该程序能够三次从右向左显示变量S内容的字幕程序。
CLEARS=SPACE(80)+"关系数据库语言VFP计算机2级教程。
关系数据库."+SPACE(60)N=0______I=1DO WHILE I<160@20,0SAY SUBSTR(S,I,80)H=INKEY(0.1,"h")I=I+2__________ENDDO分析:表达式(1)是给出循环的条件,表达试(3)给出循环体的递增形式。
答案:(1)DO WHILE N<3,(2)ENDDO,(3)N=N+1【例20】用两种循环步长值来求1+2+3+...50的值,请将程序填写完整。
程序一:S=0FOR__(1)___S=S+NENDFOR? SRETURN程序二:S=0FOR__(2)___S=S+NENDFOR?SRETURN分析:这是一个计数循环的例子,由以上两种方法可以看出,初值和终值的设定是随步长值不同而变化的,在程序一中,由于步长为1,所以省略了。