当前位置:文档之家› 《VFP》第五章习题全解

《VFP》第五章习题全解

第五章一、填空1、以下程序的功能是将英文字母组成的字符串加密.加密的算法是:如果是大写字母,用原字母后面的第4个字母代替原字母,否则用原字母后的第2个字母代替原字母,如原文"China",加密后的密文是"Gjkpc", 完善下列程序:m=space(0)c="China"for i=1 to 【 len(c)】nc=asc(substr(c,I,1))if nc>64 【 and】 nc<91 &&该字母的ASC值在64之91之间,表明该字母是大写 m=m+【chr(nc+4)/ chr(4+nc)】elsem=m+chr(nc+2)endifendf2、完善下列程序,其功能是显示如下所示的文字图形.金字字大大大宝宝宝宝塔塔塔塔塔【程序清单】CLEARc="金字大宝塔"n=LEN(c)/2FOR i=1 TO n?SPACE(70-i)FOR j=1 【TO i】?? SUBS(C,2*i-1,2)=INKEY(0.5)ENDFORENDFOR3、请写出x的值【 30】,y值是【 -2】X=26y=0if int(x/2)=x/2y=mod(x,3)x=x+4endifif int(x/3)=x/3y=Mod(x,-4)endif? x,y4、如果当前日期是2000年4月1日,并且命令 ?date()在屏幕上返回 04/01/00,则命令行 ?date()+10在屏幕上返回的值为【 04/11/00】5、已知N="1",M="2",X12="GOOD",则表达式X&N&M的值为【 GOOD】6、已知有三个文件分别程序文件、查询文件、表单文件,文件名都是a,请问运行程序文件的命令是【 do a】、运行查询文件的命令是【do a.qpr】、运行表单文件的命令是【 do form a】7、执行下列程序后,输出到屏幕的结果为【 3】。

