2021年安徽省池州市全国计算机等级考试数据库技术真题(含答案)_第1页
2021年安徽省池州市全国计算机等级考试数据库技术真题(含答案)_第2页
2021年安徽省池州市全国计算机等级考试数据库技术真题(含答案)_第3页
2021年安徽省池州市全国计算机等级考试数据库技术真题(含答案)_第4页
2021年安徽省池州市全国计算机等级考试数据库技术真题(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【2021年】安徽省池州市全国计算机等级

考试数据库技术真题(含答案)

学校:班级:姓名:考号:

一、1.选择题(10题)

i.关系数据库中的关键字是指

A.能惟一决定关系的字段B.不可改动的专用保留字C.关键的很重要

的字段D.能惟一标识元组的属性或属性集合

2.下列属于数据库系统阶段特点的是

I.数据结构化

II.数据共享性高

III.独立性高

IV.数据无专门软件管理

V.冗余度大,不易扩充

A.I,n和wB.I,II和inc.I,in和wD.全部

3.下列不属于故障的主要类型的是____o

A.事务故障B.逻辑故障C.系统故障D.磁盘故障

4.在Oracle公司的开发工具Developer/2000中,能够生成可进行数据

查询和操纵的程序的模块是

A.OracleForms

B.OracleReports

C.OracleGraphics

D.OracleBook

5.对包含n个元素的散列表进行检索,平均检索长度

A.为O(log2n)

B.为O(n)

C.为O(n*log2n)

D.不直接依赖于n

6.数据库技术的奠基人之一,E.F.Codd于1970年发表过多篇论文,主

要论述的是()。

A.层次数据模型B.网络数据模型C.关系数据模型D.面向对象数据模

7.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则

可采用的方法是()o

A.分块法B.顺序法C二分法D.散列法

8.下列各项中不是虚拟页式存储管理中缺页中断处理所做的

工作。

A.通过文件系统将所需页面从外存调入内存B.调用内存分配程序C.

修改页表D.调度被中断程序继续执行

9.

SQL语言集数据定义、数据查询、数据操纵和数据控制功能于一体,语句GRANT实现()功能.

A)数据定义B)数据查询

O数据操纵D)数据控制

10.二维数组M[i,j]的元素是4个字符(每个字符占一个存储单元)组成的

串,行下标i的范围从。到4,列下标j的范围从。到5。M按行

存储时元素M[3,5]的起始地址与M按列存储时元素()的起始地址相

同。

A.M[2,4]B.M[3,4]C.M[3,5]D.M[4,4]

二、填空题(10题)

11.计算机是由运算器、存储器、输入设备和输出设备这5个

主要功能部件组成的,它们被称为计算机的五大硬件。

12.设在关系模式R(A,B,C,D,E,F,G)中,根据语义有如下函数依赖集

F=(A-B,C-D,C-F,(A,D)-E,(E,F)-G)。关系模式R的码是

13.广义表是线性表的推广,是由零个或多个单元素或所组成的

有限序列。

14.被中止的事务对数据库所数的任何改变必须撤销,这称作事务的

15.在口数据报分片后,通常用负责数据报的重组。

16.在关系模式R(D,E,G)中,存在函数依赖关系{E-D,(D,G)

-E},则候选码为“1。

17.对实际问题总是先设计一个【】模型,然后再把它转换成计算机能

实现的【】。

18.在TCP/IP协议集中,TCP协议和UDP协议运行于开放系统互联参

考模型中的层。

19.虚拟页式存储管理中,当内存空间已经被占满而又要调入新页时,必

须进行面试淘汰。页面淘汰算法包括:最佳淘汰算法(OPT)、【】、

最近最少使用淘汰算法(LRU)和最不经常使用淘汰算法(LFU)。

20.Internet上的计算机地址有两种表示形式:【】与域名。

三、单选题(10题)

21.栈和队列是两种重要的线性结构,对它们的描述错误的是()。

A.栈顶是允许操作的一端,栈底是不允许操作的一端

B.表达式求值一般采用栈来实现

C.队列是一种先进先出的线性表,允许对队列两端进行操作

D.队列可以用链式存储结构

22.下列关于SQLServer数据库服务器登录账户的说法中,错误的是

A.登录账户的来源可以是Windows用户,也可以是非Windows用户

B.所有的Windows用户都自动是SQLServer的合法账户

C.在Windows身份验证模式下,不允许非Windows身份的用户登录到

SQLServer服务器

D.sa是SQLServer提供的一个具有系统管理员权限的默认登录账户

