浙江省计算机2级VFP程序调试真题集
程序填空(改错)题:
在考生文件夹的paper 子文件夹中,已有文件Modify.prg,请自己打开文件,在标记&&之前填写所缺代码、调试、保存,并完成以下功能
1、显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录
SET TALK OFF
CLEAR
INPUT "M=" TO M
N=M
DO WHILE INT(N)!=N &&______ 1
N=N*10
ENDDO
STORE MOD(N,10) TO D,X &&______ 2
DO WHILE N>0 &&_______ 3
R= MOD(N,10) &&______ 4
IF R>D
D=R
ENDIF
IF R
X=R
ENDIF
N= INT(N/10) &&_______ 5
ENDDO
?M,"中位值最大的数码是:"+STR(D,1)+",最小的数码是:"+STR(X,1)+" 。"
SET TALK ON
2.已知:在考生目录的Paper子目录中已有学生表(学生.dbf)
(学号,姓名,性别,出生年月,简历,奖学金,照片)
要求:
显示“学生”表中的全部字段名。
SET TALK OFF
CLEAR
USE 学生
*****1*****
FOR N = 1 TO RECCOUNT() FCOUNT()
*****2*****
FOUND(N) ?FIELDS(N)
ENDFOR
USE
SET TALK ON
3.将给定的正整数数值表达式的值分解因子,并输出各个质数因子。如24的因子有:2、2、2和3
SET TALK OFF
SET ESCAPE 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 ON
4.要求:显示输出“学生”表中的1971年或以前出生的学生姓名和出生年月
SET TALK OFF
CLEAR
USE 学生
*****1*****
LOCATE FOR 出生年月<=1971 {^1971-12-31}
DO WHILE !EOF()
?姓名,出生年月
*****2*****
SKIP continue
ENDDO
USE
SET TALK ON
5.求当1!+3!+5!+…+n!的值不超过10的20次幂时的临界值及n的值。
SET TALK OFF
CLEAR
*****1*****
S=0 S=1
STORE 1 TO T,N
DO WHILE S<=1E+20
T=T*(N+1)*(N+2)
S=S+T
*****2*****
N=N+1 N=N+2
ENDDO
?"S=",S-T
?"N=",N-2
SET TALK ON
6.1)设计一个显示不同颜色和半径的圆的表单
2)利用计时器时间产生半径递增的圆,其颜色是随机产生的
3)在单击“暂停”时停止画圆,此时该命令按钮变成“画圆”,再次单击“画圆”时,继续前面的画圆过程。
******************LOCAL rad public rad
this.rad=2 rad