(VFP程序改错
*题目:表XSDA.DBF结构为:学号(C,6),姓名(C,6),性别(C,2),入学成绩(N,6,2)。本程序复制表XSDA的记录到表XS1中,在表XS1中查找入学成绩550分以上的同学,将其删除并浏览XS1的内容。
SET TALK OFF
USE XSDA
**********FOUND**********
COPY STRUCTURE TO XSDA
USE XS1
**********FOUND**********
LOCATE ALL 入学成绩>=550
DO WHILE FOUND()
DELETE
**********FOUND**********
LOOP
ENDDO
PACK
BROW
USE
SET TALK ON
答案:
1). COPY★ TO ★XS1
2). ★LOCATE★ ALL★ FOR 入学成绩>=550 或 ★LOCATE★ ALL ★FOR 550★<=入学成绩
3). CONTINUE
*题目:输入10,计算s=1+1+2+1+2+3+...+1+2+3+4+...+10
* 请在屏幕上输出结果。
set talk off
clear
***********FOUND**********
s=p=0
for i=1 to 10
***********FOUND**********
p=p-i
s=s+p
endf
***********FOUND**********
? "p=",p
答案:
1).store★0★to★s,p 或 store★0★to★p,s
2). p=★p★+★i 或 p=i★+★p
3). ?★"★s=★",s 或 ?★s 或 ?★"p=",★s
*题目:已有数据库dat.dbf,其中有data1--data7、最大数、最小数和平均数等字段。 请考生编写程序MODI1.PRG,其功能是按记录求出data1--data7七个数中的最大数、最小数和平均数,并记入数据库的相应字段中,最后把结果输出到data1.dbf文件中
SET TALK ON
SET TALK OFF
CLEAR
USE DAT
***********FOUND**********
DO WHILE FOUND()
AV_NUM=(DATA1+DATA2+DATA3+DATA4+DATA5+DATA6+DATA7)/7
MAX_NUM=MAX(DATA1,MAX(DATA2,MAX(DATA3,MAX(DATA4,MAX(DATA5,MAX(DATA6,DATA7))))))
MIN_NUM=MIN(DATA1,MIN(DATA2,MIN(DATA3,MIN(DATA4,MIN(DATA5,MIN(DATA6,DATA7))))))
***********FOUND**********
REPL ALL 最大数 WITH MAX_NUM,最小数 WITH MIN_NUM,平均数 WITH AV_NUM
***********FOUND**********
cont
ENDDO
COPY TO DATA1
use data1
list
USE
SET TALK ON
答案:
1). DO★WHILE★.NOT.★EOF()
2). RE★PL最大数★WITH★MAX_NUM,最小数★WITH★MIN_NUM,平均数★WITH★AV_NUM
3). SKIP
*题目:给定程序MODI1.PRG 的功能是:选择最小号空闲区,若最小号空闲区号大于1, 说明系统当前已有工作区被占用,在这种情况下,测试最小号空闲工作区的前一个工作区打开的数据库文件名,该数据库的字段数和记录数。注:假设字段数和记录数均小于10。
SET TALK OFF
SELECT 1
USE DB2
SELECT 2
USE DB1
***********FOUND**********
select X
A=SELECT()
? A
WAIT
IF A>1
SELECT (A-1)
FILENAME=ALIAS()
***********FOUND**********
SUM FIELD TO fnum
***********FOUND**********
SUM TO RECNUM
CLEAR
@ 6,6 SAY "在"+STR((A-1),1)+"区中已经打开了:" + FILENAME
@ 7,6 SAY "该数据库中的字段数是:" + STR(FNUM,1)
@ 8,6 SAY "该数据库中的记录数是:" + STR(RECNUM,1)
ENDIF
CLOSE DATA
SET TALK ON
RET