3&&——5?"对不起,你无权使用本系统"ENDIFSETTALKON2)**本程序用于求解一元二次方程ax^2" />
文档库 最新最全的文档下载
当前位置:文档库 › 程序调试题-新

程序调试题-新

程序调试题

一、填空

1)

SET TALK OFF

CLEAR

C=""

FOR I=1 TO 3 && ——1

ACCEPT C+"请输入口令:" TO PSW

IF PSW=="MANAGER" && ——2

?"欢迎使用本系统!"

EXIT && ——3

ENDIF

C="口令输入错误,再试一次!"

ENDFOR && ——4

IF I>3 && ——5

?"对不起,你无权使用本系统"

ENDIF

SET TALK ON

2)

**本程序用于求解一元二次方程ax^2+bx+c=0

CLEAR ALL

**循环,条件恒真

DO WHILE .T.

CLEAR

INPUT " 输入一元二次方程的二次项系数a(a不能为0)=?" TO a IF a=0

LOOP

ENDIF

INPUT " 输入一元二次方程的一次项系数b=?" TO b

INPUT " 输入一元二次方程的常数项c=?" TO c

**把判别式的运算结果保存到内存变量panbie中

STORE b*b-4*a*c TO panbie

**显示一个空行

?

**判断判别结果是否小于0

IF panbie<0

**若小于0显示无实数解

?" 无实数解!"

ELSE

**判断判别结果是否等于0

IF panbie=0

**若等于0,计算并显示两个相同的实数根

?" 有两个相等的实数根x1=x2=",-b/(2*a)

ELSE

**大于0时分别计算并显示两个不等的实数根

?" 有两个不等的实数根:x1=",(-b+sqrt(panbie))/(2*a) &&_____1

?"x2=",(-b-sqrt(panbie))/(2*a) &&______2 ENDIF

ENDIF

?

**等待从键盘输入单个字符,并保存到内存变量tuichu中

WAIT " Q=退出,其它键继续......" TO tuichu

**把用户输入的单字符先转换成大写,再与大写“Q”比较

IF UPPER(tuichu)="Q" &&_____3 **若tuichu中为“Q”,清屏、退出DO WHILE 循环

CLEAR &&______4

EXIT &&______5 ENDIF

**返回到DO WHILE 继续循环

ENDDO

**返回调用程序

RETURN

3)

**本程序按部门汇总分别求出奖金,工资,扣款的值,最后再写入临时表gzhz.dbf中CLEAR ALL

SET SAFETY OFF

SET TALK OFF

USE 工资表

**按部门

SORT ON 部门TO gzpx && ______1

USE gzpx

BROWSE

**把3个数值字段求和,并保存在内存变量中gz,jj,kk,为总计作准备

SUM 工资, 奖金扣款TO gz, jj, kk &&_________2

**按部门分类汇总,汇总结果为每个部门作为一条记录放入汇总表文件gzhz.dbf TOTAL ON 部门TO gzhz &&______3

**打开汇总表文件

USE gzhz &&______4

**尾部追加一条空记录,准备放总计

APPEND BLANK

**把准备好的总计值放入相应字段

REPLACE 工资WITH gz, 奖金WITH jj, 扣款WITH kk &&_______5 BROWSE

**关闭打开的表文件

CLEAR ALL

ERASE gzpx.dbf

ERASE gz0.dbf

4)

SET TALK OFF

CLEAR

INPUT "N=" TO N

INPUT "A=" TO A &&_______ 1

STORE A TO X,Y

S=A

P=N-2

FOR I=2 TO N

INPUT "B=" TO B

S=S+B &&_______ 2

IF X

X=B &&_______ 3

ENDIF

IF Y>B &&_______ 4

Y=B

ENDIF

ENDFOR

R=S-X-Y &&________ 5

?R/P

SET TALK ON

5)

SET TALK OFF

CLEAR

ACCE "P=" TO P

L=LEN(P) && -------------1

C=""

FOR I=1 TO L

A=SUBSTR(P,I,1) && ------------2

DO CASE

CASE A>="a" AND A<="u" OR A>="A" AND A<="U"

A= CHR(ASC(A)+5) &&------------3

CASE A>="v" AND A<="z" OR A>="V" AND A<="Z"