【程序清单】CLEARcstring="VisualFoxPro"nresult=0m=LEN(cstring)FOR n=1 to mc=SUBSTR(cstring,n,1)IF !BETWEEN(ASC(c),ASC("A"),ASC("Z"))LOOPENDIFnresult=nresult+lENDFOR?nresult8、完善下列自定义函数STR_RV(),其功能是将一个字符串(假设所有字符均为ASCII和GB2312字符集中的字符)进行"反序".例如,STR_RV("ABCD")的返回值为"DCBA".【程序清单】FUNCTION str_rv()PARAMETERS cP=SPACE(O)DO WHILE LEN(C)>0x=ASC(【LEFT(c,1)/SUBSTR(c,1,1)/ SUBS(c,1,1)】)IF x>127 &&ASCII码值大于127的字符为汉字(x为半个汉字的机内码) i=2ELSEi=1ENDIFP=LEFT(C,i)+PC=SUBSTR(c,i+1)ENDDO【 RETURN P/ RETU P】ENDFUNC9、在Visual FoxPro中,基类的事件集合是固定的,不能进行扩充.基类的最小事件集包括Init 事件、Destroy 事件和【error 】事件10、如果2002年3月18号是星期一,则以下命令在屏幕上显示【 2】x={^2002/03/18}?dow(x)11、完善程序题.下列程序的功能是统计一个字符串中各个字符的个数(假设字符串仅由大写英文字母A,B,C,D组成):cStr='AABBDDCABCDAADBCAACCDDDDBB' &&字符串赋初值STORE 0 TO nA,nB,nC,nD, &&计数变量for i=1 to 【 len(cStr)】C=LEFT(【 cStr,1】)do casecase C="A"nA=nA+1case C="B"nB=nB+1case C="C"nC=nC+1case C="D"nD=nD+1【endcase/ ENDC 】EndF12、完善下列程序,是程序的结果如下图所示1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=92*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=183*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=274*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=365*5=25 5*6=30 5*7=35 5*8=40 5*9=456*6=36 6*7=42 6*8=48 6*9=547*7=49 788=56 7*9=638*8=64 8*9=729*9=81*****程序*****CLEARFOR i=1 TO 9FOR j=1 TO 9If i<=j?? STR(I,1)+"*"+STR(j,1)+"="+【str(i*j,2)】 +SPACE(2)ENDIFENDFOR【?】ENDFOR13、已知在命令行输入 ?at("e", "Hello everyone!",3)其返回值为9,则?at("e", "Hello everyone!",2)返回值为【 7】14、下面程序执行以后,屏幕上显示【.f.】x=.t.y=.f.z=not(x and (y or x))?z15、执行以下程序段后,屏幕显示的运行结果为【15】 .【程序清单】CLEARx=12Do WHILE .T.x=x+1IF x=INT(x/4)*5??xELSELOOPENDIFIF X>10EXITENDIFENDD016、使程序的运行结果如下所示:1*9+2=1112*9+3=111123*9+4=11111234*9+5=1111112345*9+6=111111123456*9+7=11111111234567*9+8=1111111112345678*9+9=111111111123456789*9+10=1111111111完善下列程序:SET TALK OFFCLEARx=space(0)For i=1 to 【9 】x=x+allt(str(i))?STR(VAL(x))+"*9+"+ 【allt (str(I+1))/ str(I+1 )】 +"="+ ALLT(STR(VAL(x)*9+ i+1)) ENDFOR17、使用LOCAL、PRIVATE和PUBLIC关键字可以指定变量的作用域.在命令窗口中创建的任何变量或数组均为【全局/ publ】性变量.18、函数LEN(STR(12345678901))的返回值为【 10 】,函数LEN(DTOC(DATE()))的返回值为【 8】19、函数或过程的参数可以是变量或数组元素,并可以通过值或引用传递.如果希望自定义函数修改参数,并将修改后的值返还给主程序,则应通过【引用】传递函数.20、设有一表文件xs.dbf 且已在当前工作区中打开,则使用命令COPY TO【xs type xls/ xs xls 】,可以将该表的数据复制到Excel文件xs.xls中.21、在自定义函数中,定义形式参数的关键字为【 parameters/ para】22、在 VFP 中,每个对象都具有属性,以及与之相关的【事件和方法】.其中,属性是定义对象的特征或某一方面的行为.23、下面有两段程序代码,它们的功能【相同】(注:答"相同"或"不相同").【程序一清单】nSum=0p=1FOR i=1 TO 10p=p*inSum=nSum+pENDFOR?nSum【程序二清单】nSum=0FOR i=1 to 10nSum=nSum+fJC(i)ENDFOR?nSumFUNCTION fJCPARAMETERS xp=1FOR n=1 TO xp=P*nENDFORRETURN pENDFUNC24、完善程序题.下列自定义函数DeleteSpace()的功能是将一个字符串中的所有空格删除:FUNCTION DeleteSpacePARAMETERS cStrcResult=SPACE(0)FOR n=1 TO 【 len(cstr)】IF SUBSTR(cStr,n,1)=SPACE(1)【loop】ENDIFcResult=cResult+SUBSTR(cStr,n,1)ENDFORRETURN 【cResult】ENDFUNC25、实现如下表达式的和:1+3+5+7+9+11,请完善如下程序:s=0For I=1 to 11if mod(I,2)=0【LOOP】EndIfs=s+iEndFor?s26、完善下列程序,其功能是统计一个仅由数字组成的字符串中各种数字字符的个数:ClearcStr="110102342245676893319"Store 0 To n0,n1,n2,n3,n4,n5,n6,n7,n8,n9Do while Len(cStr)>0C=Left(cStr,1)n&C=【n&c.+1/ n&c+1 】cStr=【 SUBSTR(cStr,2)/ SUBS (cStr,2)】Enddo? n0,n1,n2,n3,n4,n5,n6,n7,n8,n927、以下程序产生1000个0-100之间的随机整数,并且统计互不相同的数据个数.CLEARn=1000DIMENSION x(n),p(n) &&数组P用于存储数是否相同的标识FOR i=1 T0 nx(i)=INT(RAND()*100)ENDFORs=OFOR i=1 T0 n-1FOR j=i+l TO nIF x(i)=x(j)p(i)=.T.【 Exit】ENDIFENDFORENDFORFOR i=1 TO nIF !p(i)s=s+1ENDIFENDFOR?s28、完善下列程序,以实现通过字符串变量操作竖向显示"天长地久"、横向显示"地久天长"的功能.程序清单如下:SET TALK OFFSTORE "天长地久" TO chCLEARn=1DO WHILE n<8?substr【(ch,n,2)】n=n+2ENDDO?substr【(ch,5,4)/ (ch,5)】??SUBSTR(ch,1,4)29、一只球从100米的高度自由落下,每次落地后反弹回原高度的一半.下列程序的功能是:计算并显示当它在第10次落地时,总共经过的距离和第10次反弹的高度.【程序清单】CLEARS=100h=50FoR i=1 TO 9s=s+h*2h=【h/2】ENDFOR?"球在第10次落地时,共经过了:'+ALLT(STR(s,10,6))+"米"?"球第1O次反弹的高度是:"+ALLT(STR(h,10,6))+"米"30、执行下列程序后,输出到屏幕的结果为【 3】.【程序清单】CLEARcstring="VisualFoxPro"nresult=0m=LEN(cstring)FOR n=1 to mc=SUBSTR(cstring,n,1)IF !BETWEEN(ASC(c),ASC("A"),ASC("Z"))LOOPENDIFnresult=nresult+lENDFOR?nresult31、运行下列程序后,显示的运行结果的第二行为【 11*11=121】SET TALK OFFCLEARY="11111111"FOR I=1 TO LEN(y)X=LEFT(y, i)?SPACE(20-i*2)+x+"*"+x+"="+ALLT(STR(VAL(x)*VAL(x)))ENDFOR32、下列自定义函数 NTOC ()的功能是:当传送一个 1~7 之间的数值型参数时,返回一个中文形式的"星期日 ~ 星期六".例如,执行命令? NTO ( 4 ),显示"星期三".FUNCTION NTOCPARAMETERS nLOCAL chch="日一二三四五六"mch="星期"=SUBSTR(ch,【2*n-1】,2)RETURN mchENDFUNC33、运行下列程序后,显示的运行结果为【 FoxPro】.?TT("123E%n w$O4q*5n6")FUNCTION TTPARA cstrcResult=space(0)FOR n=1 to LEN(ALLT(cStr))c=SUBSTR(cStr,n,1)IF !BETWEEN(c,"A","Z") and !BETWEEN(c,"a "," z") LOOPENDIFcResult=cResult+CHR(ASC(c)+1)ENDFORRETURN cResultENDFUNC34、执行下列程序后,输出到屏幕的结果为【300】 .【程序清单】CLEARSTORE 5 TO ml,m2STORE 1 TO m3,m4DO PA WITH ml,m2,m3,m4?m4PROCEDURE PAPARAMETER a,b,c,dd=b^2-4*a*cDO CASECASE d<0d=100CASE d=0d=200CASE d>0d=300ENDCASERETURN35、已知STUDENT表有20条记录,执行以下代码后,屏幕显示的是【10】clearclose alluse studenti=0scani=i+1skipendscan?i36、完善下列程序,以显示7~1000以内能被7整除且含有数字5的所有证书(例如35、 56、105等).FOR n=7 TO 1000 【step 7】ch=ALLT(STR(n))IF "5"$ch?nENDIFENDFOR37、表达式STR(YEAR(DATE()+10))的值的数据类型为【字符/C】型38、完善下列程序,计算3+33+333+3333+33333+……前十项之和。

相关主题