浙江省计算机2级VFP程序调试真题集_第1页
浙江省计算机2级VFP程序调试真题集_第2页
浙江省计算机2级VFP程序调试真题集_第3页
浙江省计算机2级VFP程序调试真题集_第4页
浙江省计算机2级VFP程序调试真题集_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.一 程序填空(改错)题:在考生文件夹的paper 子文件夹中,已有文件Modify.prg,请自己打开文件,在标记&之前填写所缺代码、调试、保存,并完成以下功能1、显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录SET TALK OFFCLEARINPUT M= TO MN=MDO WHILE INT(N)!=N &_ 1N=N*10ENDDOSTORE MOD(N,10) TO D,X &_ 2 DO WHILE N0 &_ 3R= MOD(N,10) &_ 4IF RDD=RENDIFIF RXX=RENDIFN= INT(N/10) &_ 5ENDDO

2、?M,中位值最大的数码是:+STR(D,1)+,最小的数码是:+STR(X,1)+ 。SET TALK ON2已知:在考生目录的Paper子目录中已有学生表(学生.dbf)(学号,姓名,性别,出生年月,简历,奖学金,照片)要求:显示“学生”表中的全部字段名。SET TALK OFFCLEARUSE 学生*1*FOR N = 1 TO RECCOUNT() FCOUNT() *2* FOUND(N) ?FIELDS(N) ENDFORUSESET TALK ON3将给定的正整数数值表达式的值分解因子,并输出各个质数因子。如24的因子有:2、2、2和3SET TALK OFF SET ESCAPE

3、 OFF CLEAR ?按ESC键结束操作DO WHILE .T. INPUT M= TO M IF INT(M)!=M OR ABS(M)!=M ?输入的数据不符合题目要求! LOOP ENDIF ?ALLTRIM(STR(M,19)+的质数因子有: I=2 DO WHILE I=M IF M%I=0 ?STR(I,6) * M=MOD(M,I) M=INT(M/I) LOOP ENDIF I=I+1 ENDDO IF INKEY(0)=27 EXIT ENDIF ENDDO SET TALK ON SET ESCAPE ON4要求:显示输出“学生”表中的1971年或以前出生的学生姓名和出生

4、年月SET TALK OFFCLEARUSE 学生 *1*LOCATE FOR 出生年月=1971 1971-12-31DO WHILE !EOF() ?姓名,出生年月*2* SKIP continue ENDDOUSESET TALK ON5求当1!+3!+5!+n!的值不超过10的20次幂时的临界值及n的值。SET TALK OFFCLEAR*1*S=0 S=1STORE 1 TO T,NDO WHILE S=1E+20T=T*(N+1)*(N+2)S=S+T*2*N=N+1 N=N+2ENDDO?S=,S-T?N=,N-2SET TALK ON61)设计一个显示不同颜色和半径的圆的表单

5、2)利用计时器时间产生半径递增的圆,其颜色是随机产生的3)在单击“暂停”时停止画圆,此时该命令按钮变成“画圆”,再次单击“画圆”时,继续前面的画圆过程。*LOCAL rad public radthis.rad=2 rad=2erval=1007显示指定表中的全部字段名,并有用户输入显示表信息的条件,最后列表显示满足条件的记录(在考生文件夹paper子文件夹中存在学生.dbf,课程.dbf,成绩.dbf。)SET TALK OFFDO WHILE .T.CLEARACCEPT 请输入表名(扩展名略): TO TBNIF FILE(&TBN.DBF) USE

6、 &TBN.DBF &_ 1ELSE WAIT 指定的表不存在! TIMEOUT 5 LOOPENDIF?表中的全部字段名列表:FOR N = 1 TO fcount() &_ 2 ?fields(n) &_ 3ENDFORACCEPT 请输入显示表信息的条件表达式: TO EXPR list for &expr &_ 4WAIT 是否还要显示其他表文件中的内容?Y/N: TO YNIF UPPER(YN)!= Y exit &_ 5ENDIFENDDOUSESET TALK ON81)从键盘输入一元二次方程的三个系数a,b,c,三个系数只能输入数字2)若方程有实根,则在屏幕上打印出实根,否则

