程序改错69题答案.docx
- 文档编号:9896755
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:62
- 大小:32.70KB
程序改错69题答案.docx
《程序改错69题答案.docx》由会员分享,可在线阅读,更多相关《程序改错69题答案.docx(62页珍藏版)》请在冰点文库上搜索。
程序改错69题答案
三、程序改错
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
1.题目:
计算1!
+2!
+3!
+...+10!
SETTALKOFF
S=0
N=1
**********FOUND**********DO★WHILE★N<=10或DO★WHILE★10>=N
DOWHILEN>=10
STOR1TOI,P
DOWHILEI<=N
**********FOUND**********P=I*P或P=P*★I
P=P*N
I=I+1
ENDDO
S=S+P
N=N+1
ENDDO
?
S
SETTALKON
RETURN
2.题目:
计算并在屏幕上显示出"九九乘法表",显示格式如下:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
……
1×9=9 … 8×9=72 9×9=81
SETTALKOFF
CLEAR
X=1
DOWHILEX<=9
Y=1
**********FOUND**********DO★WHILE★Y<=X或DO★WHILE★X>=Y
DOWHILEY<=9
?
?
STR(X)+"×"+STR(Y)+"="+STR(X*Y)
**********FOUND**********Y=Y+1或Y=1+Y
Y=Y*1
ENDDO
?
X=X+1
ENDDO
SETTALKON
RETURN
3.题目:
根据输入的数据,计算不大于该数的奇数累加和。
SETTALKOFF
CLEAR
YN="Y"
DOWHILEUPPER(YN)="Y"
INPUT"请输入2位以内的整数"TON
STORE0TOX,Y
Z=""
DOWHILEX X=X+1 IFINT(X/2)=X/2 **********FOUND**********LOOP EXIT ELSE Z=Z+"+"+STR(X,2) **********FOUND**********Y=X+Y或Y=★Y+X Y=Y+Z ENDIF ENDDO ? Z+"="+STR(Y,4) WAIT"继续计算? (Y/N)"TOYN ENDDO ? "再见: " SETTALKON RETURN 4.题目: 通过临时数据LSH.DBF向学生数据库RS.DBF中追加数据记录。 SETTALKOFF USERS COPYTOLSH USELSH ZAP I=0 ANS="Y" **********FOUND**********DO★WHILE★UPPER(ANS)★="Y" 或DO★WHILE★LOWER(ANS)★='y'或DO★WHILE★ANS="Y DOWHILEANS="N"OR"n" CLEAR I=I+1 @10,1SAY"请输入第"+STR(I,1)+"添加记录的数据" APPEBLANK @11,1SAY"编号: "GETBH @12,1SAY"姓名: "GETXM @13,1SAY"性别: "GETXB @14,1SAY"出生年月: "GETCS @15,1SAY"婚否: "GETHF @16,1SAY"职称: "GETZC @17,1SAY"工资: "GETGZ READ WAIT"是否正确? (Y/N)"TOANS IFUPPER(ANS)<>"Y" I=I-1 ANS="Y" LOOP ENDIF WAIT"是否继续添加? (Y/N)"TOANS ENDDO USERS **********FOUND**********APPEND★FROM APPE LSH CLEAR USE SETTALKON RETURN 5.题目: 根据输入的编号查找RS数据库中的工资。 SETTALKOFF USERS YN="Y" DOWHILEUPPER(YN)="Y" CLEAR **********FOUND**********ACCEPT "请输入4位编号"TONUM WAIT "请输入4位编号"TONUM IFNUM="" ? "无效输入,请重新输入" LOOP ENDIF **********FOUND**********★LOCATE★FORNUM=BH FINDFORNUM=BH IFFOUND() @10,10SAYXM @10,40SAYGZ ELSE ? NUM,"没找到" ENDIF WAIT"是否继续(Y/N)"TOYN ENDDO USE RETURN 6.题目: 该程实现由键盘输入三个数,按从小到大的顺序排序。 SETTALKOFF INPUT"请第一个数的值: "TOA INPUT"请第二个数的值: "TOB INPUT"请第三个数的值: "TOC IFA>B T=A A=B **********FOUND**********B=T T=B ENDIF IFA>C T=A A=C C=T ENDIF IFB>C T=B B=C C=T ENDIF **********FOUND**********? A,B,C ? C,B,A SETTALKON RETURN 7.题目: 对RS.DBF数据库按职称建立职称库,分别产生以职称为教授的数据库JS.DBF,职称为副教授的数据库FJS.DBF,职称为讲师的数据库JSHI.DBF,职称为助教的数据库ZJ.DBF,并用菜单形式显示,输入1时,显示数据库JS.DBF,输入2时,显示数据库FJS.DBF…。 SETTALKOFF USERS COPYTOJSFORZC="教授" COPYTOFJSFORZC="副教授" COPYTOJSHIFORZC="讲师" COPYTOZJFORZC="助教" @10,40SAY"1: 显示教授库信息" @11,40SAY"2: 显示副教授库信息" @12,40SAY"3: 显示讲师库信息" @13,40SAY"4: 显示助教库信息" **********FOUND**********@14,40★SAY★"5: 退出" @14,40READ"5: 退出" ACCEPT"请输入要显示的职称库"TOANS CLEAR DOCASE **********FOUND**********CASEANS=★"1" CASEANS=1 USEJS LIST CASEANS="2" USEFJS LIST CASEANS="3" USEJSHI LIST CASEANS="4" USEZJ LIST CASEANS="5" EXIT ENDCASE RETURN 8.题目: 按照工资计算数据库RS中的最低工资、最高工资及平均工资,并存放到内存变量文件TJGZ.MEM中。 SETTALKOFF USERS AVERGZTOMIDGZ GOTOP MAXGZ=GZ MINGZ=GZ DOWHILENOTEOF() IFMAXGZ MAXGZ=GZ ENDIF IFMINGZ>GZ **********FOUND**********MINGZ★=GZ GZ=MINGZ ENDIF SKIP ENDDO **********FOUND**********SAVETOTJGZ.MEMALL★LIKE★M* SAVETOTJGZ.MEMALLEXCEPTM* USE RETURN 9.题目: 求X=1+2+3+…+100,并同时求出1~100之间的奇数之和,而且要显示输出这两个和。 SET TALK OFF CLEAR STORE 0 TO I,X,Y **********FOUND**********DO★WHILE★I<100或DO★WHILE★100>I DO WHILE I<=100 I=I+1 X=X+I IF I/2=INT(I/2) **********FOUND**********LOOP EXIT ENDIF Y=Y+I ENDDO ? X,Y SET TALK ON RETURN 10.题目: 在rs.dbf中,查找职工王洋的工资,如果工资小于200元,则增加100元;如果工资大于等于200元且小于500元时,则增加50元;否则增加20元。 最后显示王洋的姓名和工资。 SET TALK OFF CLEAR USE RS.DBF **********FOUND**********LOCATE★ FOR XM=★"王洋" LOCATE FOR XM=王洋 DO CASE CASE GZ<200 REPLACE GZ WITH GZ+100 CASE GZ<500 REPLACE GZ WITH GZ+50 OTHERWISE REPLACE GZ WITH GZ+20 ENDCASE **********FOUND**********DISPLAY★XM,GZ LIST XM,GZ USE SET TALK ON RETURN 11.题目: 根据姓名查询rs.dbf中的职工情况,如果有则显示该职工的内容,否则显示"查无此人,按任意键继续……",然后根据需要确定是否继续查询,若不继续查询则退出程序。 SET TALK OFF CLEAR USE RS.DBF DO WHILE .T. ACCEPT "请输入要查询的职工姓名: " TO NAME LOCATE FOR XM=NAME **********FOUND**********IF EOF() IF BOF() WAIT "查无此人,按任意键继续……" ELSE DISPLAY ENDIF WAIT "继续查询吗? (Y/N)" TO CX IF UPPER(CX)<.>'Y' **********FOUND**********EXIT LOOP ENDIF ENDDO USE SET TALK ON RETURN 12.题目: 查找rs.dbf中女职工的工资最大值,并显示其姓名和工资。 SET TALK OFF CLEAR USE RS.DBF MGZ=0 MXM=SPACE(8) **********FOUND**********SCAN★FOR★XB="女" SCAN XB="女" IF MGZ MGZ=GZ MXM=XM ENDIF ENDSCAN **********FOUND**********? MXM,MGZ ? XM,GZ USE SET TALK ON RETURN 13.题目: 统计rs.dbf中职称是教授、副教授、讲师和助教的人数。 SET TALK OFF CLEAR USE RS.DBF **********FOUND**********STORE★0TO A,B,C,D STORE 1 TO A,B,C,D DO WHILE .NOT.EOF() DOCASE CASE ZC="教授" A=A+1 CASE ZC="副教授" B=B+1 CASE ZC="讲师" C=C+1 CASE ZC="助教" D=D+1 **********FOUND**********ENDCASE ENDDO SKIP ENDDO USE ? A,B,C,D SET TALK ON RETURN 14.题目: 将0到100之间的所有能被2整除的数显示出来,并计算和显示不被2整除数之和的程序。 settalkoff clear **********FOUND**********s=0 s=1 i=0 dowhilei<=100 **********FOUND**********ifint(i/2)=(i/2) if round(i/2)=(i/2) ? ? i else s=s+i endif i=i+1 enddo ? "s=",s settalkon return 15.题目: 计算S=1! +2! +3! +4! +5! +6! +7! +8! +9! +10! 的程序 settalkoff clear store0tos store1toi,t dowhilei<=10 **********FOUND**********store★1★toj,t store0toj,t dowhilej<=i t=t*j j=j+1 enddo **********FOUND**********s=t+s或s=s+★t s=s+j i=i+1 enddo ? "s=",s settalkon return 16.题目: 先从键盘输入10个同学的英语成绩(分数从0至100),然后找出最高和最低英语成绩的程序。 settalkoff clear input"请输入英语成绩(1--100): " ton i=1 storentomin,max dowhilei<10 input"请输入英语成绩(1--100): " tom docase casem<0.or.m>100 ? "输入成绩有错,重新输入! " **********FOUND**********loop skip casemax max=m casemin>m **********FOUND**********min★=m min=n endcase i=i+1 enddo ? "最高英语成绩: ",max ? "最低英语成绩: ",min settalkon return 17.题目: 判断一个自然数是否为质数,质数为仅能被1和自身整除的整数。 SETTALKOFF CLEAR **********FOUND**********INPUT"请输入一个大于1的自然数: " TO N ACCEPT"请输入一个大于1的自然数: " TO N K=1 &&K的值为1表示所输入的自然数是质数,为0表示不是质数 J=2 DOWHILEJ **********FOUND**********IFMOD(N,J)★<>★0 IFMOD(N,J)=0 J=J+1 LOOP ELSE K=0 EXIT ENDIF ENDDO CLEAR IFK=1 ? STR(N,5)+"是质数" ELSE ? STR(N,5)+"不是质数" ENDIF SETTALKON RETURN 18.题目: 从键盘输入一段字符(包含英文字母和数字),计算所含英文字母的个数。 SETTALKOFF CLEAR AA=SPACE(40) **********FOUND**********M=0 M=1 @10,10SAY"请输入一段字符: "GETAA READ Y=LEN(TRIM(AA)) FORX=1TOY **********FOUND**********P=SUBSTR(AA,★X,1) P=SUBS(AA,1,X) IF P>'A'.AND.P<'Z'.OR.P>'a'.AND.P<'z' M=M+1 ENDIF ENDFOR CLEAR ? "包含英文字母的个数是: "+STR(M) SETTALKON 19.题目: 计算STUDENT.DBF库文件中每名考生的总分,并填入各记录的总分成绩中,再按班级对总分进行分类汇总存入SH.DBF文件中,并显示汇总后的结果。 SETTALKOFF CLEAR USESTUDENT **********FOUND**********★REPLACE★ALLZFWITHYY+SX+JSJ 或★REPLACE★ALLZFWITHYY+JSJ+SX 或★REPLACE★ALLZFWITHSX+YY+JSJ 或★REPLACE★ALLZFWITHSX+JSJ+YY 或★REPLACE★ALLZFWITHJSJ+SX+YY 或★REPLACE★ALLZFWITHJSJ+YY+SX REPLZFWITHYY+SX+JSJ INDEXONBJTOBJ **********FOUND**********★TOTAL★ONBJTOSH★FIELDS★ZF SORTONBJTOSHFIELDSZF USE SH LIST USE SETTALKON 20.题目: 计算STUDENT.DBF数据库中各条记录总分,并从尾部向头部方向依次显示总分大于等于240分的记录。 SETTALKOFF CLEAR USESTUDENT REPLALLZFWITHYY+SX+JSJ GOBOTTOM **********FOUND**********DO★WHILE★ .NOT.★BOF★() DOWHILE .NOT.EOF() IFZF>=240 ? XM,ZF WAIT"按任意键继续查询……" ENDIF **********FOUND**********SKIP★-1 SKIP ENDDO CLOSEALL SETTALKON 21.题目: 打开数据库XSDB.DBF,统计学生总人数,计算机平均成绩,英语平均成绩,奖学金总额等,然后在该数据库后追加一个空记录,将系别字段添入"统计结果",将姓名字段填入统计的总人数、英语和计算机字段添入其平均成绩、奖学金字段填入统计的总金额。 SETTALKOFF CLEAR USEXSDB COUNTORS **********FOUND**********AVERAGE★计算机,★英语TOJSJ,YY AVERAGE计算机TOJSJ,英语TOYY SUM奖学金TOJXJ APPENDBLAN REPLACE系别WITH "统计结果" REPLACE计算机WITHJSJ,英语WITHYY,奖学金WITHJXJ **********FOUND**********REPLACE★姓名WITH★STR(RS,3) REPLACE姓名WITHRS USE RETURN 22.题目: 通过选择菜单中的操作,根据输入的记录号对库文件XSDB.DBF中指定记录进行相应的操作。 USEXSDB DOWHILE.T. ? "1-插入记录 2-修改记录 3-显示记录" ? "4-逻辑删除 5-恢复记录 0-结束程序" INPUT"请选择(1,2,3,4,5,0): "TOANS **********FOUND**********IF★ANS>0★.AND.★ANS<=5★ 或IF★ANS>0★.AND.★5>=ANS★ 或IF★0 或IF★0 IFANS>0.OR.ANS<=5 INPUT"请输入记录号: "TOJLH GOJLH ENDIF DOCASE CASEANS=1 INSE CASEANS=2 EDIT CASEANS=3 DISP CASEANS=4 DELE CASEANS=5 **********FOUND**********RECALL PACK OTHERWISE EXIT ENDCASE ENDDO USE RETURN 23.题目: 修改XSDB.DBF中的数据,先接收用户输入的记录号,然后定位到该记录,修改计算机、英语、奖学金三个字段的值,通过用户确认继续修改或退出。 USEXSDB DOWHILE.NOT.EOF() CLEAR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 改错 69 答案