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

下载本文档

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

文档简介

2021年湖北省鄂州市全国计算机等级考试

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

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

一、1.选择题(10题)

1.设有关系R=(A,B,C),与SQL语句selectdistinctA,CfromR

whereB=5等价的关系代数表达式是

I.7iA,C(oB=5(R))

II.oB=5(7iA,C(R))

A.都等价B.仅IC.仅IID.都不等价

2.临界区是指并发进程中访问共享变量的

A.管理信息段B.信息存储段C.数据段D.程序段

3.实体完整性要求主属性不能取空值,这一点通常是通过()。

A.定义外部键来保证B.定义主键来保证C.用户定义的完整性来保证

D.关系系统自动保证

4.计算机病毒是一类侵入计算机系统并具有潜伏性、传播和破坏能力的

A.生物B.指令C.程序D.细菌

5.在操作系统的各个功能组成部分中,不需要硬件支持的是

A.进程调度B.时钟管C.地址映射D.中断系统

6.下面所列条目中,哪一个是当前应用开发工具的发展趋势?

I.采用三层Client/Server结构

II.对Web应用的支持

III.开发的、构件式的分布式计算环境

A.I和IIB.II和niC.I和HID.都是

7.下面页面淘汰算法中,会产生Belady(异常)现象的是____。

A.先进先出页面淘汰算法(FIFO)

B.最近最少使用页面淘汰算法(LRU)

C.最不经常使用页面淘汰算法(LFU)

D.最佳页面淘汰算法(OPT)

8.为了将一台只允许一个用户独占的设备改造成为多个用户共享的设

备,可采用()。

A.通道技术B.缓冲技术C.spooling技术D.虚拟存储技术

9.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,

语句INSEPT、DELETE,UPDATE实现哪类功能?

A.数据查询B.数据操纵C.数据定义D.数据控制

10.在包括1000个元素的线性表中实现如下各运算,哪一个所需要的

执行时间最长?()

A.线性表按顺序方式存储,性表的第10个结点后面插入一个新结点

B.线性表按链接方式存储,性表的第10个结点后面插入一个新结点

C.线性表按顺序方式存储,删除线性表的第990个结点

D.线性表按链接方式存储,删除指针P所指向的结点

二、填空题(10题)

11.一个数据库有多个外模式,有【】内模式。

12.若一颗二叉树中只有叶结点和左右子树皆非空的结点,设叶结点的

个数为n,则左右子树皆非空的结点个数为o

13.数据库主要维护者是()。

14.IPV6的128位地址按每16位划分为一个位段,每个位段被转换为一

个4位的十六进制数,并用冒号隔开,这种表示法称为表

示法。

15.数据库并发操作控制包括以【】方式打开数据库和对数据库或记录

加锁两种方法。

16.设有关系R(A,B,C)和S(A,D,E,F),若将关系代数表达式:

nR.A,R,R.B,S.D,S.F(RsS)用SQL语言的查询语句表示,则有:

SELECTR,A,B,D,FFROMR,SWHERE[]o

17.对并行数据库的研究是研究如何对数据库中的关系进行划分,

并把它们分布到多个处理器或多个磁盘。

18.计算机系统中发生某个事件时,CPU暂停正在执行的程序,转去执

行相应的程序,执行完后再返回原先程序断点继续执行的过程,称为

19.多表中相关列称为()码。

20.RIP协议中表示距离的参数为

三、单选题(10题)

21.在关系数据库设计中,设计关系模式是()的任务。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段

22.对数据库模式设计进行优化有三项指标,下列指标中不属于这三项

指标的是()

A.A.单位时间内访问的逻辑记录个数要少

B.单位时间内数据的传送量要少

C.数据库模式中的关系(即数据库文件)数目要少

D.系统占用的存储空间要少

23.下列关于数据库重构的说法中,错误的是_________o

A.数据库的重构就是对数据库的逻辑结构作必要的小范围改变

B.当存储空间的分配过于零散,导致存取效率下降,所以必须重构数据

C.数据库重构包括重新设计数据库及其应用程序

D.如果能够重构数据库,尽量不要重新设计数据库及相应的应用程序

24.如果两个实体之间的联系是M:N,则在转换成关系模型时,()引入