7、打印方程无实根3)从键盘输入Q后退出程序运行,输入其他键继续求解下一个方程实根*本程序用于求解一元二次方程ax2+bx+c=0CLEAR ALL*循环,条件恒真DO WHILE .T.CLEAR INPUT 输入一元二次方程的二次项系数a(a不能为0)=? TO aIF a=0LOOPENDIFINPUT 输入一元二次方程的一次项系数b=? TO bINPUT 输入一元二次方程的常数项c=? TO c*把判别式的运算结果保存到内存变量panbie中STORE b*b-4*a*c TO panbie*显示一个空行?*判断判别结果是否小于0IF panbie 0 * this.removeitem

8、(this.select) (this.listindex)endifList1的GotFocus事件:this.value this.value=thidform.text1.valuetext1的KeyPress事件:LPARAMETERS nKeyCode, nShiftAltCtrl*if nKey=13 IF nKeyCode=13 if !empty(this.value) thisform.list1.additem(this.value) else Messagebox(输入不能为空,0+16,错误信息) This.setfocus Endif This.Value=Endif

9、10单击表单FORM1的“确定”按钮,弹出一对话框,并释放表单Command1的Click事件:cText=考试开始cCode=0+64cMessage=信息窗口*Msg(cCode,cText,cMessage) MESSAGEBOX(cText,cCode, cMessage) *thisform.activate thisform.release11要求:x1+ x2+3 +x4+。+ xn的值。n,x从键盘输入。SET TALK OFFCLEARINPUT N= TO NINPUT X= TO XS=0*1*T=0 T=1FOR I=1 TO NT=T*XS=S+TENDFOR*2*?

10、S=+S ?”S=”,SSET TALK ON121)大小写字母的转换2)利用文本框输入字母,利用标签显示转换成大写后的内容Text1的KeyPress事件:LPARAMETERS nKeyCode, nShiftAltCtrlXI=Thisform.text1.valueif nkeycode=13 * thisform.label2.caption=输出效果为:+allt(Lower(xi) UPPER this.selstart=0 this.sellength=len(allt(this.value)endif13已知:在考生目录的Paper子目录中已有学生表(学生.dbf)(学号,姓

11、名,性别,出生年月,简历,奖学金,照片)要求:将“学生”表中指定学生(由键盘输入)的奖学金加10元,并显示该学生的奖学金SET TALK OFF CLEAR USE 学生 ACCEPT 请输入学生学号: TO XH INPUT*1* SEEK学号=XH IF !EOF() *2* REPLACE ALL 奖学金 WITH 10 REPLACE ALL 奖学金 WITH奖学金+10?学号,姓名,奖学金 ELSE ?没有找到! ENDIF USE SET TALK ON 14计算N(从键盘输入的正整数)个实数(从键盘输入)去掉其中的最大和最小数之后的平均值SET TALK OFFCLEARINPU

12、T N= TO N INPUT “A=” TO A &_ 1STORE A TO X,YS=AP=N-2FOR I=2 TO NINPUT B= TO B S=S+B &_ 2IF XB &_ 4 Y=BENDIFENDFOR R=S-X-Y &_ 5?R/PSET TALK ON15要求:从键盘输入一个数值(09),要求输入其对应的中文大写数字(零玖)。SET TALK OFFCLEARC=零壹贰叁肆伍陆柒捌玖*1*ACCEPT N= TO N INPUT N= TO N*2*?N,-+ STR(C,2*N-1,2) ?N,-+ SUBSTR(C,2*N+1,2)SET TALK ON16已

13、知:在考生目录的Paper子目录中已有学生表(学生.dbf)(学号,姓名,性别,奖学金)要求:1)求学生表中指定班级(如951或953班,学号字段的前3个字符表示班级)所有学生的奖学金总额2)将金额(保留两位小数)以中文大写形式显示输出(例如:19642.36显示输出为:壹万九仟陆百肆拾贰元叁角陆分)。SET TALK OFF SET ESCAPE OFF CLEAR USE 学生?*按ESC键结束操作*DO WHILE .T. ACCEPT 输入指定的班级(如:951或953): TO BJ LOCATE FOR LEFT(学号,3)=BJ IF FOUND() SUM 奖学金 TO JXJ

