程序改错1.docx
《程序改错1.docx》由会员分享,可在线阅读,更多相关《程序改错1.docx(46页珍藏版)》请在冰豆网上搜索。
程序改错1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
试卷编号:
6415所属语言:
VisualFoxpro所属方案:
aaa
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
〖第1题〗『程序改错』(10分)(题号:
105)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
在RSH.dbf中,查找职工赵红的工资,如果工资小于200元,
*则增加100元;如果工资大于等于200元且小于500元时,则增
*加50元;否则增加20元。
最后显示赵红的姓名和工资。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
CLEAR
USERSH
***********FOUND**********
LOCATEFOR姓名=赵红
DOCASE
CASE工资<200
REPLACE工资WITH工资+100
CASE工资<500
REPLACE工资WITH工资+50
OTHERWISE
REPLACE工资WITH工资+20
ENDCASE
***********FOUND**********
LIST姓名,工资
USE
答案:
1).LOCATE★FOR姓名=★"赵红"或LOCAFOR姓名=★'赵红'或LOCAFOR姓名=★"赵红"
2).DISP姓名,工资或?
姓名,工资或DISPLAY姓名,工资
〖第2题〗『程序改错』(10分)(题号:
153)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
表XSDA.DBF结构为:
学号(C,6),姓名(C,6),
*性别(C,2),入学成绩(N,6,2)。
*本程序实现按学号查找记录,直到输入"#"为止。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
SETTALKOFF
USEXSDA
**********FOUND**********
ACCEPT"请输入要查找的学号"ONXH
DOWHILEXH!
="#"
**********FOUND**********
LOCATEFOR学号="CJ"
IFFOUND()
?
学号,姓名,入学成绩
ELSE
?
"无此学号"
ENDIF
ACCEPT"请继续输入要查找的学号"TOXH
**********FOUND**********
ENDFOR
?
"谢谢使用本查找系统"
USE
SETTALKON
答案:
1).ACCEPT★"请输入要查找的学号"★TO★XH
2).LOCATE★FOR学号=★XH或LOCAFOR学号=★XH
3).ENDDO
〖第3题〗『程序改错』(10分)(题号:
173)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
统计RSH.dbf中职称是教授、副教授、讲师和助教的人数。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
USERSH
***********FOUND**********
STORE1TOA,B,C,D
DOWHILE.NOT.EOF()
DOCASE
CASE职称="教授"
A=A+1
CASE职称="副教授"
B=B+1
CASE职称="讲师"
C=C+1
CASE职称="助教"
D=D+1
ENDCASE
***********FOUND**********
NEXT1
ENDDO
USE
?
A,B,C,D
答案:
1).STORE★0TOA,B,C,D
2).SKIP
〖第4题〗『程序改错』(10分)(题号:
189)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
从键盘输入一个数X,当X大于0、Y的值为1;当X等于0、Y的
*值为0;当X小于0、Y的值为-1,然后输出Y的值。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
INPUT"输入一个数X:
"TOX
***********FOUND**********
IFX>0
IFX>0
Y=1
ELSE
Y=0
ENDIF
ELSE
Y=-1
ENDIF
***********FOUND**********
?
"Y=Y"
答案:
1).IF★X>=0或IF★0<=X
2).?
"Y=★",Y或"Y=★"+STR(Y,2)或"Y=★"+STR(Y)
〖第5题〗『程序改错』(10分)(题号:
48)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
在XSDB.DBF表中统计法律和中文两个系的总人数和奖学金总额。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
USEXSDB
STORE0TOR,S
DOWHILE.T.
***********FOUND**********
IF系别="法律".AND.系别="中文"
STORES+奖学金TOS
R=R+1
ENDIF
SKIP
***********FOUND**********
IF.NOT.FOUN()
EXIT
ENDIF
ENDDO
?
S,R
USE
答案:
1).IF系别="法律"★.OR.★系别="中文"或IF系别="法律"★OR★系别="中文"或IF系别="中文"★.OR.★系别="法律"或IF系别="中文"★OR★系别="法律"
2).IFEOF()
〖第6题〗『程序改错』(10分)(题号:
168)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
查找RSH.dbf中女职工的最高工资,并显示其姓名和工资。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
USERSH
MGZ=0
DOWHILE.NOT.EOF()
***********FOUND**********
IF性别="女",MGZ<"工资"
MGZ=工资
MXM=姓名
ENDIF
***********FOUND**********
CONT
ENDDO
?
MXM,MGZ
USE
答案:
1).IF性别="女"★.and.★MGZ<工资或IF性别="女"★and★MGZ<工资或IFMGZ<工资★.and.★性别="女"或IFMGZ<工资★and★性别="女"
2).SKIP
〖第7题〗『程序改错』(10分)(题号:
92)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
求X=1+2+3+…+100,并同时求出1到100之间的奇数之和Y,
*而且显示输出这两个和。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
CLEAR
STORE0TOI,X,Y
***********FOUND**********
DOWHILEI<=100
I=I+1
X=X+I
IFI/2=INT(I/2)
***********FOUND**********
EXIT
ENDIF
Y=Y+I
ENDDO
?
X,Y
RETURN
答案:
1).DOWHILEI★<100或DOWHILEI★<=★99或DOWHILI★<100或DOWHILI★<=★99
2).LOOP
〖第8题〗『程序改错』(10分)(题号:
191)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
从键盘上输入5个数,将其中奇数求和,偶数求积。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
S1=0
***********FOUND**********
S2=0
FORI=1TO5
INPUT"请输入第"+STR(I,1)+"数"TOM
***********FOUND**********
IFINT(M/2)=0
S1=S1+M
ELSE
S2=S2*M
ENDIF
ENDFOR
?
"奇数和是",S1或?
"奇数和是",S1
?
"偶数积是",S2或?
"偶数积是",S2
答案:
1).S2=1
2).IFMOD(M,2)<>0或IFMOD(M,2)#0或IFINT(M/2)★<>★M/2或IFINT(M/2)★#★M/2
〖第9题〗『程序改错』(10分)(题号:
174)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
计算S=1+3+5+…+99的程序。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
store0tos,i
***********FOUND**********
doi<=99
***********FOUND**********
i=i+1
s=s+i
enddo
?
"s=",s
答案:
1).dowhilei<=99或dowhilei<100
2).I=2+I或I=★I+2
〖第10题〗『程序改错』(10分)(题号:
41)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
通过键盘输入一个数N,计算2^2+4^4+……+N^N的值并显示输出。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
T=0
I=2
INPUT"N="toN
***********FOUND**********
DOWHILE.NOT.EOF()
T=T+I^I
***********FOUND**********
I=I+T
ENDDO
?
"TOTAL=",T
答案:
1).DO★WHILE★I<=N或DO★WHILE★N>=I
2).I=2+I或I=★I+2
〖第11题〗『程序改错』(10分)(题号:
46)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
计算并在屏幕上显示出"九九乘法表",显示格式如下
*1×1=1
*2×1=22×2=4
*3×1=33×2=63×3=9
*……
*9×1=9…9×8=729×9=81
*程序中共有2个错误,请修改下面一条语句的错误,并调试运行。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
X=1
DOWHILEX<=9
Y=1
***********FOUND**********
DOWHILEY<=9
?
?
STR(X,1)+"×"+STR(Y,1)+"="+STR(X*Y,2)+""
Y=Y+1
ENDDO
***********FOUND**********
disp
X=X+1
ENDDO
答案:
1).DO★WHILE★Y<=X或DO★WHILE★X>=Y
2).?
〖第12题〗『程序改错』(10分)(题号:
175)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
打开XSDB.DBF数据表,分别统计男、女生的人数。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
USEXSDB
STOR0TOB,G
DOWHILE.NOT.EOF()
***********FOUND**********
IF性别<>男
B=B+1
***********FOUND**********
ENDIF
G=G+1
ENDIF
SKIP
ENDDO
?
"男生人数是:
"+STR(B)
?
"女生人数是:
"+STR(G)
答案:
1).IF性别★=★"男"或IF性别<>★"女"或IF性别★#★"女"
2).ELSE
〖第13题〗『程序改错』(10分)(题号:
196)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
分别统计化学系的男、女生总人数并显示出来。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
USEXSDB
STOR0TORS1,RS2
***********FOUND**********
FINDFOR系别="化学"
DOWHILE.NOT.EOF()
***********FOUND**********
IF性别<>"男"
RS1=RS1+1
ELSE
RS2=RS2+1
ENDIF
CONT
ENDDO
?
"男生人数=",RS1
?
"女生人数=",RS2
USE
答案:
1).LOCATEFOR系别="化学"
2).IF性别★=★"男"或IF性别<>★"女"或IF性别★#★"女"
〖第14题〗『程序改错』(10分)(题号:
152)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
从键盘上输入5个数,统计其中奇数的个数。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
SETTALKOFF
A=0
FORJ=1TO5
**********FOUND**********
ACCEPT"请输入第"+STR(J,2)+"数"TOM
**********FOUND**********
IFINT(M/2)=M/2
A=A+1
ENDIF
ENDFOR
**********FOUND**********
?
奇数个数是,A
CANCEL
答案:
1).★INPUT★"请输入第"+STR(J,2)+"数"TOM或★INPU★"请输入第"+STR(J,2)+"数"TOM
2).IFINT(M/2)★<>M/2或IFINT(M/2)★!
=M/2或IF★mod(M,2)=1或IF(M★%2)=1
3).?
"奇数个数是",A或?
"奇数个数是",str(A)
〖第15题〗『程序改错』(10分)(题号:
156)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
求1+5+9+13+…+97的和
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可以更改程序的结构。
*-------------------------------------------------------
SETTALKOFF
S=0
**********FOUND**********
N=0
DOWHILEN<=97
**********FOUND**********
S=S+1
N=N+4
**********FOUND**********
ENDWHILE
?
S
SETTALKON
答案:
1).N=1
2).S=★S★+★N或S=★N★+★S
3).ENDDO或ENDD
〖第16题〗『程序改错』(10分)(题号:
57)
*-------------------------------------------------------
*【程序改错】
*-------------------------------------------------------
*题目:
计算1!
+3!
+9!
的结果并输出。
*-------------------------------------------------------
*注意:
不可以增加或删除程序行,也不可