第一題:有計算機等級考試數(shù)據(jù)庫djks.dbf,包括:考號、姓名、性別、年齡和單位等字段;成績數(shù)據(jù)庫cj.dbf,包括:考號、考場編號、筆試成績和上機成績等字段。 請考生編寫程序 PROG1.PRG,其功能是其考號、單位、筆試成績和上機成績共四個字段。然后在生成的連接數(shù)據(jù)庫中按單位對筆試和上機成績進行分類匯總,存入數(shù)據(jù)庫qaz.dbf文件中。
。牐 參考答案:
SET TALK OFF
。牐燙LEAR
。牐燬ELE B
。牐燯SE CJ
。牐燬ELE A
。牐燯SE DJKS
。牐燡OIN WITH B TO CJ1 FOR 考號=B->考號 FIELD ?考號,單位,B->筆試成績,B->上機成績
。牐燬ELE C
。牐燯SE CJ1
。牐燬ORT ON 單位 TO CJ2
USE CJ2
。牐燭OTAL ON 單位 TO QAZ
USE QAZ
。牐燣IST
。牐燙LOSE DATABASE
。牐燖 10,30 SAY "再見!"
。牐燬ET TALK ON
。牐
第二題:已有三個數(shù)據(jù)庫:⑴借閱數(shù)據(jù)庫jy.dbf,包括圖書編號、借書證號、借書日期和借出天數(shù)等字段; ⑵讀者數(shù)據(jù)庫dzh.dbf,包括借書證號、姓名、停借否等字段;⑶停借數(shù)據(jù)庫tj.dbf,包括借書證號、姓名等字段。 請考生編寫程序 PROG1.PRG,其功能是整理圖書借出情況:首先在借閱數(shù)據(jù)庫中用當(dāng)前日期減去借書日期得出借出天數(shù),然后進行判定處理,凡借書超過60天(不含60天)者,就把讀者數(shù)據(jù)庫中的停借否字段置為邏輯真,并在停借數(shù)據(jù)庫中產(chǎn)生一條記錄。(注意:假定當(dāng)前日期為2000年9月1日)
參考答案:
。牐燬ET TALK OFF
。牐燬ET CENTURY ON
。牐燙LEAR
SELE C
。牐燯SE TJ
。牐燬ELE B
。牐燯SE DZH
REPL ALL 停借否 WITH .F.
。牐燬ELE A
USE JY
。牐燚O WHILE .NOT. EOF()
。牐燡SZ=借書證號
REPL 借出天數(shù) WITH DATE()-借書日期
。牐營F 借出天數(shù)>60
。牐燬ELE B
。牐燣OCA FOR 借書證號=JSZ
REPL 停借否 WITH .T.
。牐燬CATTER TO TJF
。牐燬ELE C
。牐燗PPE BLANK
GATHER FROM TJF
。牐燬ELE A
ENDIF
。牐燬KIP
。牐燛NDDO
。牐燬ELE C
LIST
。牐燙LOSE ALL
。牐燙LEAR ALL
。牐燬ET TALK ON
第三題:已有數(shù)據(jù)庫data.dbf,其中有data1--data7、最大數(shù)、最小數(shù)和平均數(shù)等字段。 請考生編寫程序PROG1.PRG,其功能是按記錄求出data1--data7七個數(shù)中的最大數(shù)、最小數(shù)和平均數(shù),并記入數(shù)據(jù)庫的相應(yīng)字段中,最后把結(jié)果輸出到data1.dbf文件中。
。牐 參考答案:
。牐燬ET TALK OFF
。牐燙LEAR
。牐燯SE DATA
。牐燚O WHILE .NOT. EOF()
。牐燗V_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))))))
REPL 最大數(shù) WITH MAX_NUM,最小數(shù) WITH MIN_NUM,平均數(shù) WITH AV_NUM
。牐燬KIP
。牐燛NDDO
BROW
。牐燙OPY TO DATA1
。牐燯SE
。牐燬ET TALK ON
。牐
第四題:已有數(shù)據(jù)庫djks.dbf。請編寫程序PROG1.PRG,在程序中首先通過復(fù)制djks.dbf生成一個具有考號、 姓名、筆試及上機四個字段的數(shù)據(jù)庫文件aaa.dbf(只有結(jié)構(gòu)),然后再修改其結(jié)構(gòu),把考號字段改為數(shù)值型8個字符寬、姓名字段改為8個字符寬。要求必須使用: copy to <結(jié)構(gòu)文件名> structure extended 和 create <生成庫文件名> from <結(jié)構(gòu)文件名>命令實現(xiàn),使用其它方法不得分
參考答案:
。牐爏et talk off
clos data
。牐爑se djks
。牐燾opy stru to aaa fiel 考號,姓名,筆試,上機
USE AAA
。牐燙OPY STRU TO BBB EXTENDED
。牐燯SE BBB
。牐燣OCA FOR FIELD_NAME='考號'
。牐燫EPL FIELD_TYPEWITH 'N',FIELD_LEN WITH 8
LOCA FOR FIELD_NAME='姓名'
。牐燫EPL FIELD_LEN WITH 8
。牐燙REATE AAA FROM BBB
。牐燾los data
set talk on
第五題:已有數(shù)據(jù)庫stock.dbf,包括商品號、商品名、單價和數(shù)量等字段。請考生編寫程序PROG1.PRG,其功能是給該數(shù)據(jù)庫增加一個總額(N, 10.2)字段,并填入數(shù)據(jù),其值為數(shù)量與單價之乘積,最后把結(jié)果復(fù)制到stock1.dbf文件中。
參考答案:
。牐燬ET TALK OFF
CLOSE DATABASE
CLEAR
。牐燯SE STOCK
。牐燙OPY STRUCTURE TO STO EXTENDED
。牐燯SE STO
。牐燗PPEN BLANK
。牐燫EPL FIELD_NAMEWITH "總金額",FIELD_TYPE WITH "N",FIELD_LEN ?WITH 10,FIELD_DEC WITH 2
。牐燙REATE STOCK1 FROM STO
。牐燯SE STOCK1
。牐燗PPE FROM STOCK
。牐燫EPL ALL 總金額 WITH 數(shù)量*單價
LIST
。牐燯SE
SET TALK ON
。牐
第六題:已有計算機等級考試數(shù)據(jù)庫djks.dbf,包括:考號、姓名、筆試成績、上機成績和平均成績等字段,但各成績字段為空;另有成績數(shù)據(jù)庫cj.dbf,包括:考號、考場編號、筆試成績和上機成績等字段,
考生的考試成績已錄入其中。 請編寫程序 PROG1.PRG,要求把考生的考試成績填寫到數(shù)據(jù)庫djks.dbf中,然后再計算筆試和上機成績的平均成績,填入各記錄的平均成績字段中。最后生成一個與djks.dbf結(jié)構(gòu)完全相同的不及格數(shù)據(jù)庫bjg.dbf,把平均成績不及格的考生記錄移入不及格庫。
參考答案:
。牐燬ET TALK OFF
。牐燬ET DELETED OFF
CLEAR
。牐燬ELE B
USE CJ
。牐燬ELE A
USE DJKS
。牐營NDEX ON 考號 TO DJKS
。牐燯PDATE ON 考號 FROM B REPLACE 筆試成績 WITH B->筆試成績,上機成績 ?WITH B->上機成績 RANDOM
。牐燝O TOP
REPLACE ALL 平均成績 WITH (筆試成績+上機成績)/2
。牐燙OPY TO BJG FOR 平均成績<60
LIST
。牐燯SE BJG
LIST
。牐燙LOSE DATABASE
SET TALK ON
第七題:請考生編寫程序 PROG1.PRG,其功能是計算下列多值函數(shù)的值:
。牐 ┌ABS(x) x<0
。牐 ├ex 0<=x<1
y=├x2 1<=x<3
。牐 └INT(x) x>=3
計算的數(shù)據(jù)都存放在數(shù)據(jù)庫shj.dbf中,該數(shù)據(jù)庫只有兩個字段:X(N,4.1)和Y(N,6.4)。在程序中讀取字段X的數(shù)據(jù),然后把計算結(jié)果存放在字段Y中, 最后把shj.dbf所有記錄復(fù)制到shj1.dbf文件中
參考答案:
。牐燬ET TALK OFF
。牐燯SE SHJ
。牐燿o while .not. eof()
。牐燲1=X
。牐燚O CASE
CASE X1<0
。牐燳1=ABS(X1)
。牐燙ASE X1>=0 .AND. X<1
Y1=EXP(X1)
。牐燙ASE X>=1 .AND. X<3
。牐燳1=X1*X1
。牐燨THERWISE
Y1=INT(X1)
。牐燛NDCASE
。牐燫EPLACE Y WITH Y1
。牐燬KIP
enddo
。牐燣IST
。牐燙OPY TO SHJ1
。牐燙LOSE DATABASE
。牐燬ET TALK ON
第八題:請考生編寫程序 PROG1.PRG,其功能是計算數(shù)學(xué)公式:
。牐 S=1-1/3!+1/5!-1/7!+1/9!-1/11!+...-1/(2n-1)!n
值存放在數(shù)據(jù)庫shj.dbf中,該數(shù)據(jù)庫只有兩個字段:N(n,2.0)和S(n,17.15)。執(zhí)行程序時到數(shù)據(jù)庫中逐個讀取N值,再把計算結(jié)果存放在S字段中, 最后把shj.dbf所有記錄復(fù)制到shj1.dbf文件中。
參考答案:
。牐燬ET TALK OFF
。牐燯SE SHJ
。牐燚O WHILE .NOT. EOF()
。牐燬TORE N TO NJ2
NJ2=2*NJ2-1
。牐燡C=1
。牐燬1=0
。牐燦J1=1
。牐燦J3=1
。牐燚O WHILE NJ1<=NJ2
jc=jc*nj1
。牐爄f mod(nj1,2)=1
IF MOD(NJ3,2)=1
。牐燬1=S1+(1/jc)
。牐燛LSE
。牐燬1=S1-(1/JC)
ENDIF
。牐燦J3=NJ3+1
endif
。牐燦J1=NJ1+1
。牐燛NDDO
。牐燫EPLACE S WITH S1
。牐燬KIP
ENDDO
。牐燙OPY TO SHJ1
CLOSE DATABASE
。牐燬ET TALK ON
第九題:有計算機等級考試成績數(shù)據(jù)庫cj.dbf,包括考號、筆試成績和上機成績等字段,其中考號的前兩位是單位編碼;還有統(tǒng)計數(shù)據(jù)庫tj.dbf,包括單位編碼、筆試平均分、上機平均分、筆試最高分、上機最高分等字段。 請編寫程序 PROG1.PRG,其功能是:按單位進行各項統(tǒng)計,結(jié)果存于統(tǒng)計數(shù)據(jù)庫tj.dbf的相應(yīng)字段中。
參考答案:
SET TALK OFF
。牐燬ET SAFETY OFF
。牐燙LOSE DATABASE
CLEAR
。牐燬ELE 2
USE TJ
。牐燴AP
。牐燬ELE 1
。牐燯SE CJ
。牐燬ORT ON 考號 TO CJ1
。牐燯SE CJ1
。牐燚O WHILE .NOT. EOF()
。牐燬TORE 0 TO BS1,SJ1,BSMAX,SJMAX
。牐燚WCODE=SUBSTR(考號,1,2)
N1=0
。牐燘SMAX=筆試成績
SJMAX=上機成績
。牐燚O WHILE 考號=DWCODE
IF 上機成績>SJMAX
。牐燬JMAX=上機成績
。牐燛NDIF
IF 筆試成績>BSMAX
。牐燘SMAX=筆試成績
。牐燛NDIF
BS1=BS1+筆試成績
。牐燬J1=SJ1+上機成績
。牐燦1=N1+1
。牐燬KIP
。牐燛NDDO
。牐燬ELE 2
。牐燗PPEND BLANK
。牐燫EPLACE 單位編碼WITH DWCODE,筆試平均分 WITHBS1/N1,上機平均分 WITH ;
。牐燬J1/N1,筆試最高分 WITH BSMAX, 上機最高分 WITH SJMAX
。牐燬ELE 1
。牐燛NDDO
。牐燬ELE 2
LIST
。牐燙LOSE DATABASE
SET TALK ON
。牐燬ET SAFETY ON
第十題:已有計算機等級考試數(shù)據(jù)庫djks.dbf,包括:考號、姓名、筆試成績、上機成績和平均成績等字段,其中考號的前兩位是單位代碼;另有單位數(shù)據(jù)庫dw.dbf,包括:單位代碼、單位名稱、人數(shù)和總平均分等字段。 請編寫程序 PROG1.PRG,要求先在djks.dbf數(shù)據(jù)庫中計算各位考生的平均成績,并填入平均成績字段中。然后按單位統(tǒng)計人數(shù)及總平均分,記入dw.dbf數(shù)據(jù)庫的相應(yīng)字段中,最后把dw.dbf所有記錄復(fù)制到dw1.dbf文件中。
參考答案:
SET TALK OFF
。牐燬ELE 2
。牐燯SE DW
。牐燬ELE 1
。牐燯SE DJKS
。牐燚O WHILE .NOT. EOF()
REPLACE 平均成績 WITH (筆試成績+上機成績)/2
。牐燬KIP
。牐燛NDDO
。牐燬ORT ON 考號 TO DJKS1
。牐燯SE DJKS1
。牐燚O WHILE .NOT. EOF()
DW1=SUBSTR(考號,1,2)
。牐燬TORE 0 TO PEOPLE,AV_SCOR
。牐燚O WHILE SUBSTR(考號,1,2)=DW1
AV_SCOR=AV_SCOR+平均成績
。牐燩EOPLE=PEOPLE+1
。牐燬KIP
。牐燛NDDO
。牐燬ELE 2
。牐燣OCA FOR 單位代碼=DW1
。牐燫EPL 人數(shù) WITH PEOPLE,總平均分 WITH AV_SCOR/PEOPLE
。牐燬ELE 1
ENDDO
。牐燬ELE 2
。牐燙OPY TO DW1
LIST
。牐燙LOSE DATABASE
SET TALK ON