14、 FOR LEFT(学号,3)=BJ ?BJ+班全体学生的奖学金总额为:+STR(JXJ,5,2)+,中文大写为:+JEZH(JXJ) ELSE ?指定班级不存在! ENDIF IF INKEY(0)=27 EXIT ENDIF ENDDO USE SET TALK ON SET ESCAPE ON FUNCTION JEZH PARAMETERS X C1=零壹贰叁肆伍陆柒捌玖C2=分角元拾佰仟万拾佰仟亿M=ROUND(X,2)M=M*100I=0C=SPACE(0)DO WHILE .T. N=MOD(M,10) &1- P1=SUBSTR(C1,2*N+1,2) P2=SUBSTR(C2

15、,2*I+1,2) C=P1+P2+C &2- I=I+1 M=INT(M/10) &3- IF M=0 EXIT ENDIF ENDDO RETURN C ENDFUNC 17.已知:在考生目录的paper子目录中已有学生表(学生.Dbf)(学号,姓名,性别,出生年月,简历,奖学金,照片)要求:显示输出“学生”表中每个班级的男女同学的奖学金总额(学号字段的前三位代表班级)SET TALK OFFCLEARUSE 学生INDEX ON 学号 TO INN0 ?*各班男女奖学金总额统计*?班级 男同学奖学金总额 女同学奖学金总额 DO WHILE !EOF() &_ 1CLASS=LEFT(学号

16、,3) STORE 0 TO BOYS,GIRLS &_ 2DO WHILE LEFT(学号,3)=CLASS IF 性别=.T. &_ 3BOYS=BOYS+奖学金 ELSEGIRLS=GIRLS+奖学金 &_ 4ENDIF SKIP &_ 5ENDDO?CLASS+STR(BOYS,19,2)+ STR(GIRLS,19,2) ENDDOUSESET TALK ON18.要求:从键盘输入数据A(可以是C,D,N,和L型等,通过类型判断,输出其数据类型的汉字说明(如A的值为“OK!“,那么输出应为:OK!字符型数据)。SET TALK OFFCLEARINPUT A= TO ADO CASE

17、 CASE TYPE(”A”)=”C” & 1?A,是字符型数据。 CASE TYPE(”A”)=”N” & 2?A,是数值型数据。 CASE TYPE(”A”)=”L” & 3?A,是逻辑型数据。 CASE TYPE(”A”)=”D” & 4?A,是日期型数据。ENDCASESET TALK ON19. 要求:译密码。如果输入的字符串中只要出现英文字母(无论大小写)均转换为顺序排列在该字母后的第五个字母(26个英文字母首尾相接顺序转换),如果是非英文字母一律不转换。SET TALK OFFCLEARACCEPT “” TO PL=LEN(P) & -1C=FOR I=1 TO LA= SUB

18、STR(P,I,1) & -2DO CASECASE A=a AND A=A AND A=v AND A=V AND A+CSET TALK ON20.要求:1)给定一个年份(从键盘输入数值型数据),判断它是闰年;2)闰年的条件是:能被4整除但不能被100整除,或能被100整除且能被400整除SET TALK OFFCLEAR*1*ACCEPT Y= TO Y INPUT Y= TO Y*2*IF (Y%4 AND Y!%100) AND (Y%100 AND Y!%400) IF (Y%4=0 AND Y%100!=0) OR (Y%100=0 AND Y%400=0)?Y,是闰年!ELSE