23.以下关于OSI的描述中,错误的是()。

A.OSI详细说了各层提供的服务,但各层提供的服务与这些服务如何实

现无关

B.OSI不是一个标准,只是一个在制定标准时所使用的概念性的框架

C.OSI提供了一系列可以实现的方法

D.OSI中采用了三级抽象

24.操作系统在控制和管理进程的过程中,涉及到()这一重要数据结构,

这是进程存在的惟一标志。

A.FCBB.FIFOC.FDTD.PCB

25.在关系中选取满足某个条件的元组的关系代数运算称之为()

A.选中运算B.选择运算C.投影运算D.搜索运算

26.采用SPOOLing技术的主要目的是()。

A.提供内存和磁盘的接口B.减轻用户编程负担C.提高CPU和设备交

换信息的速度D.提高独占设备的利用率

27.下列关于SQLServer数据库用户权限的说法中,错误的是_________

A.数据库用户自动具有该数据库中全部用户数据的查询权

B.通常情况下,数据库用户都来源于服务器的登录账户

C一个登录账户可以对应多个数据库中的用户

D.数据库用户都自动具有该数据库中public角色的权限

28.若实体间的联系是M:N,则将联系类型()

A.的属性加入任一个关系模式中

B.的属性加入N端实体类型相对应的关系模式中

C.的属性加入M端实体类型相对应的关系模式中

D.也转换为关系模型

29.有两个实体集,并且它们之间存在着一个M:N联系,根据概念ER

模型转换成关系数据库的规则,这个ER结构转换成表的个数为()

A.lB.2C.3D.4

30.SQLServer2008系统数据库MASTER的主要功能是

A.控制用户数据库和SQLServer的整体运行

B.为创建新的用户数据库提供模板或原型

C为临时表或其他临时工作区提供存储区域

D.为调度信息和作业历史提供存储区域

四、C语言程序设计题(10题)

31.已知数据文件INI.DAT和IN2.DAT中分别存有100个两位十进

制数,并且已调用读函数readDat把这两个文件中的数存入数组a和b

中,请考生编制一个函数jsVal,实现的功能是依次对数组a和b中的数

按条件重新组成一个新数并依次存入数组C中,再对数组C中的数按

从小到大的顺序进行排序,最后调用输出函数writeDat把结果C输出到

文件out.dat中。组成新数的条件:如果数组a和b中相同下标位置的

数均是奇数,则数组a中十位数字为新数的千位数字,个位数字仍为新

数的个位数字,数组b中的十位数字为新数的百位数字,个位数字为新

数的十位数字,这样组成的新数并存入数组C中。

例如m123t24152115

bt3245172718IS

ct34SI12751155

播序Re*115512753451

注意i部分源程序存在文杵中・

程序中已定义s叩00卜b(100)和500]・

请勿改动数据文件IN1.DAT和IN2.DAT中的任何效榭.主曲数num().建浦敷reMDstO和"卡数wnteDuO的内霖.

1'•include<stdio.h>

2;IdefineMAX100