第三个交叉关系。

A.需要B.不需要C.无所谓D.将两个实体合并

25.在计算机硬件系统的基本组成中,完成解释指令、执行指令的功能

部件是

A.运算器B.控制器C.存储器D.输入输出设备

26.一个公司有若干名兼职人员,而每个兼职人员有可能在多家公司打

工,则公司与兼职人员之间具有

A.一对一联系B.一对多联系C.多对多联系D.多对一联系

27.在关系数据库系统中,一个关系相当于()

A.一张二维表B.一条记录C.一个关系数据库D.一个关系代数运算

28.四个元素al、a2、a3和a4依次通过一个栈,入栈过程中允许栈顶元

素出栈。假设某一时刻栈的状态如下:则不可能的出栈序列

是()

A.这种体系结构由客户、服务器以及客户与服务器之间的连接三部分组

B.在这种结构中,客户机和服务器协同完成一项任务

C.连接客户和服务器最广泛采用的接口是开放数据库连接

D.客户进程与服务器进程之间的通信层次与OSI参考模型有根本不同

29.在数据库概念设计阶段,将局部E-R图集成为全局的E-R图时有可

能发生冲突,下面表述错误的是()。

A.A.总共可能发生2类冲突

B.类型、取值范围的冲突属于属性冲突

C.属性冲突通过协商、讨论等手段进行解决

D.结构冲突要用技术手段解决

30.用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较

次数最少的是()

A.94、32、40、90、80、46、21、69

B.32、40、21、46、69、94、90、80

C.21、32、46、40、80、69、90、94

D.90、69、80、46、21、32、94、40

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

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

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

中依次取出一个四位数,对每一个四位数作如下处理:把个位数字和千

位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位

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

字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原

四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个

新组成数:一个是奇数,另一个为偶数,并且至少有一个数能被17整

除,同时两个新数的十位数字均不为零,则将满足此条件的四位数存入

数组b中,并计算满足上述条件的四位数的个数ent,而后对数组b进

行降序排序。最后main函数调用写函数writeDat把结果ent以及数组b

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

例如:一个四位数为4512,依题意组成的第一个新数为24,第二个新

数为51,其中51能被17整除,这两个新数的十位数字不为零,则4512

这个四位数满足题意所规定条件。

注感।部分源程序存在teste文件中.

程序中已定义数蛆:a[200].b(200],已定义企It:ent

请勿改动数据文件in.cUt中的任何数据,主必数num()>由数rcadDatO和写函数writeDat()的内容.

1!linclude<stdio.h>

2jtdefineMAX200

3;inta[MAX],b(MAX],ent,0;

4!voidwriteDat();

5tvoidjsVal()

6”

7j

8;}

9IvoidrcadDat()〃从1n・da匕文件中考取20。个网位攻〃入敏Ma中