19、?Y,不是闰年!ENDIFSET TALK ON21.1)从键盘输入一串字符(口令),自动判断输入的口令是否与系统的口令(“MANAGER”)完全一致;2)是则显示相应的欢迎信息;否则有三次机会;3)输入次数在三次以内,给予重输的提示;输入次数超过三次,则显示无权使用系统的提示。SET TALK OFFCLEARC=FOR I=1 TO 3 & 1ACCEPT C+请输入口令: TO PSW IF PSW= =”MANAGER” & 2?欢迎使用本系统!EXIT & 3ENDIFC=口令输入错误,再试一次! ENDFOR & 4 IFI3 & 5?对不起,你无权使用本系统ENDIFSET TA

20、LK ON22. 要求:从文本框中输入正方形的边长,利用选项组按钮确定输入值,界面如Modify.Jpg所示command1click代码:*r=val(Thisform.Text1.Value)x1=Thisform.OptionGroup1.Valuex2=正方体if !empty(r) Do Case Case x1=1 Thisform.Label2.Caption=x2+周长=+allt(Str(6*r) Case x1=2 Thisform.Label2.Caption=x2+表面积=+allt(Str(6*r*r) Case x1=3 Thisform.Label2.Captio

21、n=x2+体积=+allt(Str(r*r*r) Endcase Else Messagebox(输入不能为空,48+0+0) Thisform.Text1.Setfocus Endifcommand2click代码:Thisform.Label2.Caption=Thisform.Text1.Value=Thisform.Text1.Setfocusoptiongroup1init代码:this.click23.要求:输出素数及素数计数,输出1 M(正整数,从键盘输入)中素数及素数计数SET TALK OFFCLEARINPUT M= TO M S=0 &_ 1FOR I=M TO 1 ST

22、EP -1 IFSS(I) &_ 2 S=S+1 ?STR(I,5) ENDIF ENDFOR &_ 3?STR(S,5)SET TALK ONFUNC SSPARA XFOR J=2 TO X-1 IF INT(X/J)=X/J EXIT &_ 4 ENDIFENDFOR IF J=X &_ 5 RETURN .T.ELSE RETURN .F.ENDIF24.要求:浏览制定的表文件内容,表文件名由用户从键盘输入,程序自动判断用户指定的表文件存在与否,存在则浏览,否则给出提示信息,SET TALK OFF DO WHILE .T. & 1 CLEAR ACCEPT 请输入要显示的表文件名(扩

23、展名略): TO TN NM=TN+”.DBF” & 2 IF FILE(NM) USE &NM & 3 BROWSE ELSE ?您所指定的表文件并不存在! ENDIF WAIT 是否还要查看其他表文件?Y/N: TO YN IF UPPER(YN)=Y LOOP & 4 ELSE EXIT & 5 ENDIF ENDDO USE SET TALK ON 25. 要求:从键盘输入A、B、C三个数值,将它们从小到大排列后输出SET TALK OFFCLEARINPUT A= TO AINPUT B= TO BINPUT B= TO C & 1 IF AB & 2T=AA=BB=TENDIF I

24、F AC & 3T=AA=CC=TENDIF IF BC & 4T=BB=CC=TENDIF?A,B,C & 5SET TALK ON26.要求:显示输出正整数M(从键盘输入)内的偶数及偶数和。SET TALK OFFCLEARINPUT M= TO MS=0FOR P=1 TO M*1*IF INT(P/2) IF INT(P/2)=p/2?P*2*S=S+1 s=s+pENDIFENDFOR?SSET TALK ON27. 要求:从键盘输入学生的学号,在“成绩”表 中计算该生的平均成绩,并说明成绩的档次(优、良、中、及格、不及格),如果该生不在表中,则提示相应的信息 SET TALK OF

25、FCLEARUSE 成绩 ACCEPT请输入学生的学号:TO XH LOCATE FOR 学号=XH &_1IF !FOUND()?查无此人!ELSEAVERAGE 成绩 TO CJ &_ 2 DO CASECASE CJ=90DC=优CASE CJ=80DC=良 CASE CJ=70DC=中CASE CJ=60DC=及格 OTHERWISE &_ 3 DC=不及格 ENDCASE &_ 4?XH,CJ,DC ENDIF &_ 5USESET TALK ON28.*求sinx的值*sinx=x-(x3)/(3!)+(x5)/5!-(x7)/(7!)+(-1)(n-1)*x(2*N-1)/(2*

26、N-1)!)*x从键盘输入,求sinx的值,当上述算式最后一项值小于或等于10(-5)时,结束运算。SET TALK OFFCLEARINPUT X= TO XS=0STORE 1 TO T1,T2,IT3=-1 do while abs(t1/t2)1E-5 &- 1 STORE 1 TO T1,T2 FOR J=1 TO 2*I-1 T1= t1*X &_ 2 T2= T2*J &_ 3 T3= -T3 &_ 4 ENDFOR I=I+1 s=s+t3*T1/T2 &_ 5ENDDO?SIN(+STR(X,6,4)+)=+LTRIM(STR(S,20,7)SET TALK ON29.*本程

27、序按部门汇总分别求出奖金,工资,扣款的值,最后再写入临时表gzhz.dbf中 CLEAR ALLSET SAFETY OFFSET TALK OFFUSE 工资表*按部门sort on 部门 to gzpx& _1USE gzpxBROWSE*把3个数值字段求和,并保存在内存变量中gz,jj,kk,为总计作准备sum 工资,奖金,扣款 to gz,jj,kk&_2*按部门分类汇总,汇总结果为每个部门作为一条记录放入汇总表文件gzhz.dbftotal on 部门 to gzhz&_3*打开汇总表文件USE gzhzbrowse&_4*尾部追加一条空记录,准备放总计APPEND BLANK*把准

28、备好的总计值放入相应字段replace 工资 with gz,奖金 with jj , 扣款 with kk&_5BROWSE*关闭打开的表文件CLEAR ALLERASE gzpx.dbfERASE gz0.dbf30.要求:输出正整数表达式(正整数有用户从键盘输入)的质子因子连乘式SET TALK OFFCLEARinput 请输入一个正整数:to x &_ 1S=STR(X,5)+=P=0FOR I=2 TO XIF x%i=0 &_ 2P=1S=S+STR(I,3)+*X= int(x/i) &_ 3I=I-1 &_ 4ENDIFENDFOR if p=1 &_ 5?LEFT(S,LE

29、N(S)-1)ELSE?STR(X,5)+ 没有因子!ENDIFSET TALK ON31.要求:输出给定的正整数值表达式的值是否完数(完数是指该数的值刚好等于其所有的质数因子)相加(包括1),如:6=1+2+3SET TALK OFFCLEARINPUT M= TO MS= 1 &_ 1 For i=2 to m-1 &_ 2 If m%i =0 &_ 3S= s+i &_ 4ENDIFENDFOR If m=s &_ 5?M,是完数!ELSE?M,不是完数!ENDIFSET TALK ON32.*通过字符串变量的操作,使得竖向显示“伟大祖国”,变成横向显示“祖国伟大”。SET TALK O

30、FF STORE 伟大祖国TO XY CLEAR N=1DO WHILE N8 ? SUBSTR(XY,N,2) * N=N+1 N=N+2ENDDO ? SUBSTR(XY,5,4)?SUBSTR(XY,1,4)RETURN33.实现下面表单功能(得补充题意) optiongroup1-init代码:this.clickthisform.text1.setfocusoptiongroup1-click代码:Thisform.Text1.Selectonentry=.t.Thisform.Text1.Value=Thisform.Text1.Inputmask=*Thisform.Edit1.readonly=.f. Thisform.Edit1.readonly=.t.If this.Value=1Thisform.Text1.Inputmask=Thisform.text1.value=可接受任何字符&在编辑框中显示 Thisform.edit1.v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论