[ 本帖最后由 五四門下走狗 于 2006-4-28 22:55 編輯 ]作者: 憤怒的兔子 時間: 2005-9-11 15:13
2004年碩士研究生招生入學考試試卷
專業名稱 地圖學與地理信息系統
研究方向 地理信息系統
科目代碼 815
考試科目 《數據庫系統概論》與Foxbase(A卷)
一、 填充題(共50空格,每空格2分,共計100分)
1、數據模型是數據庫系統中用于提供信息表示和操作手段的形式框架。數據模型通常由 、 和 三部分組成。實際數據庫系統所支持的主要數據模型有三種,即關系模型、 和層次模型。
2、在關系代數中,專門、基本的關系運算有 、投影和 等。有一學生關系S(SNO 學號,SNAME 姓名,AGE 年齡,DNO 院系號,SEX 性別)。檢索地理信息系統系“Gis”且年齡大于20歲的全部學生的關系代數表示 ,學生關系S在學號、姓名兩個屬性上投影的關系代數表示 。
3、設關系R的屬性個數為r,元組個數為N;設關系S的屬性個數為s,元組個數為M,則關系R和S的廣義笛卡爾積R*S的屬性個數為 ,元組個數為 。
4、數據冗余是指 。在數據庫系統中,數據冗余會導致 和
等問題。
5、SQL語言是一種介于關系代數和關系演算之間且功能極強的通用數據庫語言。其功能包括數據定義、 、 和 四個方面。
6、視圖是指 ,它與數據庫基本表的區別是 。
7、某學校的學生須每年向計財處交一次學費。現為計財處設計一個學生數據庫,包括學生和收費兩個關系。學生關系S(S# 學號,Sname姓名,Smajor專業,Sdate入學日期),收費F(F# 學年,S# 學號,Fcost1學費,Fcost2書費,Ftotal總金額),并規定學費、書費和總金額為數值型,學號、姓名、專業、學年為字符型,入學日期為日期型,列寬度自定義。用SQL語句完成下列任務,在進行表結構定義創建時,應包括主鍵子句和外主鍵子句。
1) 創建學生表S
2) 創建收費表F
3) 統計專業為“數學系”且名字中含有“王”字的學生人數
8、函數Y=e2x+sin(x2),在FoxBase中表達式為
9、在FoxBase中,執行下列命令:
.Fname='F1'
.Use &Fname &&打開的數據庫表文件名為
.S1=”中國南京”
.?Stuff(S1,5,0,”江蘇”) &&結果為
.S2=0.718
.?IIF(“ABC”>””,Mod(-24,7),Len(Str(S2))) &&結果為
10、在FoxBase中,有一全班學生數據庫表文件STD.DBF,含有學號C8、語文成績N3、數學成績N3、英語成績N3、總分N4、是否團員L、出生年月D等7個字段。執行下列命令
.Use Std
.Browse
記錄號 學號 語文成績 數學成績 英語成績 總分 是否團員 出生年月
1 A0001 72 85 88 T 07/10/79
2 B0002 87 76 64 F 08/05/77
3 C0003 92 92 72 F 09/01/77
1)數據庫表記錄長度為 字節表
2)?Fcount()&結果為
3)?Type(“學號”) &結果為
4) 計算全班每位同學的總分
5) 列出單科成績低于60分的同學學號、總分信息
6) 計算全班平均語文成績
7) 按總分由高到低進行排序的命令
8) 執行index on 出生年月to aidx后,首記錄的學號為
9) 生成結構化描述文件ABC的命令
10) 列出學號首位為“A”的所有記錄的命令
11、設有Student.dbf(學號、姓名、專業)和Score.dbf(學號、成績、課程名)兩個數據庫表。閱讀下列FoxBase程序并填空。
該程序功能是:對美術專業的學生英語成績增加5分,對音樂專業的學生數學成績增加8分。
Set Talk Off
Close All
Select 1
Use Score
Select
Use Student
Do While Not Eof()
Xh=學號
ZY=專業
If ZY=
Select 1
Repl all 成績 with 成績+5 for 學號= and課程名=“英語”
Else
If zy=“音樂”then
Select
Repl all for 學號=XH and 課程名=“數學”
Endif
Endif
Select
Skip
Enddo
12、閱讀下列FoxBase程序
*ABC.prg
Close All
Set Talk off
a1=”9”
a2=”12”
Set Proc to Abc1
Do Abc1 with a1,a2
Set Proc to Abc2
So Abc2
?a1,a2 &a1,a2分別為
Return
*ABC1.Prg
Para a1,a2
a1=a1+”7”
a2=a2+Chr(Val(a1))
?a1,a2 &a1,a2分別為
Return
*ABC2.Prg
private a3
a3=a1
a1=a2
a2=a3
?a1,a2 &a1,a2分別為
Return
13、使用遞歸方法實現1+2+3+4+……+n,并規定n<1時,返回0;n>1時,返回1+2+3+4+……+n。
*A1.PRG
function fn
Para N
If(N<1)
Return 0
Else
If n=1
return
Else
return
Endif
Endif
14、閱讀下列FoxBase程序
*A1.Prg
If(k<10 and K>0) then
If(k>5) then
If(k<8) then
X=0
Else
X=1
Endif
Else
If(k.>2) then
X=3
Else
X=4
Endif
Endif
Endif
若最終運算結果x=3,K的取值范圍
15、閱讀下列FoxBase程序
a=1
b=0
Do While a<=10
a=2+a
b=b+a*a+1
Enddo
?b
問該程序循環次數為 ,最終b值為
16、閱讀下列FoxBase程序
a='AaBbCcDdEe'
b='12345'
i=1
b1=” ”
Do While I<5
b1=b1+subs(a,i,1)+subs(b,(i+1)/2,1)
i=i+2
Enddo
?b1 &結果b1為
二、 分析簡述題(每題15分,共2題,總計30分)
1、 某大學學生數據庫,有一關系模式R(校區編號,專業編號,專業學生人數,系科編碼,系科負責人)
我們假設1)每個校區的每個專業只歸一個系科管理
2)每個校區的每個系科只有一個系科負責人
3)每個校區的每個專業有一定數量的學生
回答下列問題
1) 根據上述規定,寫出關系模式R的基本函數依賴
2) 找出關系模式R的候選碼
3) 關系模式R最高達第幾范式,為什么?
2、 閱讀下列問題
司機 姓名 駕駛證號
駕齡 通信地址
郵編 聯系電話
機動車 車輛牌號 車輛型號
出廠編號 生產日期
用車審批 同意***司機使用牌號為***車輛于**年**月**日前往**地方 日期:
處長簽名 處長編號
寫出上述用車通知的E-R關系圖,并將E-R圖轉換成關系數據模型(寫關系數據模型時,應包括內碼和外碼)
三、 編程題(本題20分,總計20分)
有一個學生考試成績數據庫Cj.dbf,包括學號、語文成績等字段,其中學號的第2-4位是班級編號。還有一個統計數據庫Tj.dbf,包括班級編號,語文平均分,最高分,最低分,班級名次及班級人數等6個字段。請編寫程序,其功能是:根據上述要求以班級為單位統計后,按語文平均成績進行班級排名,結果存于統計數據庫Tj.dbf中。作者: 憤怒的兔子 時間: 2005-9-11 15:13
2004年碩士研究生招生入學考試試卷
專業名稱 地圖學與地理信息系統
研究方向 地理信息系統
科目代碼
考試科目 程序設計(C語言與數據結構)
一、 填空題(每題5分,共計20分)
(1) 數據結構是研究數據的 和 ,以及它們之間的相互關系,并對這種結構定義相應的 設計出相應的 ,而確保經過這些運算后所得到的新結構是 結構類型。
(2) “4:30'40”” ;0.01E-20 ;'\010' ;
0x3c0 ;-0.5F ;(A:合法的字符常量;B:合法的整型常量;C:合法的浮點數常量;D:合法的字符串常量;E:非法表示。請在本題的下劃線上填入A、B、C、D或E)
(3) 本題程序的輸出結果是:
#include<stdio.h>
#define N 5
void main()
{
int i;
double x,s=0;
for(i=1,x=1;i<=N;i++,x+=0.5)
s+=1/x;
printf(“s=%.2f\n”,s);
}
(4) 根據線性表的鏈式存儲結構形式,每個結點所含指針的個數,鏈表可分為 和 ;而根據指針的連接方式,鏈表又可分為 和 。棧的特點是 ,隊列的特點是 。
二、 選擇題(每題5分,共計20分)
(1) 在數據結構中,與所使用的計算機無關的數據叫 A 結構;鏈表是一種采用 B 存儲結構存儲的線性表;鏈表適用于 C 查找;在鏈表中進行 D 操作的效率比在順序存儲機構中進行 D 操作效率更高;二分查找 E 存儲結構。
A) (1)存儲 (2)物理 (3)邏輯 (4)物理和邏輯
B) (1)順序 (2)網狀 (3)星式 (4)鏈式
C) (1)順序 (2)二分法 (3)順序,也能二分法 (4)隨機
D) (1)二分法查找 (2)快速查找 (3)順序查找 (4)插入
E) (1)只適用于鏈表 (2)只適用于順序 (3)既適用于順序也適用于鏈式 (4)既不適用于順序也不適用于鏈式
(2) 若一個棧的輸入序列是1,2,3,……,n,輸出序列的第一個元素是n,則第i個輸出元素是
A) n-i B) n-i+1 C) i D) n-i+1
(3) 若串S='NjnuGisc',其子串的數目是
A) 8 B) 37 C)36 D) 9
(4) 下面程序段的運行結果是
int n=0;
while(n++<=2);
printf(“%d”,n)
A) 2 B) 3 C) 4 D)有語法錯誤
三、 程序設計(共計110分,請書寫整潔,卷面有分)
(1) 利用串的基本運算,編寫一個算法刪除串S1中所有S2子串。(本題15分)
(2) 編寫一程序,判斷一個字符串是不是“回文數”。所謂回文數是從左至右或從右至左讀起來都是一樣的字符串。(本題15分)
(3) 設計一個統計選票的算法,輸出每個候選人的得票結果(假定采用單鏈表存放選票,候選人編號依次為1,2,3,……N,且每張選票選且只選一人)(本題15分)
(4) 有幾個人圍成一圈,順序排號。從第一個開始報數,凡報到4的人退出圈子,問最后留下的是幾號。(本題15分)
(5) 假設一個算術表達式中包含圓括號、方括號和花括號三種類型的括號,編寫一個算法判斷其中的括號是否匹配。(本題15分)
(6) 已知R[0……n-1]為整型數組,試設計實現下列運算的遞歸算法(本題15分)
(1)求數組R中的最大整數
(2)求n個整數之和
(3)求n各整數的平均值
(7) 分別寫出下圖樹的先序遍歷、中序遍歷和后序遍歷的結果。寫出中序遍歷算法,算法中root指向二叉樹的根。(本題20分)作者: 憤怒的兔子 時間: 2005-9-11 15:14
2003年碩士研究生招生入學考試試卷
專業名稱 地圖學與地理信息系統
研究方向 地理信息系統
科目代碼 380
考試科目 數據庫(A)
一、 填充題(共60空格,每空格1.5分,共計90分)
1、 在數據庫管理系統中,數據庫的基本結構是一種分層的三層組織結構,即用戶級、
、 組成。數據模型有三種基本類型,即層次模型、 、關系模型。
2、已知一學生關系S(學號、姓名、課程號、成績)。在該關系中,屬性 是決定性因素, 構成主鍵字。
3、在關系代數中,基本的關系運算為選擇、投影和聯接,其中聯接包括 和
,他們的不同點在于 。在Foxbase中,一個關系對應于一張二維表,即一個關系對應一個 。
4、函數y=ex+ +tgx 在Foxbase中的表達式為 。
5、在Foxbase中,執行下列命令
.P1=“A1”
.A1=“A2”
.A2=“A3”
.A3=“A7”
.S=“2003年研究生入學考試”
.A=65
.B=-7
.X=0.618
?A1 &結果為
?Stuff(s,7,0,“南京師范大學”) &結果為
?Mod(A,B) &結果為
?Round(x,2) &結果為
?&A1 &結果為
6、在Foxbase中,數據庫文件xy.dbf有一字段xyzb,存放xy坐標值,格式為“xxxxx.xx,yyyyy.yy”,中間用逗號將XY分開,將X坐標從xyzb字段中分離出來的命令 ,將y坐標從xyzb中分離出來的命令 。
7、在Foxbase中,一次最多能打開 個數據庫文件和 個索引文件。內存變量文件的后綴為 ,多用戶環境以共享方式打開數據庫文件的命令是 ,給庫文件加鎖的命令 ,給記錄解鎖的命令 。
8、設當前路徑為c:\fox;執行命令
.Set Path c:\s1,s2
.Create s3.dbf
問S3.dbf庫文件存放在 文件目錄中。
9、在Foxbase中,數據庫文件Student.dbf,含有學號C8、姓名C16、語文N3、數學N3、英語N3、總分N4、名次N3、是否團員L、出生年月D和學習情況M共10個字段。
.use Student
.List
記錄號 學號 姓名 出生年月 是否團員 語文 數學 英語 總分 名次 學習情況
1 a001 張中 07/01/77 T 87 74 81 Memo
2 a002 李明 08/05/77 F 91 82 84 Memo
3 b003 王正 02/25/76 F 87 88 72 Memo
4 b004 李中王 10/09/77 T 62 72 68 Memo
.GO 2
.Dele
.Set Dele On
.Sum 語文 To a For Substr(trim(學號),1,1)=“a”
*a值為
. Sum 語文 To b For Substr(trim(學號),1,1)=“b”
*b值為
.GO 1
.姓名=“李正”
.姓名=姓名-姓名
.?姓名 &姓名為
.Set Dele Off
.Recall All
.Go 4
.Skip
.?Recno() &Recno顯示記錄數為
.Set Filt To .F.
.Browse &Browse顯示記錄數為
.Set Filt To
①數據庫記錄長度為 字節數;
②顯示所有姓名中含有“王”字的紀錄的命令是 ;
③顯示所有非團員記錄的命令是 ;
④計算每個學生總分并填至總分字段的命令 ;
⑤計算全班語文平均成績的命令 ;
⑥按總分由高到低索引的命令 ;
⑦執行Index On Dtoc(出生年月)To cidx,首記錄的學號為 ;
⑧按下列命令索引 ,使每個學生的年齡由小到大排列。索引后,為確保記錄指針指向物理記錄第1條的命令為 ,按38空格所示的索引,執行Seek “張中”,函數found()的值為 。
⑨生成結構化描述文件ABC的命令為 ,數據庫文件ABC中的記錄數為 。
⑩查詢最高總分的Select-SQL命令是
11查詢語文成績在60-69(含60)人數的Select-SQL命令是 。
10、閱讀下列程序
*A1.prg
Close All
Set Talk off
Set Proc To Abc
x=Abc(9)
?x &結果為 ,本程序屬
Return
*Abc.prg
Para N
If(N=2)then
x=2
Else
x=Abc(n-1)+n
Endif
Return x
11、閱讀下列程序
*A1.prg
Close All
Set Talk off
Set Proc To Abc
S=“南京,連云港,蘇州”
Do Abc With s
Return
*Abc.Prg
Para s
Done=1
Do While Done=1
S1=At(“,”,s)
If(S1>0)then
S2=Substr(s,1,s1-1)
S=Substr(s,s1+1,len(s))
?S2
Else
Done=0
Endif
Enddo
Return
請問循環總共 次,S2各次的值分別為
12、閱讀下列程序
*A1.prg
Close All
Set Talk off
x1=“5”
x2=“abc”
Set Proc To AA2
Do AA2 With x1,x2
Set Proc To AA3
Do AA3
?x1,x2 &x1,x2分別為
Return
*AA2.prg
Para X1,X2
X1=X1+“7”
X2=X2-X1
?x1,x2 &x1, x2分別為
Return
*AA3.prg
Private x1
X1=“789”
X2=X2-X1
?X1,X2 &X1, X2分別為
Return
13、設有一批數據a1< a2< a3……<an分別存放在a(1),a(2),……a(n)數據中。下列程序實現查找數據k在數組中的位置,請把空格處填上。
Proc abc
Para N
Flag=0
Top=1
Bot=N
Do while flag=0 and
Mid=int((Top+bot)/2)
If A(mid)=k then
Else
If(k<a(mid))
Bot=mid-1
Else
Top=
Endif
Endif
Enddo
If top>bot then
?
Else
?“查找的數在數組中的位置是”+str(mid)
Endif
Return
14、設有Studnet.dbf(學號、姓名、民族)和Score.dbf(學號、成績)兩個數據庫,要在它們之間建立邏輯連接,然后為每個少數民族考生的成績加上5分,最后顯示全體考生的學號、姓名和成績。請對如下程序填空。
SET TALK OFF
SELECT 1
USE student
To inx
SELECT 2
USE score
SET RELATION TO
REPLACE 成績 WITH FOR
LIST 學號, ,成績
SET RELATION TO
CLOSE DATA
SELECT 1
SET TALK OFF
RETURN
二、 將下圖所示E-R圖轉換生成關系數據模型(15分)
1