全国计算机二级FOX语言上机改错题题型
发布时间:2006-10-14 8:53:31   收集提供:gaoqian
 第1题
ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名(C 8)、性别(C 2)、政治面目(C 4)、出生日期(D 8)等字段。性别用字符串"男"或"女"表示,政治面目用字符串"党员"、"团员"或"群众"表示。此文件已按政治面目建立了索引,索引文件名是ZHG_ZHZH.IDX。
程序MODI1.PRG功能是:显示输出所有政治面目为"群众"的女职工的姓名和出生日期(每行输出一个职工的信息);程序中有两处错误,请加以改正。
MODI1.PRG
SET TALK OFF
*******************found********************
USE ZHG &&正确的是 USE ZHG INDEX ZHG_ZHZH
SEEK "群众"
*******************found********************
DO WHILE !EOF() &&正确的是 DO WHILE 政治面目="群众"
 IF 性别="女"
 ? 姓名,出生日期
 ENDIF
 SKIP
ENDDO
USE
SET TALK ON


 第2题
STUDENT.DBF是一个学生信息文件,包含学号(C 8)、姓名(C 8)、性别(C 2)、政治面目(C 4)、班级(C 5)等字段;其中性别用字符串"男"或"女"表示,政治面目用字符串"党员"、"团员"或"群众"表示。
程序MODI1.PRG的功能是:显示输出所有政治面目为"群众"的男生姓名和班级;程序中有两处错误,请加以改正。
说明:程序中*****found*****的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序。
MODI1.PRG
SET TALK OFF
USE STUDENT
LOCATE FOR 政治面目="群众"
*******************found********************
DO WHILE .NOT.FOUND() &&正确的是DO WHILE FOUND()
 IF 性别="女"
 CONTINUE
*******************found********************
 BREAK &&正确的是LOOP
 ENDIF
 ? 姓名,班级
 CONTINUE
ENDDO
USE
SET TALK ON

 第3题
STUDENT.DBF是一个学生信息文件,其中包含学号(C 8)、姓名(C 8)等字段,而且已按学号建立了索引,索引文件名是STUDENT.IDX;文件SCORE.DBF是成绩文件,其中包含学号(C 8)、课程名(C 20)、成绩(N 5.1)等字段,而且已按谭程名建立了索引,索引文件名是SCORE.IDX。
程序MODI1.PRG的功能是:按课程分组显示输出所有的成绩信息,每个成绩输出一行,包括学生的姓名和成绩;程序中有两处错误,请加以改正。
 MODI1.PRG
SET TALK OFF
SELECT 5
USE STUDENT INDEX STUDENT
SELECT 0
USE SCORE INDEX SCORE
*******************found********************
SET RELATION TO STUDENT INTO 学号 &&正确的是:SET RELATION TO 学号 INTO STUDENT
GO TOP
DO WHILE !EOF()
 COURSE=课程名
 ? "课程:",课程名
 DO WHILE COURSE=课程名
*******************found********************
 ? STUDENT->姓名,成绩 &&正确的是:
 SKIP
 ENDDO
ENDDO
USE
SELECT STUDENT
USE
SET TALK ON

第4题
STUDENT.DBF是一个学生信息文件,其中包含学号(C 8)、姓名(C 8)等字段,而且已按学号建立了索引,索引文件名是STUDENT.IDX;文件SCORE.DBF是成绩文件,其中包含学号(C 8)、课程名(C 20)、成绩(N 5.1)等字段,而且已按课程名建立了索引,索引文件名是SCORE.IDX。
程序MODI1.PRG的功能是:显示输出选修"计算机基础"课程的学生姓名和成绩,每个成绩的信息输出一行,包括学生的姓名和成绩;程序中有两处错误,请加以改正。
 MODI1.PRG
SET TALK OFF
SELECT 3
USE STUDENT INDEX STUDENT
SELECT 4
USE SCORE INDEX SCORE
SEEK "计算机基础"
*******************found********************
DO WHILE !EOF() &&正确的是:DO WHILE 课程名="计算机基础"
 SELECT STUDENT
*******************found********************
 SEEK 学号 &&正确的是 SEEK SCORE->学号
 ? 姓名+":"
 SELECT SCORE
 ?? 成绩
 SKIP

第5题
ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名(C 8)、性别(C 1)、基本工资(N 8.2)等字段;其中的性别用代码"M"表示男、"F"表示女,此文件已按基本工资建立了索引,索引文件名是ZHG_GZ.IDX。
程序MODI1.PRG功能是:按基本工资由高到低的顺序显示输出 所有职工的姓名、性别和基本工资,每行输出一个职工的信息,其中性别须输出汉字"男"或"女"。程序中有两处错误,请加以改正。
 MODI1.PRG
SET TALK OFF
USE ZHG INDEX ZHG_GZ
*******************found********************
GO TOP &&正确的是:GO BOTTOM
DO WHILE .NOT.BOF()
 ? 姓名+" "
 ?? IIF(性别<>"M", "女","男")
 ?? " ",基本工资
*******************found********************
 SKIP &&正确的是:SKIP -1
