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