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