标题: 南京师范大学GIS 试题 [打印本页] 作者: dili 时间: 06-4-16 14:51 标题: 南京师范大学GIS 试题 2000年研究生入学考试试卷
学科专业 地图学与地理信息系统
考试科目 数据库(B)482
一、简答题
1、什么是数据库管理系统(dbms)?dbms通常由哪几个部分组成?(5分)
2、什么是网络模型?试举例说明。(5分)
3、什么是SQL?SQL包括那些功能?(5分)
4、用E-R突来描述数据库的概念模型,一般要警力那些步骤?(5分)
5、当foxbase+数据库应用系统含有其他高级语言编写的程序时,如何将它们连接起来?试举例说明。(5分)
6、说明INSERT命令和APPEND命令的异同点。(5分)
7、LOCATE、FIND、SEEK的查询方式什么不同?各有什么优缺点?(5分)
8、列出数据库文件索引与排序的异同点。(5分)
9、foxbase+提供哪些多区操作命令?就命令的功能、使用命令的前提条件和命令的执行结果进行比较(10分)
10、程序的功能模块和控制模块有何区别?说明控制程序的一般结构。(10分)
二、编程题(请选用一种熟悉的数据库语言进行编程)
1、 利用自定义函数,编程计算函数y=(1+sinx)(1+sin2 x)……..(1+sinnx). (10分)
1—ex (x<-1)
(ex +e-x )/2 (-1<=x<0)
2、编程计算函数y= (ex —e-x )/2 (0<=x<1)
ex —1 (x>=1) (10分)
3、编制一个小型图书馆里应用程序,已知:数据结构如下:(20分)
登录号 C 6
索引号 C 12
书 名 C 20
作 者 C 8
借书人 C 8
价 格 N 5 2
要求:
①当用户键入索引号则能查到图书馆是否有该书并显示该书是已被借
②用户键入登录号则能将指定的书从数据库中删除
③当新增加图书时,能用屏幕格式提示用户录入图书著录,将其添加到数据库中
④打印图书馆资产报表
⑤当借书时,能在指定书籍的借书人字段填入用户借书证号
⑥当还书时,能在指定书籍的借书人字段将其内容充空。作者: dili 时间: 06-4-16 14:51
2000年研究生入学考试试卷
学科专业 地图学与地理信息系统
考试科目 程序设计 580
(说明:一下试题可以采用C语言、C++、Pascal、BASIC或FORTRAN任意一种语言,要求划出算法流程图和写出算法,试卷总分100分)
1、 有一个函数如下:
5X (X<1)
Y(X)= 5X-1 (1<=X<10)
3X-1 (X>=10)
编写一个程序,输入X,输出结果。要求:①将其显示在屏幕上。②用文本格式写入名为“Result.txt”的文件中。③画出流程图。(20分)
2、“完数”定义:一个数恰好等于它的因子之和。如6的因子是1、2、3,而6=1+2+3,所以6为完数。编程找出1000以内的所有“完数”。要求:①将其显示在屏幕上。②用文本格式写入名为“Result.txt”的文件中。③画出流程图。(20分)
3、幻数方阵是这样的一个方阵,它的每行、每列和对角线之和均相等,如三阶幻数方阵为以下方阵。编写一个算法,求出3阶方阵的所有形式。要求:①将其显示在屏幕上。②用文本格式写入名为“Result.txt”的文件中。③画出流程图。(30分)
8 1 6
3 5 7
4 9 2
4、编写一个算法,从键盘输入某年某月某天,计算出该天是星期几。要求:①将其显示在屏幕上。②用文本格式写入名为“Result.txt”的文件中。③画出流程图。(30分)
(提示:一年12个月,1、3、5、7、8、10、12为大月,每月31天;4、6、9、11为小月,每月30天,2月如是闰年为29天,否则28天。每7天为一周。闰年判别:该年能够被4整除、但不能被100整除,该年为闰年;该年能够被4整除、又能被100整除,如果该年还能被400整除,该年为闰年,否则,该年不为闰年。)作者: dili 时间: 06-4-16 14:53
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
n
m n
三、 编程题(共3题,每题15分,共计45分)
1) 试编程计算下列函数的值 y=x+x3/3!+x5/5!+……+x2n-1/(2N-1)!,精度esp<=10-5。
2) 某机关实行公示制。规定在接受案件后m天内(m>0)必须办结。在计算案件办结最后期限时,应扣除星期六、星期天(法定节假日暂不考虑,认为照常上班)。请编写程序,试计算案件收取后办结的最后期限的日期。
3) 由计算机等级考试成绩数据库Cj.dbf,包括考号、笔试成绩和上机成绩等字段,其中考号的前四位是单位编码;还有统计数据库Tj.dbf,包括单位编码、笔试平均分、上机平均分、笔试最高分、上机最高分等字段。请编写程序,其功能是:按单位进行各项统计,结果存于统计数据库Tj.dbf的相应字段中。作者: dili 时间: 06-4-16 14:53
2003年硕士研究生招生入学考试试卷
专业名称 地图学与地理信息系统
研究方向 地理信息系统
科目代码 480 481
考试科目 程序设计 (C语言)(A)
一、 选择题(每题4分,共20分)
(1) 设有如下定义:int x=1,y=1;则语句printf(“d%/n”,(x--&++y));的输出结果是
(A)1 (B)0 (C)-1 (D)2
(2) 若已定义:int a[9],*p=a;并在以后的语句中并未改变P的值,不能表示a[1]的地址的表达式是
(A)p+1 (B)a+1 (C)a++ (D)++p
(3) 若有以下的说明和语句,则在执行for语句后,*(*(pt+1+2))表示的数组元素是
(A)t[2][0] (B)t[2][2] (C)t[1][2] (D)t[2][1]
(4) #include“studio.h”
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int p=a+5,q=NULL;
*q=*(p+5);
printf(“%d%d\\n”,*p,*q);
}
输出结果是
(A)运行后报错 (B)6 6 (C)6 12 (D)5 5
(5) 以下不正确的说法是
(A)实参可以是常量、变量或表达式 (B)形参应与其对应的实参类型一致
(C)实参可以为任意类型 (D)形参可以是常量、变量或表达式
二、 程序填空(每题5分,共计20分,请将答案写在答题卡的相应位置)
(1) 函数yanghui能够按以下方式构成一个杨辉三角形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
……
#define N 11
yanghui(int a[][N])
{
int i,j;
for(i=1;i<N;i++)
{a[1]=1;a=1;}
for([A];i<N;i++)
for(j=2;;j++)
a[j]=[C]+a[i-1][j];
}
(2) 条件“2<x<3或x<-10”的C语言表达式是[A]
(3) 以下程序的功能是判断输入的年份是不是闰年
main()
{
int y,f;
scanf(“%d”,&y);
if(y%400==0)f=1;
else if([A]) f=1;
else ;
if(f) printf(“%d is”,y);
else printf(“%d is not”,y);
printf(“a leap year\\n”);
}
(4) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。
(5) #include“studio.h”
main()
{
char b[16]={\'0\'、\'1\'、\'2\'、\'3\'、\'4\'、\'5\'、\'6\'、\'7\'、\'8\'、\'9\'、\'A\'、\'B\'、\'C\'、\'D\'、\'E\'、\'F\'};
int c[64],d,i=0,base;
long n;
printf(“enter a number:\\n”);
scanf(“%1d”,&n);
printf(“enter new base:\\n”);
scanf(“%d”,&base);
do{c=[A];
i++;n=n/base;
}while(n!=0);
printf(“transmite new base:\\n”);
for(--i;i>=0;--i)
{
d=c;
printf(“%c”,b);
}
}
三、 程序设计题(卷面有分)
(1) 从键盘输入10个数,输出其中最大数和最小数。(本题10分)
(2) 求300以内的双素数,并输出,判断一个数m是否为素数的方法如下:让m被2到 除,当且仅当m不能被2~ 之间的任何一个数所整除,则m为素数,而当m为素数,同时m+2也为素数,则m与m+2就是双素数。(本题15分)
(3) 编写一个子程序能将主程序传过来的数组按行分别进行从小到大的排序,再编写一个二分法查找子程序,判定主函数传过来的待查数是否在已排序的数组中,若查找到则返回它在数组中的位置(可以在多个位置出现),否则返回-1。(本题15分)
(4) 利用递归方法找出从自然数1,2,……n中任取r个数的所有组合,并画出程序N-S图,例如n=5,r=3,所有组合为:(本题20分)
5 4 3 5 2 1
5 4 2 4 3 2
5 4 1 4 3 1
5 3 2 4 2 1
5 3 1 3 2 1
(5) 利用单项循环链表和顺序存储结构设计一个算法解决约瑟夫(JOSEHUS)问题。设有N个人围坐一圈,现从某个人开始报数,数到M的人出现,接着从出列的下一个人开始重新报数,数到M的人又出现,如此下去知道所有人都出列为止。试求出他们的出列次序。(本题20分)
(6) 编号为A,B,C,D的四辆列车,顺序开进一个栈式结构的站台。问开出车站的顺序有多少种可能?请具体写出来。
(7) 试将下面的树转换成二叉树,并写出二叉树前序遍历后的结点序列。(本题15分)作者: dili 时间: 06-4-16 14:53
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最高达第几范式,为什么?