A= CHR(ASC(A)-21) &&------------4

ENDCASE

C= C+A &&--------------5

ENDFOR

?P+"--->"+C

SET TALK ON

6)

SET TALK OFF

SET ESCAPE OFF

CLEAR

USE 学生

?"************按ESC键结束操作************"

DO WHILE .T.

ACCEPT "输入指定的班级(如:951或953):" TO BJ

LOCA TE FOR LEFT(学号,3)=BJ

IF FOUND()

SUM 奖学金TO JXJ 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*100

I=0

C=SPACE(0)

DO WHILE .T.

N=MOD(M,10) &&1--------------------

P1=SUBSTR(C1,2*N+1,2)

P2=SUBSTR(C2,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

7)

SET TALK OFF

DO WHILE .T.

CLEAR

ACCEPT "请输入表名(扩展名略):" TO TBN

IF FILE("&TBN..DBF")

USE (TBN) &&_________ 1 ELSE

W AIT "指定的表不存在!" TIMEOUT 5

LOOP

ENDIF

?"表中的全部字段名列表:"

FOR N = 1 TO FCOUNT() &&_________ 2

? FIELDS(N) &&________ 3

ENDFOR

ACCEPT "请输入显示表信息的条件表达式:" TO EXPR

BROWSE FOR &EXPR &&_________ 4 WAIT "是否还要显示其他表文件中的内容?Y/N: " TO YN

IF UPPER(YN)!= "Y "

EXIT &&_________ 5

ENDIF

ENDDO

USE

SET TALK ON

8)

SET TALK OFF

CLEAR

USE 学生

INDEX ON 学号TO INN0

?"**********各班男女奖学金总额统计************"

?"班级男同学奖学金总额女同学奖学金总额"

DO WHILE NOT EOF() &&________ 1 CLASS=LEFT(学号,3)

STORE 0 TO BOYS, GIRLS &&________ 2

DO WHILE LEFT(学号,3)=CLASS

IF 性别&&________ 3

BOYS=BOYS+奖学金

ELSE

GIRLS=GIRLS+奖学金&&________ 4

ENDIF

SKIP &&_______ 5 ENDDO

?CLASS+STR(BOYS,19,2)+ STR(GIRLS,19,2)

ENDDO

USE

SET TALK ON

9)

SET TALK OFF

INPUT "M=" TO M

S=1 &&______ 1

FOR N=2 TO M-1 &&______ 2

IF M%N=0 &&______ 3

S=S+N &&______ 4

ENDIF

ENDFOR

IF S=M &&______ 5

?M,"是完数!"

ELSE

?M,"不是完数!"

ENDIF

SET TALK ON

10)

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

11)

SET TALK OFF

INPUT "X=" TO X &&________ 1

S=STR(X,5)+"="

P=0

FOR I=2 TO X

IF X%I=0 &&_________ 2

P=1

S=S+STR(I,3)+"*"

X=X/I &&_________ 3

I=I-1

LOOP &&________ 4 ENDIF

ENDFOR

IF P=1 &&__________ 5 ?LEFT(S,LEN(S)-1)

ELSE

?STR(X,5)+" 没有因子!"

ENDIF

SET TALK ON

12)

SET TALK OFF

CLEAR

USE 成绩

ACCEPT"请输入学生的学号:"TO XH

LOCATE FOR 学号=XH &&__________1

IF !FOUND()

?"查无此人!"

ELSE

A VERAGE 成绩TO CJ FOR学号=XH &&_________ 2 DO CASE

CASE CJ>=90

DC="优"

CASE CJ>=80

DC="良"

CASE CJ>=70

DC="中"

CASE CJ>=60

DC="及格"

OTHERWISE &&__________ 3

DC="不及格"

ENDCASE &&__________ 4

?XH,CJ,DC

ENDIF &&_________ 5

USE

SET TALK ON

13)

SET TALK OFF

CLEAR

INPUT "M=" TO M

INPUT "N=" TO N

SM=M

DO JC WITH SM

SN=N

DO JC WITH SN

SMN=M-N

DO JC WITH SMN

CMN=N

DO MC WITH M,CMN

DO MC WITH M, M &&__________ 1 ?(SM+SN)/(SMN+CMN+M)

SET TALK ON

PROC JC