10;(

11•int1;

12FILE*fp;

13fp-fopen("in.dat**,*rw

14for(i-0;i<MAX;

15fscanf([i)

16fclose«fp);

17

18voidmain()

19

20Inti;

21readDat();

22jsValO;〃•用嫉败,SVLo,实现・目要求的功底

23printf「清I足条件的数7d\n”,ent);

24for(i*0;1<ent;

25printf(*%dIb(i]);

26printf;

27writeDat();

28

29voidwriteDat()〃把计算皓果entllAtttHb中符合条件的四位数七出到皿⑶u文件中

30

31

32int1;

33fp-fopen(wout.datR;

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

35for(iw0;i<ent;“♦)

ww

36fprintf(fpr%d\nrb[1]);

37fclose(fp>;

38

32.已知在又件in.dat中存有100个产品销售记录,每个产品销售记录

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

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

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

制函数SortDat,其功能要求:按产品代码从小到大进行排列,若产品代

码相同,则按金额从小大进行排列,最终排列结果仍存入结构数组sell

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

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

题;产品代码比较请用函数strcmp进行解题。例如:sell[i]=temp;

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

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

Iinclude<stdio.h>

2*tinclude<string.h>

3•tinclude<stdlib.h>

4;♦defineMAX100

5typedefstruct

7chardm(5);八产豆代码•/

charme(11];/•产易名算*/

intdj;/•总价•/

10;intsi;/•收••/

11ilongje;/•金・•/

12;PRO;

13!PROsell[MAX);

14»voidReadDat();

15;voidWriteDat();

16!voidSortDatO

17;(

18

19

20voidm41n()

menisct(nolU。,slzeof(sell));

ReadDat()f

SortDa匕0;

WriteDat():

/•试取B100个帆2记景先俘人削I种a》HI中♦/

voidReadD&t()

28(

29FILE•fpj

30charatr[80]ch[11];

31intij

32fp-fopen(*in.datw>"r");

33for(1•0;i<100;1-M-)

34(

35fgeta(str,80.fp);

36memcpy(sell[£]・也n.str,4”

37memcpy(sell[1].mefstr♦4.1

38

meincpy(chrstr+14,4);ch(4)«0;

39sei1(1]«dj,Atol(ch);

40memepy(chfstr*18,5):ch15]«0;

sell[1].si-atoi(ch);

42sell(11•je•(long)sell(i].dj

43

44fclose(fp);

45

八把姑星■出到文"gt&t中。

・dm,aellfil.me,sell(i|.dj,sellli].si

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

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

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

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

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

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

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

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

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

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

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

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

test.c文件中。

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

的内容。

I•flnclucle<stdio.h>

21iinclude<string.h>

3;unsignedcharxx[50)(80];

4!intmaxiine■0;/•文章的总行数•/

5;intReadDat(void);

6'voidWriteDat(void);

7ivoidChA(void)

ei(

9:

10;}

11{voidmain()

13if(ReadDatO)

14(

15printf(。数据文件in.dat不籍打开!\n\007");

16return;

17}

18ChA();

19WriteDat();

20]

/•从文件m.dM中康我一编英文丈量存入》无符号字辨申数的XM中•/

21intReadDat(void)

22(

23FILE*fp;

24inti•0;

25char*p;

26it((fp-fopen(win.datw,Hr*))-NULL)

27return1;

28while(fgets(xx(i)<80#fp)9NULL)

29(

30p■strchr(xx(i)t•\n*);

31if(p),p«0;

32

33)

34maxline•i;

35fclose(fp);

36return0;

37)

/•把结果xx*出到ouLdal文件中•/

38voidWriteDat(void)

39(

40FILE*fp;

41inti;

42fp-fopenLout.dat".”");

43for(i«0;i<maxline;1+♦)

44(

w

45printf(%s\n"/xx(i));

R

6fprlntf(fp/"%s\n#xx[11);

47)

48fclose(fp);

49

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

由产品代码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的内容。

14include<stdio.h>

2Iinclude<»trlng.h>

3•IncludeOtdlib.h>

4fdefineMAX100

5typed©fstruct

6(

7chardm⑸;/•产4代码•/

8charnc(lll:/•MW•/

9intdj;/•・饼•/

10intsi;/•■■•/

11longje;/••・•/

12)PRO;

13PRO8011【MAX);

14voidReadDat();

15voidWritet>at();

16voidSortDat()

17

16

19

20voidmain()

21<

22momoot(selli0.stzeof:

23ReadDat();

24SortDat();

25WriteDatO;

26)

21voidReadDat()

28I

29FILEefp;

30charatr(80),ch(ll);

31Int1;

32fp-fopen("in.ckit","rw);

33for(i•0;1<100;

34(

35fgetBtstXr80,fp);

36memcpy(sell(l).dm,str,4);

37memcpy(sellfil.me,str♦4,10);

38menepy(ch«stx*14r4):ch(4J-0:

39sell(i).dj-atoi(ch>;

40memcpy(chrstr*18v5);ch(5]-0;

41sell(i).al-atoi(ch);

42sell(i).je-(long)sellU).dj•selldl.al;

43)

44fclose(fp);

45}

46voidWrlteOat()

47<

48FILEefp;

49inti;

50fp-fopen("out.**w*);

51tor(1•0;1<100;*+♦)

52

w

fprintf(fp,3%4d%5dt101d\n,seUUbdh,sellll).mc«aellUJ.djr.

sttllll)»je);

54;

55!fclose(fp);

56h

35.函数readDat是从文件in.dat中读取20行数据存放到字符串数组

XX中(每行字符串长度均小于80)。请编制函数isSort,其函数的功能

是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍

按行重新存入字符串数组XX中,最后调用函数writeDat把结果)XX输

出到文件Out.dat中。

条件:字符串从中间一分为二,左边部分按字符的ASCII值降序排序,

右边部分不作处理,排序后,左边部分与右边部分按例子所示进行交换。

如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原

位置上。

例如:位置012345678

源字符串abcdhgfe

123498765

则处理后字符串hgfcdcba

876594321

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

请勿改动数据文件in.dat中的任何数据、主函数maiM)、读函数n»dDat()和写的数wnteD&U)的内容.

1!linclude<stdio.h>

2j•include<string.h>

3;charxx[20]180);

4voidreadDat();

5voidwrlteDat();

6voidjsSort()

7

8

9

10voidmain()

11

12readDat();

13jsSort();

14wrlteDat("

15

/•从文件indii中注取20打数究存放到字符率依蛆xx中•/

16voidreadDat()

17!(

18•FILE-in;

19•inti-0;

20char*p;

nw

21in=fopen(in.dat,"D;

22while(i<20“fgets(xx{i]v80.in)NULL)

23

24p-strchr(xx(ij,•\n,);

25if(p)*p•0;

26

27]

28fclose(in);

29;)

\/,史州Rxx*出到文件outt中•/

30jvoidwriteDat()

31

32FILE*out;

33int1;

34out•fopen(*out.datw/**wM);

35for(i»0;1<20;if)

36(

37printfxx[i));

38fprintf(out,xxri!);

39)

40fclose(out);

41

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

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

上的数加个位数上的数等于百位数上的数加十位数上的数的个数ent,

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

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

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

例如:6712,6^2=7+1.则该数满足条件存入数蛆b中,且个数cnl=cm7.

8129,8*9!-1*2,则该数不满足条件忽略.

注意,部分源程序存在testx文件中.

程序中已定义数姐:[300],b{300).已定义变量,art

请勿改动数匏文件m.dat中的任何数据、主函数maiM)、读语《(readDmO和写论数wrilcD叫)的内容.

1Iinclude<stdio.h>

2inta[300),b[300),cnt-0;

3voidwriteDat0;

4voidreadDat();

5voidjsValue0

7

9main()

10I

11int1;

12readDat();

13jsValue();

14writeDat();

tw

15printf(•cnt-%d\nrent);

16for(i*0;i<ent;

w

17printf«%d\nri,b[i]);

I、

voidreadDat()

20(

21FILE*fp;

22int1;

23fp-fopen;

24for(i■0;i<300;i++)

w

25fdcanf(fp^%dr",&&[1]);

26;fclose(fp);

271)

28ivoidwriteDat()

29>(

30»FILEefp;

31;int1;

32.fp-fopen(°out.dat**,**ww);

33;fprintf(fp,"d'n”,ent);

34jfor(i-0;i<ent;1♦♦)

w

35!fprintf(fpr-%d\nrb(i));

36ifclose(fp);

37八

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

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

位数的千位数位置上的值小于等于百位数位置上的值,百位数位置上的

值小于等于十位数位置上的值,以及十位数位置上的值小于等于个位数

位置上的值,并且原四位数是偶数,则统计出满足此条件的个数ent并

把这些四位数按从小到大的顺序存入数组b中,最后调用写函数

writeDat把结果ent以及数组b中符合条件的四位数输出到文件Out.dat

中。

注意,部分簿程序存在lestc文件中•

程序中已定义数组:a[200].b(200].已定义安置ient

请勿改动数据文件in.dat中的任何数据、主函数main。、读的数reMDat。和写的敷writeDatO的内容・

1»*include<stdio.h>

2jfdefineMAX200〃定义宏变■MAX,N值杆20。

【】

3»inta[MAX],b(MAX),ent»0;〃定义务不数循a【MAX),bMAX和交■cm,并”■cn七的初值为口

4;voidwriteDat();

5'voidjsVal()

6-I1

8

9;voidreadDatO

10

FILEefp;

fp•fop>en(**in.dat","r");

for(1-0;1<MAX;H

ISfscanf(fp,"Qd",

16fclose(fp);

17

inti:

21readDat();

22jdValO;〃・用“丫曷1()水数实现及"要求的功能

23printf("涓足条件的数ent);

24for(1

25printf(**%d*,b(1

printf("Xn**);

27writeDat();

28

voidwriteDat()

30j(

31;FILE・fp;

32!int1;

33Jfp•fopen(*out.dat,"w">;

34;fprintf(fp,"Sd'n".ent);

35*for(1■0;i<ent;£♦♦)

36!fprintf(fp^b[1))

37«fclose(fp);

38•)

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

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

数各位上的数字均是奇数,则统计出满足此条件的个数ent并把这些四

位数按从大到小的顺序存入数组b中。最后main函数调用写函数

writeDat把结果ent以及数组b中符合条件的四位数输出到Out.dat文

件中。

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

程序中已定义数组:4200].b(200b已定义攵*cm

请勿改动数据文件Hdai中的任何数据、主论数mainO、波函数readDatQ和写函数writeDttO的内容.

finclude<stdio.h>

IdefineMAX200

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

4voidwriteDat();

5voidjsValO

6

7

6

9voidreadDat0〃从ln.dat文件中供取200个四位数存入数如a中

10

inti;

12FILE•fp;

13fp•fopen(Hin.datw,*rw)

14for(i-0:1<MAX;ii)

15fscanf(fp/7dL&a[1])

fclose(fp);

17

voidmain()

20inti;

21readDat();

22jsval();〃•川南也”v“八,实现要求的功能

23printf「满足条件的数-、d\n”,ent);

24for(i•0;i<ent;if

25prlntf("%d"•b[i));

26printf(*\nw):

27writeDat();

28

29voidwriteDat0//ICilWM小cm以及数蛆b中构介条祥的四位依■由到ourdu文件中

30

31FILE-fp;

32inti;

33fp-fopen("out.dat*,Hw*);

34fprintf(fp/ent);

35for(1-0;i<ent;

36fprintf(fp,Fd\rT.bfi]);

37fclose(fp);

38

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

串数组XX中,请编制函数ConvertCharA,其函数的功能是:以行为单

位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母

Z,则改写成字母a,大写字母和其他字符保持不变。把已处理的字符串

仍按行重新存入字符串数组XX中。最后main函数凋用函数WriteDat

把结果XX输出到文件Out.dat中。

原文*Adb.Bcdza

abck.LLhj

结果:Acc.Bdcab

hrHIfTtk

原始数据文件存放的格式是:银行的窗度均小于80个字符,含标点符号和空格.

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

请勿改动主函数main。、读函数ReadDaM)和■出函数WritcDmO的内容.

1、tinclude<stdio.n>

2!!include《string.h>

3•charxx[50][80];

4;intmaxline■0;/*文*的总打数•/

5jintReadDat(void);

6;voidWriteDat(void);

7•voidConvertCharA(void)

8

9

10

11•voidmainO

12!l

13jif(ReadDat())

14(

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

16return;

17j}

18ConvertCharA();

19jWrlteDatO;

2。•I

!,♦从文件m&t中it取一■英文文章存入到字符率数盥u中〃

21;intReadDat(void)

22!(

23\FILEwfp;

24|inti»0;

25•char*p;

26jif((fp-fopen("in.dat","r"))—NULL)

27return1;

28\while(fgeta(xx(i]r80rfp)!-NULL)

29{(

30p-strchr(xx[1],f\n*);

31if(p)*p-0;

32if

33i,

34;maxline-i;

35fclose(fp);

36return0;

37I

/•纪结果U•出到文件OUL&t中•/

38voidWriteDat(void)

39(

40FILE#fp;

41int1;

42fp・fopen(**out*wM);

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

44(

45print/xx[i]);

46fprintf(fp,"%s\n*rxx(i]);

47\

48!fclose(fp);

49

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

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

的数减千位数上的数减百位数上的数减十位数上的数大于零的个数ent,

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

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

数组b中的数输出到文件Out.dato

例如;1239.9J-2-3M),则该数满足条件存入数组b中,旦个数cnfcnt+l•

8129.9-8-l-2<0,则该数不满足条件忽略,

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

程序中已定义数组।4300],b(300].已定义变最:cm

请勿改动数据文件山.&>1中的任何数据、主函数main()、读话数readDaU)和写函数writeDaM)的内容.

tInclude<stdio.h>

2inta【3001,b[300hcnc-0;

3voidreadDat();

4voidwriteDat();

5voidjsValue()

6(

7

8]

9main()

10

inti;

12readDat();

13jsValueO;

14writeDat();

6

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

41.已知有如下关系模式:RI(a,b,c),R2(c,d,a),R3(e,

f),R4(a,e,g),其中标下划线的属性是主码。请将上述关系模

式用适当的ER图表示出来,并用下划线标注出作为实体主码的属

性。(10分)

42.设在采用SQLServer2008数据库的图书馆应用系统中有三个基本表,

表结构如下所示,请用SQL语句完成下列两个查询:BORROWER:借

书证号姓名系名班级12011106蒋辉文计算机系12-112011107王丽计算

机系12-112012113范园园信息系12-2LOANS:借书证号图书馆登记号

借书日期12011106T0010012012.01.0212012113

T0010262013.02.O6BOOKS:索书号书名作者图书登记号出版社价格

TP3U.1数据库系统李明T001001科学19.00TP311.2二级C语言王

珊T001026人民32.00(1)检索至少借了5本书的同学的借书证号、

姓名、系名和借书数量。(5分)(2)检索借书和王丽同学所借图书中的

任意一本相同的学生姓名、系名、书名和借书日期。(5分)

六、单选题口分K2题)

43.下列关于索引的说法中,错误的是()。

A.索引是典型的空间换取时间的方法,因此在设计索引时要在空间和时

间两者之间进行权衡

B.建立聚集索弓但寸,数据库管理系统会按照聚集索引键值对数据进行排

C.聚集索引的键值不能重复

D.当经常进行范围查询时,在范围列上建立索引可以提高该类查询的效

44.效率低下的SQL语句往往是导致系统性能不佳的主要原因。设有如

下优化系统性能的方法:I.利用存储过程封装频繁使用的SQL语句

II.重新安排数据存储,整理回收碎块ni.不要随意使用游标w.合理

使用相关子查询V.调整表结构定义以上属于优化SQL语句执行效率

方法的是()o

A.I、m、WB.i、m、vc.n、w、vD.i、w、v

参考答案

LB解析:本题考查关系代数的基本运算,参见《数据库技术》一书422

节“关系代数”。对II来说,由于首先进行投影运算,所以结果关系中仅

剩下A和C两个属性,则无法对属性B进行进一步的投影运算,故II

不正确。本题正确答案为B。

2.D不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对

它进行访问。每个进程中访问临界资源的那段程序称为临界区

3.B解析:现实世界中实体是可区分的,他们具有某种惟一的标识,主

码不能取空值,因为主码取空值说明存在某个不可标识的实体,而这于

前述思想矛盾的。

4.C解析:本题是对计算机病毒基本概念的考查。计算机病毒是一类特

殊的具有破坏性的计算机程序,它具有自我复制的功能,可通过非授权

人入侵并隐藏在可执行程序或数据文件中。当计算机运行时原病毒把自

身精确拷贝或修改拷贝到其他程序体内,影响或破坏正常程序的执行和

数据的正确性。因此计算机病毒是一种程序,本题正确答案为选项Co

5.A解析:进程调度即处理机调度。在多道程序设计环境中,进程数往

往多于处理机数,这将导致多个进程互相争夺处理机。进程调度的任务

是控制、协调进程对CPU的竞争,按照一定的调度算法,使某一就绪

进程获得CPU的控制权,转换成运行状态。进程调度也叫低级调度。

实际上进程调度完成一台物理的CPU转变成多台虚拟的(或逻辑

的)CPU的工作。

6.D解析:当前应用开发工具的发展趋势有:采用三层Client/Server结

构;对Web应用的支持;开发的,构件式的分布式计算环境。

7.A

8.C解析:spooling系统主要有三部分:输入井和输出井,输入缓冲区和

输出缓冲区,输入进程和输出进程。在该系统中,实际上并没有为任何

进程分配设备,只是在输入井或输出井中为进程分配一个存储区和建立

一张I/O请求表,各用户对I/O的请求形成一个请求队列,实现同一时

刻只能一个用户独占的设备分时共享,在用户进程看来都认为自己独占

了一台设备,从而实现将一台独占设备改造成为共享设备。

9.B解析:SQL语言的数据查询用SELECT;数据定义用CREATE.

DROP、ALTER;数据操纵用INSERT,UPDATE,DELETE;数据控制

用GRANT、REVOKEo

10.A

n.一个一个解析:外模式也称子模式或用户模式,它是数据库用户(包

括应用程序员和最终用户)能够看见的和使用的局部的逻辑结构和特征

的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表

示。一个数据库可以有多个外模式。内模式也称物理模式或存储模式,

一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是

数据库内部的表示方法。

12.n-l

13.数据库管理员

14.冒号十六进制【解析】IPv6的128位地址按每16位划分为一个位

段,每个位段被转换为一个4位的十六进制数,并用冒号隔开,这种表

示法称为冒号十六进制表示法。

15.独立独立

16.R.A=S.AR.A=S.A解析:在SQL语言中对关系表进行查询时需要加

上条件语句where表1.索弓|=表2.索引,这样查询出的记录才是一一对

应的。

17.物理存储结构物理存储结构解析:并行数据库物理存储结构的研究

是研究如何对数据库中的关系进行划分。并把它们分布到多个处理器或

多个磁盘,以使查询处理时间最小。

18.中断中断解析:中断是指当计算机系统中发生某个事件时,CPU暂

停正在执行的程序,转去执行处理该事件的程序,执行完后再返回原先

程序断点继续执行的过程。弓I起中断的事件称为中断源。

19.聚集

20.跳数【解析】向量一距离(V-D)路由选择算法,也称为Bellman-Ford

算法。其基本思想是路由器周期性地向其相邻路由器广播自己知道的路

由信息,用于通知相邻路由器自己可以到达的网络以及到达该网络的距

离(通常用“跳数”表示),相邻路由器可以根据收到的路由器修改和刷新

自己的路由表。

21.C解析:把概念设计阶段设计好的基本E-R图转换为与选用的具体

机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式

和外模式)。这些模式在功能上、完整性和一致性约束及数据库的可扩充

性等方面均应满足用户的各种要求。

22.C

23.C

24.A

25.B解析:冯?诺依曼提出的存储程序工作原理决定了计算机硬件系统

的5个基本组成部分,即运算器、控制器、存储器、输入设备和输出设

备。运算器是计算机中执行各种算术运算和逻辑运算的部件,也叫算术

逻辑单元。存储器是计算机中具有记忆能力的部件,它能根据地址接收

和保存指令或数据,并能根据命令提供有关地址的指令或数据。

控制器的主要作用是使整个计算机能够自动地执行程序,并控制计算机

各功能部件协调一致地动作。执行程序时,控制器先从主存中按顺序取

出程序中的一条指令,解释该指令并形成数据地址,取出所需的数据,

然后向其他功能部件发出执行该指令所需的各种时序控制信号。然后再

从主存中取出下一条指令执行,如此循环,直到程序完成。计算机自动

工作的过程就是逐条执行程序中指令的过程。

输入设备的主要功能是将数据、程序等用户信息变换为计算机能识别和

处理的信息形式。

输出设备的主要功能是将计算机中的二进制信息变换为计算机用户所

需要并能识别的信息形式。

26.C解析:本题主要考查了实体之间多对多的联系。如果对于实体集

A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,称为

一对一联系;如果对于实体集A中的每一个实体,实体集B中有n个实体

与之联系;对于实体集B中的每一个实体,实体集A中至多有一个实体与

之联系,称实体集A与B的联系为一对多联系;如果对于实体集A中的

每一个实体,实体集B中有n个实体与之联系;对于实体集B中的每一个

实体,实体集A中有m个实体与之联系,称为多对多联系。所以C)正确。

27.A

28.C

29.A

将局部E-R图集成为全局的E-R图时有可能发生3类冲突,即属性冲

突,结构冲突,命名冲突。

30.C解析:直接插入排序的基本算法是:当插入第i(i>=l)个对象时,

前面的v[0],V[l]……已经排好序,这时,用V用的关键码与V[i-

2],V[i-2],……的关键码顺序进行比较,找到插入位置即将v[i]插入,

原来位置上的对象则向后移。由此可知,直接插入排序法的关键码比较

次数与对象的初始排列有关,准确的说,就是与i可以取的值有关。对

于本题来说,A中i可以取1,B中i可以取2,C中i可以取3,D中i

可以取1。所以C的关键码比较次数最少。

31.\n【审题关键句】个位+于位与百位+十位,奇数,偶数,整除,从大

到小排序。

\n【解题思路】

\n本题类似第24套试题,通过审题可以发现主要是对四位数的筛选条

件有所不同,体现在两个方面:①分解后重新组合成十位数的方式不同,

参考答案的第8、9条语句重新指定两位数的组合方式;②新组合的两

位数的奇偶性判断及整除判断,参考答案的第10条语句。

\n本题第10条语句中各条件表达式之间的关系有些复杂,大致思路是:

①首先判断新组合的两位数的十位不为0,即表达式“gwbw";②再判断

新组合的第一个两位数为偶数,第二个两位数为奇数,且两个两位数中

至少有一个能被17整除的情况,两个整除关系表达式式要用或运算符

(11)连接,且用括号括起来先计算或运算,再与奇偶性判断表达式进行

与运算;③最后,在判断新组合的第一个两位数为奇数,第二个两位数

为偶数,且两个两位数中至少有一个能被17整除的情况(各表达式之间

的连接关系同第2步)。完成以上3部分的表达式设计后,再通过与运

算将3部分表达式连接起来。

\n【参考答案】

\n

\n

32.\n[审题关键句】计算金额,按产品代码从小到大进行排列,相同的

则按金额从小到大排列,结果存入结构数组。

\n【解题思路】

\n本题类似第57套试题,通过审题可以发现主要是排序条件的设置要

求有所不同,参考答案的第8行进行修改即可。

\n【参考答案】

\n

\n

33.\n[审题关键句】以行为单位,新字符串中每个字符的ASCII码值等

于该位置上的原字符ASCII码值加其后面一个字符的ASCII码值,逆

序排序。

\n【解题思路】

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

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

或等于maxline,在循环体中,首先把第i行的第一个字符)XX[i][0]赋给

变量yuan,在第二层for循环中,循环变量j从0开始,依次递增直到

其值等于该行字符串的长度减1,在循环体中,将字符xx[i][j]的ASCH

码值与字符)XX[i][j+l]的ASCII码值相加的和保存到字符)中。当

退出第二层for循环后,把第i行的最后一个字符与第一个字符变量yuan

的值相加,最后通过strreV函数对i行字符串逆序排序。

\n【参考答案】

\n

\n

34.\n[审题关键句】计算金额,按金额从小到大进行排列,相同的则按

产品代码从小到大排列,结果存入结构数组。

\n【解题思路】

\n本题类似第57套试题,通过审题可以发现主要是排序条件的设置要

求有所不同,参考答案的第8行进行修改即可。

\n【参考答案】

\n

\n

35.\n[审题关键句】以行为单位从字符串左边部分降序排序,排序后左

边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字

符不参加处理。

\n【解题思路】

\n①定义循环变量i、j、k和整型变量len、po

\n②第一层for循环中,循环变量i从0开始,依次递增直到其值等于

20,实现对20行数据的逐行处理。在循环体中,对于i行首先调用函数

strlen(xx[i])求得第i行字符串的长度,并把其值赋给变量len,再用len

除以2,得到第i行字符串长度的一半,赋给变量P。在第二层for循环

中,循环变量J从0开始,依次递过来增直到其值等于(p-1),在第三层

for循环中,循环变量k从J+1开始,依次递过来增直到其值等于P,比

较字符xx[i][j]ASCII码值与xx[i][k]ASCII码值的大小,如果字符xx[i]

啪的ASCII码值小于xx[i][k]的ASCII码值,则两者进行互换实现对第

i行字符串左半部分的字符串按降序排列。

\n③用变量len的值对2求余数,如果余数为1,则调用函数字符串拷贝

函数strcpy,把从字符串xx[i]+P+l开始直到字符串xx[i]的结尾的子字

符拷贝到字符串变量str中,再调用字符串连接函数stmca

温馨提示

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

评论

0/150

提交评论