3;intatMAXHb(MAXJ,c(MAXJ/

4,intent•0;/•奇•初含的个敏•/

5jvoidjsVdl()

6\1

7t

8!)

;/・纪**(文件IN1DAT司M.DAT中的100个育粒十堪.依存入脓耻•国b中♦/

9!voidreadDat()

intit

FILE・fp;

fp-fopen("lnl.datM,wr");

ford-0;1<MAX;

tscanf<fp,"td",ia(11);

fclose(fp);

fp•fopen(-102.cUt","r*);

for(i-0;1<MWC;

fsc&nf(fp.Fd".«b(iD;

fclose(fp);

I

voidmainO

23

24mtitvoidwriteDat();

25ford-0;1<MXXj

26c(l]•0;

27readDat(>;

29jsVal();

29ford-0;1<MAX“C110;

30prlntf<w%d\n",c(i));

31writoDatOi

32)

/•把帧果数期C,出到文钟M3中•/

33voidwriteDat()

34'

35;FILE*tp;

36!mt1/

37jfp-fopen("out"w">;

381ford-0;1<MAX“c(i)>0;iP

39;fprlntf(fp,*ld\n",c(iH;

40;fclose(fp);

32.设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开

始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个

人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现

要求按出圈次序,每10人一组,给出这n个人的顺序表。请考生编写

函数Josegh(void)实现此功能,并调用函数writeDat,把结果P输出到文

件out.dat中。

设n=100,s=l,m=10o

①将1到n个人的序号存入一维数组P中;

②若第i个人报数后出圈,则将p国置于数组的倒数第i个位置上,而原

来第i+1个至倒数第i个元素依次向前移动一个位置;

③重复第②步直至圈中只剩下p[l]为止。

注意:部分源程序已经给出。

请勿改动主函数main和输出数据函数writeDAT的内容。

1Iinclude<stdio.h>

♦defineN100

•defineS1

4•defineM10

Sintp[100)9n,s,

voidWriteDat(void);

voidJoseqh(void)

8

9

10

11voidmain()

12(

13m-M;

14n«N;

15s•S;

16Joseqh0;

17WriteDat();

18

,♦把站果p则文件ouutei<!>•/

19voidWriteDat(void)

20(

21int1;

22FILEefp;,

23fp-fopen("out.dat*,Rww);

/•以空■的方式.以10个收界为-皿把依例■出利屏幕和文件out.dat中•/

24for1>»0;1―)

25(

26printf(R%4d",

21fprintf(fp,p(i]);

28if(i410—0)〃如果i・被10■除.出一个回车换行符

29(

30prlntf(**\nw);

31fprintf(fp,"\n*);

32}

331

34fclose(fp);

35

33.函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符串

数组XX中;请编制函数SortCharD,其函数的功能是:以行为单位对

字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新存

入字符串数组XX中。最后main函数调用函数WriteDat把结果XX输

出到文件out.dat中。

例:原文:dAe,BfC.

CCbbAA结果:fedCBAbbCCAA原始数据文件存放的格式是:每行

的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序存放在test.C文件中。

请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat

的内容。

•include<stdio.h>

•include<string.h>

3charxx(50](80];

4unsignedintmaxlxne-0;/•文章的总行数•/

5intReadDat(void);

6voidWrlteDat(void);

7voidSortCharD(void)

B

9

10

11voidmain,)

12(

13if(ReadDat())

14(

15prints(”题第文件in.dat不能打开!\n\007-);

16return;

17I

18SortCharDOi

19WrlteDat();

20I

,♦从文件m.ibi中读取一篇英文文拿存入现字栉席数iaXX中〃

21intReadDat(void)

22(

23FILE

24;inti-0;

255char-p;

26;if((fp-fopeni^in.dat-^r"))-NULL)

27jreturn1;〃如更文件in.At内声为!Wig回1

“当从文件In.dAt中读以79个字符存入没火僧碘发生执行■环体中的语句•/

28while(fgets(xx[1]/80rfp)!■NULL)

29;(

30;p•strchr(xx(i),・\n・);〃在字符率xx【i)中去找回车接厅将需一个X配的位,

31\if(p)*p・0;〃如果p的值不为零,IHC其值设置力o

32J1+*;〃行变■加】

33•)

34;maxline-i;〃肥文■的◎行做X蛤交■axhne

35jfclose(fp);

36jreturn0;

37;I

/,把帖果XX•出则文朴out.d>t中•/

381voidWriteDat(void)

39;(

40iFILE»fp;

41iunsignedinti;

42;fp-fopen(*out.dat0,"w**);

43!for(i•0;i<maxiIne;

44j(

M

45;printf(%s\n"rxx[ij);

465fprintf(fp,"s'n"・xx[i]

47i)

48jfclose(fp);

49!

34.已知数据文件in.dat中存有300个四位数,并已调用读函数readDat

把这些数存入数组a中,请编制一函数jsValue,其功能是:求出千位数

上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数

ent,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的

四位数按从小到大的顺序进行排序。最后main函数调用写函数writeDat

把数组b中的数输出到文件Out.dat中。

例如,9123.9-1-2-3X).剜读数满足条件存入敷Sib中.且个数cgu+l.

9812.9-8-1.2<0,则该畋不满足条件忽略.

注意:部分源程序存在teste文件中.

程序中已定义数组:a[300),b(300].己定义变量Kent

请勿改动数据文件in.dal中的任何1![据、主函数miinO、读函数readDaH)和写的数writeDmO的内容.

♦include<stdio.h>

inta(300]9b(300),cnt-0;〃定义整型数蛆n1300],b【3。。】和殳量ent•并且ent的初值为0

voidwriteDat();

voidreadDat();

voidjsValue()

main()

inti;

readDat();

isValue();

14writeDat();

15printf("cnt-tdXn**,ent);

16for(i*0;i<ent;i++)

17prlntfi,b(iD;

181

19voidreadDat()

20{

21FILEwfp;

22Lnti;

23fp-fopen(•,in.dat",*rw);

24for(i-0;i<300;

25fscanf(fp,ia[1])r

26fclose(fp);

27)

28voidwriteDat()

29(

30FILEefp;

31int1;

w

32fp=fopen(**out.dat/"w");

33fprintf(tp,"%d\n"rent);

34fox(i-0;1<ent;

35fprintf(£p,Fd\n”,b[i!);

36fclose(fp);

37

35.已知数据文件in.dat中存有200个四位数,并已调用读函数readDat

把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把一个四

位数的千位数位置上的值减去百位数位置上的值再减去十位数位置上

的值最后减去个位数位置上的值,如果得出的值大于等于零且原四位数

是奇数,则统计出满足此条件的个数ent,并把这些四位数按从小到大

的顺序存入数组b中,最后调用写函数writeDat把结果ent以及数组b

中符合条件的四位数输出到Out.dat文件中。

注意:部分源程序存在test.C文件中。

程序中已定义敏雄;a(200].H200),已定义变・,ent

请勿改动数剧文件m&t中的任何收据、主fAUTmainO、读南败rradD・tO和写函数writeDat。的内容.

1!linclude<stdio.h>

2\IdefineMAX200

3-inta(MAXl#b(MAX),ent-0;

4•voidwriteDat():

5;voidjsVal()

6;<

7i

8!I

9'voidreadDat()

10;(

11;inti;

12•FILE*fp;

w

13ifp-fopen("in.dat#・「”);

14;for(i-0;i<MAX;i>*)

15•fscant(fp,"QdL4a[i]);

16;fclose(fp);

175J

18Jvoidmain(>

19;i

20•Inti;

21;readDat();

22jjsValO;

23•prlntf满足条件的故■ent);

24'for(1•0;i<ent;n)

25!prlntf(-Id-,

26•prlntf;

27|vrrlteDat():

28:1

29;voidwritcDat<)

30\(

31•FILEwfp;

32;int1;

Ww

33*fp-fopen(*out.dat*fw);

34afprintf(fp*"td\n"rent);

35;for(i•0;i<ent;【,♦)

36•fprintf(fprb{lD;

37;fclose(fp);

38I)

36.已知数据文件in.dat中存有200个四位数,并已调用读函数readDat

把这些数存入数组a中,请考生编制一函数jsVa,其功能是:把千位数

字和十位数字重新组成一个新的含有两位数字的数ab(新数的十位数字

是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及

把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十

位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数

字),如果新组成的两个数ab-cd>=0且ab.cd<=10且两个数均是奇数,

同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到

小的顺序存入数组b中,并要计算满足上述条件的四位数的个数ent。

最后main函数调用写函数writeDat把结果ent以及数组b中符合条件

的四位数输出到文件Out.dat中。

注意i部分源程序存在EX文件中.

程序中已定义数姐।1(200],b(200],已定义变ent

请勿改动数据文件中的任何数据.主iAltmaiM)、读函数rcadDetO和写函数writeDatO的内容.

1•Iinclude<stdio.h>

jtdefineMAX200〃定义宏如MAX,K值等于200

3;inta(MAX),b(MAXJ,ent-0;〃定义全局豪小一1•敷姐blHAX)和受量sn.再初值等于•o

4«voidwriteDat();

5;voidjaValO

6

7

8

9!voidreadDat()〃从m.dat文件中汰取200个四付数存入依拉•中

10

inti;

FILE*fp;

fp-fopon("Xn.dat","r")

for(1•0;i<MAX;

fscanf(fpr(a[i])

/close(fp);

voidmainO

int1;

21readDat();

22jsVai();〃■用o崎也实现■日要求的功貌

23printf("满足条件的效■Qd\n“.ent);

24for(i*0;i<ent;i++)

25printf(w%db[i]);

26printf("\nw);

27writeDat0;

28j)

29voidwriteDat()〃祀计K姑果Ctt以及故饵b中符合条件的西位数■出到OULdtt文件中

30

31FILE*fp;

32int1;

33fp-fopen("out.datw,"w");

34fprintf(fp,"%d\n"rent);

35for(i*0;1<ent;ii)

36fprintf(fpr"Qd'n",b[i]);

37fclose(fp);

38

37.已知数据文件in.dat中存有200个四位数,并已调用读函数readDatO

把这些数存入数组a中,请考生编制一函数jsVal,其功能是:依次从数

组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数

且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此

条件的个数ent并把这些四位数按从小到大的顺序存入数组b中,最后

调用写函数writeDat把结果ent以及数组b中符合条件的四位数输出到

Out.dat文件中。

注意:部分源程序存在test.C文件中。

程序中已定义数组:a[200],b[200],已定义变量:ent

请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat

和写函数writeDat的内容。

•include<stdio.h>

fdefineMAX200

1nta(MAX)tb[MAX],ent«0;

voidwriteDat();

5voidjsVal()

6

7

8

/•readDat"从数界文件m.dat中法取200个内位被4Aftffi・中•/

9voidreadDat()

10(

11inti;

12FILE*fp;

13fp-fopen("in.dat**,*r**);

14for(i-0;i<MAX;1♦*)

15fscanf(fpr

16fclose(fp);

17\

18voidmain()

19

20int1;

21readDat();

22jsVal();〃0用晒改,实现电H要求的功健

23printf("满足条件的数K\d\n",err);

24for(i-0;i<ent;£+♦)

25printf(**%d”,b(i));

26prlntf(,•\nw);

27writeDat();

28I

/♦*数wriicDaH)把端聚cm取及!ttftlb中符合条件的四何散•出现outdat文科中•/

29voidwriteDat()

30(

31FILEefp;

32inti;

33fp»fopen("out.dat",Mw");

34fprintf(£p<**%d\n,\ent);

35for(i«0;i<ent;1*♦•+)

w

36fprintf(fp,%d\n**rb[i1);

37fclose(fp);

38

38.函数ReadDat实现从文件in.dat中读取一篇英文文章存入到无符

号字符串数组XX中;请编制函数ChA,其函数的功能是:以行为单位

把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到

第一个新的值,存入数组单元xx[i][0]中(其中:i是文章中的某行)。第

二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的值,存

入数组单元xx用川中。以此类推一直处理到最后第二个字符,最后一个

字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的值,存

放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行重新

存入无符号字符串数组XX中。最后main函数调用函数WriteDat把结

果XX输出到out.dat文件中。

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符

号和空格,并也按它的ASCII值作以上处理。注意:部分源程序存放在

test.c文件中。

请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat

的内容。

flnclude<stdio.h>

♦include<string.h>

unsignedcharxx[50][30];

intmaxline«0;/•文拿的总行数•/

intReadDat(void);

voidWriteDat(void);

voidChA(void)

voidmainO

if(ReadDatO)

14i

(

15;printf(1*数据文件in.dat.不能打开!\n\007w);

return;

16I»

17;}

18;ChAO;

19!WriteDat();

20;»

/•从文件indM中读取一管英文文・存入到无符号字符串数彷XX中叶

2iiintReadDat(void)

FILEwfp;

inti•0

char*p;

26•if(<fp-fopen("in.dat","r"))-NULL)

27ireturn1;

28;while(fgets(xx(1),80,fp)!*NULL)

29•

30ip■strchr(xx[i],•\n,);

31!if(P)・P-0;

32;if

33:)

34imaxline•i;

35jfclose(fp);

36;return0;

37;}

/•纪结果xx•出到ouLda!文件中•/

38voidWriteDat(void)

39!(

40;FILE*fp;

41!inti;

42;fp•fopen("out.datM,**w*);

43jfor(1-0;i<maxline;i++)

44•(

wH

45•printf(%s\nfxx[i]);

46!fprlntf(fp,**%s\n"xx(il);

ir

47;

48!fclose(fp);

49;)

39.已知在in.dat中存有若干个(个数<200)四位数字的正整数,函数

ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,

其功能要求:1.求出该文件中共有多少个正整数totNum;2.求出这些

正整数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的

这些正整数的算术平均值totPjz。最后maini函数调用函数WriteDat把

所求的结果输出到Out.dat文件中。

注意:部分源程序存放在test.C文件中。

请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat

和输出数据函数WriteDat的内容。

Iinclude<stdlo.h>

•defineMAXNUM200

3intxx(MAXNUM);

4inttotNtun-0;〃文件IrucUt中共有多少个iE・数

5inttotCnt-0;〃符合条件的正■敷的个敷

6doubletotPjz-0.0;〃平均值

7intReadDat(void);

8voidWclteDat(void);

9voidCalValue(void)

10(

11

12I

13voidmain()

14

15inti;

16for(i-0;i<MAXNUM;i++)

17xx[1].0;

18if(ReadDat())

19(

20prlntf("数据文件ln.dat不能打开!\00八n");

21return;

22)

23CalValueO;

24printf("文件ln.dat中共有正整数个totNum);

25printf符合条件的正整数的个数,*d个\n“,totCnt);

26printf「平均值-Q.Zlf'nLtotPjz);

27WriteDat();

28)

,•速取这若产个正•数并存入1fcMu中•/

29intReadDat(void)

30(

31FILE*fp;

32inti-0;

HM

33if<(fp*fopen("in.datr*r))-NULL)

34return1;

35while(!feof(fp))

36(

37fscant(fpa"Qd.",

38)

39fclose(fp);

40return0;

41]

,・1C计IT妫豪存入文件。仇.dau中•/

42voidWriteDat(void)

43(

44FILEefp;

45fp■fopen("out.dat*,Hww);

46fprintf(fp,"%d\n%d\nt.21f\nn,totNum,totCnt,totPjz);

47fclose(fp);

48

40.已知在文件in.dat中存有10。个产品销售记录,每个产品销售记录

由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整

型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价*数

量。函数ReadDat读取这100个销售记录并存入结构数组sell中。请编

制函数SortDat,其功能要求:按金额从小到大进行排列,若金额相等,

则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中。

最后main函数调用函数WriteDat把结果输出到文件out.dat中。

提示:若中间变量为PROtemp,则可以直接使用结构赋值语句进行解

题。

例如:sell[i]=temp;

注意:部分源程序存放在test.C文件中。

请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。

;Iinclude<stdio.h>

2!Iinclude<9trinq.h>

3;IIncludeOtdlib.h>

4:tdeflnoMAX100

5jtypudofstruct

6!(

7chardm(5);/•代码•/

8charme(1111/,产品名”•/

9intdj;•饼•/

10Intsi;/•B1•/

11longje;/•金・•/

12;jPRO;

13!PROselllMAX);

14;voidReadDat();

15JvoidWrlteDat();

16;voidSortDat()

17

18

19

20•voidmain。

21pt

22momoot(sellt0/sizeot(sell)):

23ReadDat()j

24SortDatO;

25WriteDatO;

26I

21voidReadQat()

28(

29FILE•fp;

30charatr(80)tch(ll);

31int1;

w

32fp-fopen(*in.d4t"f"r);

33ford-0;1<100;

34(

35fgetslstir80,fp);

36memepy(sell(1).dmrstrr4);

37memcpy(sell|ij.me,str♦4.10);

38meracpy(ch,str*14,4):chf4j-0;

39sell(i].dj・atoi(ch);

4memcpy(ch/Str*18r5):ch(5]-0;

41sell(l).si-atoi(cb);

42sell(i].je-(long>sellll).dj•sell(i)«sl;

43>

44fclose(fp);

45)

46voidWrlteDatO

47(

48FILE*fp;

49int1;

50fp•fopen("out*w*);

51tor(1•0;i<100;"♦)

52(

5?fprlntf(fp«"ists%4d%5dt101d\n*rsellfl).dm/sell(l].mc«sell|i).djrscll(l].91,

sellli).je)t

54;

55!fclose(fp);

56i1

五、设计与应用题(2题)

41.设某教学管理系统,其查询模块需要提供如下功能:I.查询系信

息,列出各系编号、系名和系办公电话;II.查询某系教师的信息,

列出教师号、教师名、工资和聘用日期;III.查询某教师讲授的课程

信息,列出课程号、课程名和学分;IV.查询讲授某门课程的教师信

息,列出教师名和职称;V.查询某门课程的先修课程信息,列出先修

课程号和先修课程名。系统有如下业务规则:I.一个系可聘用多名

教师,一名教师只能受聘于一个系;II.一名教师可讲授多门课程,

一门课程可由多名教师讲授;m.一门课程可以有多门先修课程,也

可以没有先修课程。(1)请根据以上查询功能与业务规则,用ER图

描述该系统的概念模型。(5分)(2)将ER图转换为满足3NF的关

系模式,并说明每个关系模式的主码和外码。(5分)

42.设某全国性的运输企业建立了大型OLTP系统,并在该系统之上建立

了数据仓库。OLTP系统和数据仓库中有如下数据表:运输明细表(运输

单ID,发送站ID,终到站ID,货物ID,货物重量,运输价格,发货日

期)汇总表1(发送站ID,终到站ID,货物ID,发货日期,总重,总

运价)汇总表2(发送站ID,终到地区ID,货物ID,发货日期,总重,

总运价)汇总表3(发送站ID,终到站ID,货物ID,发货月份,总重,

总运价)汇总表4(发送地区ID,终到地区ID,货物类别ID,发货日

期,总重,总运价)该企业管理的货运站约有10。个,货物约有500种

共10类,各汇总表都建有主码,且各表有合理的维护策略,在每次维护

后数据能保持一致。设有视图V,该视图的访问频率很高,其查询结果

模式为(发送地区ID,终到站ID,发货月份,总重,总运价),该视图

现以汇总表1为计算数据源。经监控发现,汇总表1的被访问频率过高,

导致系统整体性能下降,而其它汇总表被访问频率较低。在不增加汇总

表和索引的情况下,请给出一个改善系统服务性能的优化方案,并简要

说明理由。(10分)

六、单选题[1分](2题)

43.查询处理器和存储管理器是数据库管理系统中的核心模块。下列关于

查询处理器和存储管理器的说法,错误的是()o

A.查询处理器中的DML编译器会对用户提交的DML语句进行优化,

并将其转换成能够执行的底层数据库操作指令

B.存储管理器中的查询执行引擎会根据编译器产生的指令完成具体数

据库数据访问功能

C.存储管理器中的缓冲区管理器负责将从磁盘读出的数据块放入内存

缓冲区,同时也负责对缓冲区中的数据块进行维护

D.查询处理器中的DDL编译器编译或解释用户提交的DDL语句,并将

生成的元数据存储在数据库的数据字典中

44.从功能上讲,数据库应用系统设计包括下列四个层次,其中包括构件

设计的是()o

A.表示层B.业务逻辑层C.数据访问层D.数据持久层

参考答案

LD解析:关键字是属性或属性的集合,其值能惟一地标识一个元组。

2.B解析:人工管理阶段、文件系统阶段、数据库系统阶段各自的特点。

注意:在人工管理阶段,数据不保存,数据不共享;在文件系统阶段,

数据可以长期保存,但数据共享性差,数据独立性差,冗余度大,不易

扩充;在数据库系统阶段数据结构化,数据共享性高,独立性高。因此,

A),C),D)选项错误。掌握数据管理技术发展的3个阶段有哪些异同点。

3.B解析:计算机系统发生的主要故障主要是事务故障、系统故障和磁

盘故障。

4.A解析:Oracle公司的开发工具Developer/2000是Oracle的—^较新

的应用开发工具,包括OracleForms、OracleR叩orts、OracleGraphics和

OracleBooko其中的OracleForms是快速生成基于屏幕的复杂应用的工

具,所生成的应用程序具有查询和操纵数据的功能,可以显示多媒体信

息。因此在Oracle公司的开发工具Developer/2000中,能够生成可进行

数据查询和操纵的程序的模块的是OracleFormso

5.D解析:本题考核有关数据结构中线性表查找的基本概念与知识,参

考251”线性表查找“。散列表是线性表查找的一种方法。这种方法的一

个特点是,平均检索长度不直接依赖于元素的个数。元素的个数增加,

其平均检索长度并不增加,而与负载因子有关。所以,本题的答案是D。

6.C解析关系数据模型是1970年美国IBM公司E.F.Codd首次提出的。

7.AA。【解析】分块查找是将表分成若干块,分块的原则是数据元素的

关键字在块与块之间是有序的,而块内元素的关键字是无序的。分块法

可以适应动态变化的要求。其他三种是在顺序存储的一组记录内进行查

找的。

8.D解析:虚拟页式存储管理中缺页中断处理所做的工作为:地址映射

时,当从页表中查出此页信息不在内存,则发生缺页中断。此时,暂停

进程执行,CPU转去执行缺页中断处理程序。该程序负责把所需的页从

外存调入内存,并把物理页号填入页表,更改驻留位,然后再返回继续

执行被中断的进程。

9.D解析:SQL语句按照功能分为四类:

数据定义:CREATE、DROP、ALTER:

数据操纵:INSERT.UPDATE,DELETE:

数据查询:SELECT:

数据控制:GRANT.REVOKEo

10.B

11.控制器控制器解析:以存储程序原理为基础的冯・诺依曼结构的计算

机,一般都由5大功能部件组成,它们是:运算器、控制器、存储器、

输入设备和输出设备。运算器对数据进行算术运算和逻辑运算;控制器

控制各部分自动协调地工作,完成对指令的解释和执行;存储器存放程

序和数据;输入设备是外部向计算机传送信息的装置;输出设备是将计

算机内部二进制形式的信息转换成人们所需要的或其他设备能接受和

识别的信息形式。

12.(AC)(A,C)解析:候选码的定义是:设K为关系模式R<U,F>中的

属性或属性组。若K-U在F+中,而找不到K的任何一个真子集K',

能使K-U在F+中,则称K为关系模式R的候选码。本题易知C必然

是主属性,再利用增广律逐个尝试可以知道(A,C)是候选码。

13.子表子表

14.回滚回滚解析:未能成功完成的事务称为中止事务,中止事务必须

对数据库的状态不造成影响,即中止事务对数据库所做的任何改变必须

撤销。一旦中止事务造成的变更被撤销,则称事务已回滚。

15.目的主机【解析】在接收到所有分片的基础上,主机对分片进行重

新组装的过程称为IP数据报重组。IP协议规定,只有最终的目的主机

才可以对分片进行重组。

16.(D,G),(E,G)因为E-D,(D,G)一E所以(E,G)可以作为候

选码,(D,G)-E,E-D(D,G)可以作为候选码

17.概念模型;逻辑模型概念模型;逻辑模型

18.传输【解析】在口互联中,传输控制协议(TCP)和用户数据报协议

(UDP)是传输层最重要的两种协议,它们为上层用户提供不同级别的通

信可靠性。

19.先进先出淘汰算法(FIFO)页面淘汰算法包括最佳淘汰算法,先进先

出淘汰算法,最近最久未使用算法,最近使用最少淘汰算法

20.IP地址IP地址解析:Internet上的计算机地址有两种表示形式:IP

地址与域名。每台接到Internet上的计算机、路由器都必须有惟一的IP

地址。掌握网络中IP地址的分配问题。

21.C解析:队列是一种先进先出的线性表,它只允许在表的一段进行插

入,而在另一端进行删除,允许插入的一端叫做队尾,允许删除的一端

叫做队头。

22.B

23.C

OSI参考模型并没有提供一个可以实现的方法。OSI参考模型只是描述

了一些概念,用来协调进程问通信标准的制定。

24.D解析FCB(文件控制块)是系统为管理文件而设置的一个数据结构,

是文件存在的标志,记录了系统管理文件所需要的全部信息;FIFO是

先进先出,一般表示某些算法(队列操作、存储页面淘汰等);PCB是进

程控制块,描述进程的基本情况以及进程的运行变化过程。

25.B

26.D解析:在一类设备上模拟另一类设备的技术称为虚设备技术。通常

使用高速设备来模拟低速设备,以此把原来慢速的独占设备改造成为若

干进程共享的快速共事设备。就好像把一台设备变成了多台虚拟设备,

从而提高了设备的利用率.我们称被模拟的设备为虚设备。SPOOLing

技术是一类典型的虚设备技术。

27.A

28.D

29.C

30.A

31.\n【审题关键句】数组相同下标位置上的奇数,数组a中十位数等于

新数的千位数字,个位等于新数个位数字,数组b中的十位等于新数的

百位数字,个位数字等于新数的十位数字,存入数组,从小到大排序。

\n【解题思路】

\n①定义整型循环变量i、j和局部变量trap。

\n②在for循环语句中,循环变量i从0开始,依次递增直到其值等于或

大于MAX,用if条件语句判断如果a用和b[j]同时为奇数,由a国的十

位数字为新数的千位数字,个位数字为新数的个位数字,b[i]的十位数字

为新数的百位数字,个位数字为新数的十位数字,把这个新组成的数存

入数组元素c[cn],同时数组下标变量cn加1。

\n③在第一层for循环语句中,循环变量i从0开始,依次递增直到其值

等于或大于ent,在第二层循环中,循环变量{从i+1开始,依次递增直

到其值等于ent,用if条件语句判断如果数组元素c[i]大于c[j],则两者

进行互换,实现数组C中的数按从小到大的顺序进行排序。

\n【参考答案】

\n

\n

32.\n[审题关键句】围圈问题。

\n【解题思路】

\n①定义整型变量i、j,表示出圈人位置的变量si和出圈人序号的变量

Wo并将S的值赋给变量sl(s的值已在源程序中赋值为1)。

\n②通过一个for循环,将n个人的序号存入一维数组P中(n的值已在

源程序中赋值为100)o

\n③再建立一个for循环,循环变量i从n开始,即从100开始,依次递

减直到其值小于2时退出循环。由于每执行一次循环,人数就会减少1

个,因此,此处的for循环应表示为递减方式。在该循环体中,先计算

每次出圈人的位置,通过表达式“(sl+m.l)%i”计算每次出圈人的位置

(m的值已在源程序赋值为10)。若所得结果为0,则说明要开始报数的

是最后一个人,在此人前面的那个人就是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论