vfp程序改错.docx
《vfp程序改错.docx》由会员分享,可在线阅读,更多相关《vfp程序改错.docx(37页珍藏版)》请在冰豆网上搜索。
vfp程序改错
vfP程序改错
-CAL-FENGHAI-(2020YEAR-YICAI)」INGBIAN
VisualFoxpro程序改错
[(第1题》(练习题所在文件夹:
163)
*题目:
该程序完成口令检验功能。
输入三次不正确退出。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
CLEAR
assl=,,AbCdEfH
TT=1
DOWHILETT<4
@10,20SAY"谙输入口令:
1'
SETCONSOLEOFF
ACCEPTTOass
SETCONSOLEON
IFassl=ass
CLEAR
"欢迎使用本系统!
"
LOOP
ELSE
♦♦♦♦♦*****♦♦
TT=TT-1
CLEAR
"口令错,按任意键再输入一次!
"
WAIT11u
ENDIF
ENDDO
RETURN
答案:
1).IFUPPER(assl)==UPPER(ass)或IFUPPER(assl)==UPPER(ass)
2).EXIT
3).TT=TT+1或TT=1+TT
K第4题》(练习题所在文件夹:
500)
*题目:
是一个职工信息文件,其中包含编号(C5)、姓名
*(C8)、性别(C2)、政治面貌(C4)、出生日期(D8)等字
*段。
性别用字符串"男"或"女"表示,政治而貌用字符串"
*党员“、"团员"或“群众"表示。
此文件已按政治而貌建立
*了索引,索引文件名是。
*程序功能是:
显示输出所有政治面貌为"群众“的女职工的
*姓名和岀生日期(每行输岀一个职工的信息)在屏幕上車注意:
不可以增加或删除程序行,也不可以更改程序的结构。
settalkoffclear
h***hfounD京
USEZHG
SEEK”群众■'
men**
DOWHILE!
EOF()
IF性别="女"
DISP姓名,出生日期**♦♦*******PQ(J[\Jp♦♦*♦♦*♦♦♦♦
ENDD
SKIP
ENDDO
USE
SETTALKON
答案:
1).USEZHGINDEXZHG_ZHZH
2).DOWHILE政治而貌="群众"或DOWHILE政治而貌='群众'或DOWHILE政治面貌=[群众]
3).ENDIF
K第5题》(练习题所在文件夹:
105)
*题目:
在中,查找职工赵红的工资,如果工资小于200元,
*则增加100元:
如果工资大于等于200元且小于500元时,贝I」增
*加50元:
否则增加20元。
最后显示赵红的姓名和工资。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
CLEAR
USERSH
*♦♦♦*******pQ|J|^p*******♦♦♦
LOCATEFOR姓名二赵红
DOCASE
CASE工资v200
REPLACE工资WITHIg+100
CASE工资v500
REPLACE工资WITHI资+50
OTHERWISE
REPLACE工资WITH工资+20
ENDCASE
LIST姓名工资
USE
答案:
1).LOCATEFOR姓名=”赵红,,或LOCAFOR姓需='赵红,或LOCAFOR姓名二11赵红,,或LOCATEFOR姓名二[赵红]或LOCAFOR姓名二[赵红]或LOCATEFOR姓名赵红’
2)・DISP姓需,工资或姓名,工资或DISPLAY姓爼,工资
K第6题》(练习题所在文件夹:
174)
車题目:
计算S=2+4+6+...+98+100的程序。
車注意:
不可以增加或删除程序行,也不可以更改程序的结构。
store0toszi
men**
doi<=99
♦*****pQU^|Q******♦♦♦*i=i+l
s=s+i
enddo
"s=",s
答案:
1).dowhilei<=99或dowhilei<100或dowhilei<=98或dowhilei<99
2).1=2+1或1=1+2或STORI+2TOI
K第7题》(练习题所在文件夹:
520)
*题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,
*还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉
*一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一
*半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
*求第一天共摘了多少。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
settalkoff
clear
DAY=9
♦♦♦♦*******pQ|J|^p*******♦♦♦
X2=0
DOWHILEDAY>0
h***hfounD京
Xl=(X2+l)/2
X2=X1
men**
DAY=DAY+1
ENDDO
”第一天摘下",XI,"个桃子”
SETTALKON
答案:
1).X2=l
2).X1=(X2+1)*2
3).DAY=DAY-1
[(第8题》(练习题所在文件夹:
175)
車题目:
打开数据表,分别统计男、女生的人数。
可主意:
不可以增加或删除程序行,也不可以更改程序的结构。
USEXSDB
STOR0TOB,G
DOWHILE.()
men**
IF性别v>男
B=B+1
♦*****pQU^|Q******♦♦♦*
ENDIF
G=G+1
ENDIF
SKIP
ENDDO
"男生人数是:
"+STR(B)
"女生人数是:
"+STR(G)答案:
1).IF性别』男”或IF性别v>”女”
2).ELSE
K第9题U(练习题所在文件夹:
188)
*题目:
显示中每个学生的姓划、计算机成绩和等级:
等
*级划分如下:
计算机成绩大于等于90显示"优秀":
60到89
*(包括60和89)之间显示”及格”;60分以下显示“补考"。
*如显示:
张丽娜90优秀。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
USEXSDB
DOWHIL.NOT.EOF()
♦♦♦♦*****#*PQ|J|^p******♦♦♦*
LIST姓名,计算机
DOCASE
CASE计算机>=90
'优秀・
CASE计算机>=60
'及格•
OTHERWISE
•补考・
ENDCASE
GONEXT
ENDDO
USE
答案:
1).姓名,计算机或DISPLAY姓名,计算机
2).SKIP或SKIP1
[(第10题》(练习题所在文件夹:
191)
*题目:
从键盘上输入5个数,将其中奇数求和,偶数求积。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
Sl=0
men**
S2=0
FOR1=1TO5
INPUT”请输入第”+STR(lJ)+"数”TOM
♦♦♦♦*******PQ(J[\Jp♦♦*♦♦*♦♦♦♦
IFINT(M/2)=0S1=S1+M
ELSE
S2=S2*M
ENDIF
ENDFOR
"奇数和是",si
"偶数积是“,S2
答案:
1).S2=l或STOR1TOS2
2).IFMOD(M,2)<>0或IFMOD(M,2)#0或IFINT(M/2)<>M/2或IFINT(M/2)#M/2或IFM%2
<>0或IFM%2!
=0或IFM%2#0
K第11题U(练习题所在文件夹:
182)
*题目:
在中查找学生徐秋实的记录,如果找到则将该记录
*的系别、姓爼,两科科目名称和对应的成绩显示在屏幕上,否则
*显示:
"查无此人!
“。
可主意:
不可以增加或删除程序行,也不可以更改程序的结构。
USEXSDB
h***hfounD京
FINDFOR姓名二11徐秋实,,
IF.()
'‘查无此人r
ELSE
♦*****pQU^|Q******♦♦♦*
系别,姓名「计算机J+计算机""英语八英语
ENDIF
USE
RETURN
答案:
1).LOCATEFOR姓名二”徐秋实”或LOCATEALLFOR姓名二”徐秋实”
2).系别,姓名,"计算机="+STR(计算机),"英语="+STR(英语)
或系别,姓名「计算机*计算机,”英语比英语
K第13题U(练习题所在文件夹:
161)
*题目:
从键盘输入一个表名,打开该表文件,移动记录指针到
*文件头,输出当前记录号;在移动记录指针到文件尾,
*输出当前记录号。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
ACCEPTTOA
FINDA
GOTOP
n*n*FouNDm****
NEXT
RECNO()
GOBOTTOM
NEXT-1
RECNO()
USE
SETTALKON
答案:
1).USE(A)或USE&A
2).SKIP-1
3).SKIP或SKIP1
K第14题H(练习题所在文件夹:
162)
*题目:
从键盘输入一个表文件名,打开该表,査找"姓划"是
*"张东"的记录,并显示该记录,最后输岀“姓爼"是"张
*东"的记录个数。
(设被打开的表中有固泄字段”姓名“)
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
ACCEPTTOA
USE&A
N=1
SCANFOR姓名二,,张东,,
found
LIST
N=N+1
ENDSCAN
♦*♦♦****♦♦
记录个数是,N
USE
SETTALKON
答案:
1).N=0或StoreOToN
2).DISPLAY或DISP
3)・%己录个数是舄N或”记录个数是:
tr(N)
K第16题H(练习题所在文件夹:
92)
琢题目:
求X=1+2+3+—+100,并同时求出1到100之间的奇数之和Y,*而且显示输出这两个和。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
CLEAR
STORE0TOIzXzY
DOWHILEl<=100
X=X+I
IFI/2=INT(l/2)
men**
EXIT
ENDIF
Y=Y+I
ENDDO
X,Y
RETURN
答案:
1).DOWHILEl<100或DOWHILEl<=99
2).LOOP
K第17题》(练习题所在文件夹:
501)
*题目:
是一个学生信息文件,包含学号(C8)、
*姓名(C8)、性别(C2)、政治而貌(C4)、班级(C5)
*等字段:
其中性别用字符串"男"或"女"表示,政治而貌
*用字符串"党员"、”团员"或'群众"表示。
*程序的功能是:
显示输出所有政治面貌为”群众“的男生姓
*名和班级。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
settalkoffclear
USESTUDENT
LOCATEFOR政治而貌二“群众,'
DOWHILE・not・FOUND()
IF性别•女"
CONTINUE
♦♦♦♦*******PQU|^|p******♦♦♦*break
ENDIF
姓名,班级
skip
ENDDO
USE
SETTALKON
答案:
1).DOWHILEFOUND()或DOWHIL.()
2).LOOP
3).CONTINUE
XK第19题H(练习题所在文件夹:
148)
*题目:
从键盘上输入任意一串字符,判断是否回文。
♦例如:
MUM.456654,MADAM
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
ACCEPTl,A=uTOA
L=LEN(A)
FLAG=1
1=1
found
DOWHILEFLAG=1ORK=INT{L/2)
IFSUBS(A」J)v>SUBS(A丄・IJ)
FLAG二0
ENDIF1=1+1
ENDDO
*********
IFFLAG=O
”是回文"
ELSE
"不是回文"
ENDIF
CANCEL
答案:
1).DOWHILEFLAG=1ANDK=INT(L/2)
2).IFSUBSTR(A儿1)<>SUBSTR(A丄・l+l」)
3).IFFLAG=1
K第20题》(练习题所在文件夹:
189)璟题目:
从键盘输入一个数X,当X大于0、Y的值为仁当X等于SY的*值为0:
当X小于0、Y的值为-1,然后输岀Y的值。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
INPUTH输入一个数X:
"TOX
*********
IFX>0
IFX>0
Y=1
ELSE
Y=0
ENDIF
ELSE
Y=-l
ENDIF
,Y=Yn
答案:
1).IFX>=0或IFOv二X
2).IIY=,,/Y或,,Y=,,+STR(Y)
K第22题H(练习题所在文件夹:
505)
*题目:
计算并显示输岀数列VV2,1AV16…的
*前10项之和。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
settalkoff
clear
Y=0
STORE1TOl,C
DOWHILEl<=10
Y=Y+(-l)A(C+l)/l
men**
l=-l*2
C=C+1
ENDIF
"数列前10项之和为:
",Y
SETTALKON
RETURN
答案:
1).DOWHILEC<=10或DOWHILEC<11
2).IW2或l=-l*(-2)
3).ENDD或ENDDO
K第23题》(练习题所在文件夹性56)
車题目:
求1+5+9+13+—+97的和。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
S=0
N=0
DOWHILEN<=97
♦♦♦♦♦*****pQJ^JQ#*4l*****♦♦
S=S+1
N二N+4
ENDWHILE
S
SETTALKON
答案:
1).
N=1或STOR1TON
2).
S二S+N或S=N+S
3).
ENDDO或ENDD
K第24题H(练习题所在文件夹:
165)
車题目:
求1到10之间奇数的阶乘和t=l!
+3!
+5!
+・・・+9!
車注意:
不可以增加或删除程序行,也不可以更改程序的结构。
found
t=l
P=1
♦♦♦♦****♦♦
Dowhilel>10
P=p*l
★mid**FOUND
Ifint(i/2)=i/2
T=t+p
Endif
1=1+1
Enddo
答案:
1).
t=0
2).
dowhilei<10
3).
!
=或<>或#
[(第25题》(练习题所在文件夹江68)
車题目:
查找中女职工的最高工资.并显示其姓需和工资。
可主意:
不可以增加或删除程序行,也不可以更改程序的结构。
♦***♦♦♦*
OPENRSH
MGZ=O
DOWHILE.()
men**
IF性别•女l,/MGZMGZ二工资
MXM二姓名
ENDIF**♦♦*******PQ(J[\Jp♦♦*♦♦*♦♦♦♦
CONT
ENDDO
MXM.MGZ
USE
答案:
1).
USERSH
2).
IF性别='•女".and.MGZv工资
3).
SKIP
x[(第26题U(练习题所在文件夹:
154)
*题目:
以下程序输岀如下图所示的图形。
*!
$!
*!
$!
$!
$
*!
$!
$!
*!
$!
$!
$!
$!
$
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
1=4
DOWHILEl<10
★mid**FOUND
IFINT(I/2)=IZ2
1=1*2
ELSE
1=1-1
ENDIF
FORJ=1TOI
found
IFJ/2=O
ii|n
ELSE
ENDDO
ENDFOR
ENDDO
RETURN
答案:
1).IFINT(l/2)ol/2或IFM0D(l,2)=l或IFI%2=1
2).IFJ%2=1或IFmod(j,2)=l
3).ENDIF或ENDI
K第27题》(练习题所在文件夹:
190)
*题目:
计算岀1到50以内(包含50)能被2和3整除的数之和。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
STOR0TOXZY
DOWHILENOTEOF()
X=X+1
DOCASE
men**
CASEMOD(X,2)=0orMOD(X/3)=0
Y=Y+X
CASEX<=50
♦♦♦♦*******pQU^|Q******♦♦♦*
X=X+1
CASEX>50
EXIT
ENDCASE
ENDDO
答案:
1).DOWHILE.T.
2).and
3)・LOOP
K第29题H(练习题所在文件夹:
196)
*题目:
分别统汁化学系的男、女生总人数并显示出来。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
USEXSDB
STOR0TORS1,RS2
FINDFOR系别J化学,,
DOWHILE.()
IF性别o"男
RS1=RS1+1
ELSE
RS2=RS2+1
ENDIF
CONT
ENDDO
"男生人数=",RS1
"女生人数=",RS2
USE
答案:
1).LOCATEFOR系别=”化学,•或LOCATEALLFOR系别二”化学,,
2).IF性别i男”或IF性别女,,
K第30题U(练习题所在文件夹:
187)
*题目:
从键盘输入十个非零整数,统计能被3整除的数的个数。
可主意:
不可以增加或删除程序行,也不可以更改程序的结构。
STORE0TOl,A
h***hfounD京
DOWHILEl<=10
INPUTHiW输入一个整数TON
K第31题H(练习题所在文件夹:
152)
*题目:
从键盘上输入5个数,统计其中奇数的个数。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
A=0
FORJ=1TO5
found
ACCEPT%青输入第,,+STR(J/2)+”数,,TOM
IFINT(M/2)=M/2
A=A+1
ENDIF
ENDFOR
**********匚ClIMR**********
奇数个数是,A
CANCEL
答案:
1).INPUT%青输入第”+STR(J,2)+'数”TOM
2).IFINT(M/2)#M/2或IFINT(M/2)!
=M/2或IFINT(M/2)<>M/2
3)・嘴数个数是蔦A或筍数个数是:
str(A)
K第32题H(练习题所在文件夹:
15刀
养题目:
求2!
+4!
+6!
+—+10!
的和。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
S=0
♦*♦****♦♦♦
T=0
FORN=2TO10
T=T*(T-1)
IFN%2=0
S二S+N
ENDIF
ENDFOR
S
答案:
1).T=1
2).T=T*N或T二屮T
3).S=S+T或S=T+S
[(第33题》(练习题所在文件夹:
46)
1•■题目:
计算并在屏幕上显示出"九九乘法表",显示格式如下
*1X1=1
*2X1=22X2=4
*3X1=33X2=63X3=9
*9X1=9…9X8=729X9=81
*程序中共有2个错误,请修改下而一条语句的错误,并调试运行。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
X=1
DOWHILEX<=9
Y=1
DOWHILEY<=9
STR(X/l)+nX,,+STR(Xl)+,,=,,+STR(X*X2)+,1"
Y=Y+1
ENDDO
disp
X=X+1
ENDDO
答案:
1).DOWHILEY<=X或DOWHILEX>=Y
2)・
K第34题》(练习题所在文件夹江53)
*题目:
表结构为:
学号(C,6),姓名(C,6),
*性别(C,2),入学成绩(N,6,2)。
*本程序实现按学号査找记录,直到输入"护为止。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
SETTALKOFF
USEXSDA
★mid**FOUND
ACCEPT1储输入要查找的学号,'ONXH
DOWHILEXH!
=l,#H
LOCATEFOR学号=,,CJN
IFFOUND()
学号,姓名,入学成绩
ELSE
"无此学号"
ENDIF
ACCEPT"请继续输入要查找的学号"TOXH
♦♦♦♦******PQ|J|^Q**♦****♦♦♦
ENDFOR
"谢谢使用本查找系统“
USE
SETTALKON
答案:
1).ACCEPT"请输入要查找的学号"TOXH或ACCEPT诵输入要査找的学号’TOXH或
ACCEPT[请输入要査找的学号]TOXH
2).LOCATEFOR学号二XH或LOCAFOR学号二XH
3).ENDDO
K第35题U(练习题所在文件夹:
166)
*题目:
计算出1-30以内(包含30)能被5整除的数之和。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
CLEAR
SETTALKOFF
X=0
♦♦♦♦******PQ|J|^Q**♦*****♦♦
Y=1
DOWHILE.T.
X=X+1
DOCASE
CASEMOD(X,5)=0
Y=Y+X
CASEX<=30
♦****♦♦
EXIT
CASEx>30
LOOP
ENDCASE
ENDDO
Y
SETTALKON
答案:
1).Y=0或STOREOTOY
2).LOOP
3).EXIT或Quit
K第37题》(练习题所在文件夹:
186)
*题目:
接收键盘输入的任意5个整数(不超过3位数),找出其中的最
*大数并显示。
程序中共有2个错误。
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
INPUT11请输入第一个数TTOX
STOREXTOMA
N=5
h***hfounD京
DOWHILEN>=5
INPUTH请输入下一个数TOX
IFMAMA=X
ENDIF
N=N-1
ENDDO
11最大数=,,+SUBS(M