ENDDO
USE
SET TALK ON
第6题
程序MODI1.PRG功能是:计算并显示输出数列
1,-1/2, 1/4, -1/8, 1/16 … 的前N项之和,其中N通过键盘输入。程序中有两处错误,请加以改正。
说明:程序中*****found*****的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。
MODI1.PRG
SET TALK OFF
INPUT "请输入要计算的项数:" TO N
Y=0
STORE 1 TO I,C
*******************found********************
DO WHILE C Y=Y+1/I
*******************found********************
 I=I*2 &&正确答案为 I=-(I*2)
 C=C+1
ENDDO
? "数列前",N,"项之和为:",Y
SET TALK ON
RETURN
第7题
ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名(C 8)、性别(C 1)、出生日期(D 8)等字段;其中的性别用字符串"男"或"女"表示。此文件已按出生日期建立了索引,索引文件名是ZHG_SR.IDX。
程序MODI1.PRG功能是:按年龄由小到大的顺序显示输出所有"男"职工的编号、姓名和出生日期; 程序中有两处错误,请加以改正。
 MODI1.PRG
SET TALK OFF
SET DATE ANSI
*******************found********************
USE ZHG INDEX ZHG &&正确的是USE ZHG INDEX ZHG_SR
SET FILTER TO 性别="男"
GO BOTTOM
*******************found********************
DO WHILE !EOF() &&正确的是DO WHILE .NOT.BOF()
 ? 编号,姓名,出生日期
 SKIP -1
ENDDO
USE
SET TALK ON


 第8题
给定程序MODI1.PRG 的功能是:识别用户密码,保护系统不被非授权用户使用。该程序给用户三次输入密码的机会(要求输入的密码不显示在屏幕上),超过三次,系统退出。用户密码保存在P1DB数据库中。修改调试如下程序,使之能正确运行。
 改错要求:程序中共有三处错误,请修改*****found****下面的错误,并调试运行。
 注意:要求在原来位置修改,不得增加或删减程序行。
set talk off
set exact on
clear
k=0
do while k<3
@ 10,10 say "请输入密码: "
*******************found********************
set safety on &&参考答案:set console off
accept to mima
*******************found********************
set safety off &&参考答案:set console on
use p1db
locate all for trim(code)==mima
*******************found********************
if code=&mima &&参考答案:if .not. eof()
 clear
 @ 10,10 say "你好,欢迎光临!"
 wait "请按任意键,进入系统开始执行程序"
 exit
else
 @ 10,10 say "您输入的密码不对"
 n=80000
 do while n>=1
 n=n-1
 enddo
endif
k=k+1
enddo
if k>=3
@ 15,10 say "对不起,您不能使用本系统"
n=80000
 do while n>=1
 n=n-1
 enddo
endif
set talk on
return

 第9题

给定程序MODI1.PRG 的功能是:用户在P2DB数据库中选择并修改数据库记录,然后根据用户的意愿存入或放弃修改。修改调试如下程序,使之能正确运行。
 改错要求:程序中共有三处错误,请修改*****found****下面的错误,并调试运行。
 注意:要求在原来位置修改,不得增加或删减程序行。

set talk off

dimension unchange(3)

store "y" to ans,conti

use p2db

count to rno

r=1

do while conti="y"

 clear

 @ 2,2 say "修改第几条记录?" get r range 1,rno

 read

 go r

**********************found************************

 store to unchange &&参考答案:scatter to unchange

 @ 4,10 say "学号" get unchange(1) picture "999999"

 @ 6,10 say "姓名" get unchange(2)

 @ 8,10 say "所属z系" get unchange(3)

**********************found************************

 store to unchange &&参考答案:read

 @ 10, 2 say "准备存入你修改过的记录吗?(Y/N) " get ans

 read

 if upper(ans)="Y"

**********************found*************************

 append from to unchange &&参考答案:gather from unchange

 endif

 @ 12,2 say "继续吗?" get conti

 read

 if upper(conti)<>"Y"

 exit

 endif

enddo

set talk on

return


 第10题
给定程序MODI1.PRG的功能是:根据银行流水帐,同时修改银行和个人帐目。P3DB1为银行数据库,包括:支行号,名称,现有资金三个字段。P3DB2是个人数据库,包括:帐号,姓名,密码,余额四个字段。P3DB3是银行流水帐数据库,包括:帐号,支行号,日期,金额,存取,其中“存取”字段为逻辑型数据,存入其值为真T,取出其值为假F。另外,假设所有银行的初始资金为800000元,所有个人的初始资金为20000元,修改调试如下程序,使之能正确运行。
 改错要求:程序中共有三处错误,请修改*****found****下面的错误,并调试运行。
 注意:要求在原来位置修改,不得增加或删减程序行。

set talk off
set safety off

sele 1

use p3db1

replace all 现有资金 with 800000

index on 支行号 to id1

sele 2

use p3db2

replace all 余额 with 20000

index on 帐号 to id2

sele 3

use p3db3

set relation to 支行号 into A

**************found****************

 set relation &&参考答案:set relation to 帐号 into B ADDITIVE

go top

do while .not.eof()

**************found****************

 if 存取=.t. &&参考答案:if 存取

 sele 1

 replace 现有资金 with 现有资金+ c->金额

 sele 2

 replace 余额 with 余额+ c->金额

 Else

 sele 1

 replace 现有资金 with 现有资金- c->金额

 sele 2

 replace 余额 with 余额- c->金额

 Endif

 sele 3

**************found****************

 loop &&参考答案:SKIP

Enddo

sele 1

List

Wait

sele 2

List

Wait

set talk on

return














 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50