PARA X &&__________ 2 T=1

FOR I=1 TO X

T=T*I

ENDFOR

X=T &&__________ 3 RETURN

PROC MC

PARA X, Y &&____________ 4 T=1

FOR J=1 TO Y

T=T*X

ENDFOR

Y=T &&_________ 5

14)

SET TALK OFF

CLEAR

INPUT "M=" TO M

INPUT "N=" TO N

X=M

DO JC

SM=X &&___________ 1 X=N

DO JC

SN=X

X=M-N

DO JC

SMN=X

Z=M

Y=N

DO MC

CMN=Y

Y=M

DO MC

CMM=Y &&_________ 2 ? (SM+SN) / ((SMN+CMN+CMM)*M/N &&________ 3 SET TALK ON

PROC JC

T=1

FOR I=1 TO X

T=T*I

ENDFOR

X=T &&_________ 4 RETURN

PROC MC

T=1

FOR J=1 TO Y

T=T*Z

ENDFOR

Y=T &&__________ 5

15)

SET TALK OFF

CLEAR

INPUT "X=" TO X

S=0

STORE 1 TO T1,T2,I

T3=-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

S=S+T3*T1/T2 &&________ 5

I=I+1

ENDDO

?"SIN("+STR(X,6,4)+")="+LTRIM(STR(S,20,7))

SET TALK ON

16)

SET TALK OFF

CLEAR

INPUT "M=" TO M

S=0 &&________ 1

FOR I=M TO 1 STEP -1

IF SS(I) &&_______ 2

S=S+1

??STR(I,5)

ENDIF

ENDFOR &&_______ 3

?STR(S,5)

SET TALK ON

FUNC SS

FOR J=2 TO X-1

IF INT(X/J)=X/J

EXIT &&_______ 4 ENDIF

ENDFOR

IF J=X &&________ 5 RETURN .T.

ELSE

RETURN .F.

ENDIF

17)

SET TALK OFF

CLEAR

INPUT "A=" TO A

INPUT "B=" TO B

INPUT "C=" TO C && 1

IF A>B && 2

T=A

A=B

B=T

ENDIF

IF A>C && 3

T=A

A=C

C=T

ENDIF

IF B>C && 4

T=B

B=C

C=T

ENDIF

? A, B, C && 5

SET TALK ON

18)

SET TALK OFF

CLEAR

INPUT "A=" TO A

DO CASE

CASE TYPE("A")="C" && 1

? A,"是字符型数据。"

CASE TYPE("A")="N" && 2

? A,"是数值型数据。"

CASE TYPE("A")="L" && 3

? A,"是逻辑型数据。"

CASE TYPE("A")="D" && 4

? A,"是日期型数据。"

ENDCASE

SET TALK ON

19)

SET TALK OFF

DO WHILE .T. && 1 CLEAR

ACCEPT "请输入要显示的表文件名(扩展名略):" TO TN NM=TN+".DBF" && 2 IF FILE(NM)

USE (TN) && 3 BROWSE

ELSE

?"您所指定的表文件并不存在!"

ENDIF

WAIT "是否还要查看其他表文件?Y/N:" TO YN

IF UPPER(YN)="Y"

LOOP && 4 ELSE

EXIT && 5 ENDIF

ENDDO

USE

SET TALK ON

二、改错

20)

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

21)

SET TALK OFF

STORE "伟大祖国"TO XY

CLEAR

N=1

DO WHILE N<8

? SUBSTR(XY,N,2)

*****************

N=N+1 && 改为N=N+2

ENDDO

? SUBSTR(XY,5,4)

??SUBSTR(XY,1,4)

RETURN

22)

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

23)

SET TALK OFF

CLEAR

USE 学生

*****1*****

FOR N = 1 TO RECCOUNT() && 改为FOR N = 1 TO FCOUNT() *****2*****

FOUND(N) && 改为? FIELDS(N) ENDFOR

USE

SET TALK ON

24)

SET TALK OFF

CLEAR

INPUT "N=" TO N

INPUT "X=" TO X

S=0

*****1*****

T=0 && 改为T=1

FOR I=1 TO N

T=T*X

ENDFOR

*****2*****

?"S="+S && 改为?"S=",S

SET TALK ON

25)

SET TALK OFF

CLEAR

USE 学生

ACCEPT "请输入学生学号:" TO XH

*****1*****

SEEK学号=XH &&改为LOCA TE FOR 学号=XH

IF !EOF()

*****2*****

REPLACE ALL 奖学金WITH 10 &&改为REPLACE 奖学金WITH 奖学金+10 ?学号,姓名,奖学金

ELSE

?"没有找到!"

ENDIF

USE

SET TALK ON

26)

SET TALK OFF

CLEAR

C="零壹贰叁肆伍陆柒捌玖"

*****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 ON

27)

SET TALK OFF

CLEAR

USE 学生

LOCATE FOR 出生年月<=1971 && 改为LOCA TE FOR YEAR(出生年月)<=1971 DO WHILE !EOF()

?姓名,出生年月

*****2*****

SKIP && 改为CONTINUE

ENDDO

USE

SET TALK ON

28)

SET TALK OFF

CLEAR

*****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

?Y,"不是闰年!"

ENDIF

SET TALK ON

29)

SET TALK OFF

CLEAR

INPUT 'M=' TO M

S=0

FOR P=1 TO M

*****1*****

IF INT(P/2) &&改为IF INT(P/2)=P/2

?P

*****2*****

S=S+1 &&改为S=S+P

ENDIF

ENDFOR

?S

SET TALK ON

三、表单调试题(代码改错)

30)小写转换为大写

TEXT1的KEYPRESS代码如下:

LPARAMETERS nKeyCode, nShiftAltCtrl

XI=Thisform.text1.value

if nkeycode=13

************************

https://www.wendangku.net/doc/228659730.html,bel2.caption="输出效果为:"+allt(Lower(xi))

&&把上面改为https://www.wendangku.net/doc/228659730.html,bel2.caption="输出效果为:"+allt(UPPER(xi)) this.selstart=0

this.sellength=len(allt(this.value))

endif

31)画圆

FORM1的INIT代码:

******************

LOCAL rad && 改为public rad

this.rad=2 && 题目错误,应为rad=2,但是不要改!

thisform.timer1.interval=100

32)立体字幕

FORM1 的ACTIV ATE代码:

**********************************

https://www.wendangku.net/doc/228659730.html,bel1.Visible=.f. && 改为https://www.wendangku.net/doc/228659730.html,bel1.Visible=.T. Thisform.Timer1.InterVal=500

Thisform.Timer1.Enabled=.f.

33)文本框输入限定

Optiongroup1的Click代码:

Thisform.Text1.Selectonentry=.t.

Thisform.Text1.Value=""

Thisform.Text1.Inputmask=""

*****************************

Thisform.Edit1.readonly=.f. && 改为Thisform.Edit1.readonly=.T. If this.Value=1

Thisform.Text1.Inputmask=""

Thisform.text1.value="可接受任何字符" &&在编辑框中显示

Thisform.edit1.Setfocus &&焦点定在文本框中

Else

Thisform.Text1.Inputmask="99999999999999999999"

Thisform.Edit1.Value="只接受数字字符"+chr(13)+"Inputmask::9999999999"

Thisform.Text1.Setfocus

Endif

34) 计算正方体

Command1的Click代码:

*****************************

r=val(Thisform.Text1.Value) && 改为r=val(ALLTRIM(Thisform.Text1.Value)) x1=Thisform.OptionGroup1.Value

x2="正方体"

if !empty(r)

Do Case

Case x1=1

https://www.wendangku.net/doc/228659730.html,bel2.Caption=x2+"周长="+allt(Str(6*r))

Case x1=2

https://www.wendangku.net/doc/228659730.html,bel2.Caption=x2+"表面积="+allt(Str(6*r*r))

Case x1=3

https://www.wendangku.net/doc/228659730.html,bel2.Caption=x2+"体积="+allt(Str(r*r*r))

Endcase

Else

Messagebox("输入不能为空",48+0+0)

Thisform.Text1.Setfocus

Endif

35)信息窗

COMMAND1的CLICK代码:

cText="考试开始"

cCode=0+64

cMessage="信息窗口"

*************

Msg(cCode,cText,cMessage) && 改为MESSAGEBOX(cText,cCode,cMessage) *************

thisform.activate && 改为thisform.RELEASE

相关文档
相关文档 最新文档