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

下载本文档

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

文档简介

2021年江苏省镇江市全国计算机等级考试

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

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

一、1.选择题(10题)

1.下列有关分区存储管理的叙述中,不正确的是()。

A.分区存储管理能充分利用内存

B.分区存储管理有固定分区存储管理和可变分区存储管理

C.固定分区会浪费存储空间

D.分区存储管理不能实现对内存的扩充

2.主存和CPU之间增加高速缓存的目的是()。

A.解决CPU和主存之间的速度匹配问题B.扩大主存容量C.既扩大主

存容量,又提高存取速度D.以上说法都不对

3.在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度

2

A.O(n)B.O(l)C.O(n)D.O(log2n)

4.关系数据库中,实现主码标识元组的作用是通过

A.实体完整性规则B.参照完整性规则C.用户自定义的完整性D.属性

的值域

5.数据库系统的核心是_。()

A.编译系统B.数据库C.操作系统D.数据库管理系统

6.利用二分法查找序列的前提条件是

A.序列不能过大B.要查找的数必须在序列中存在C.序列必须按顺序

排好D.序列的个数必须为奇数个

7.下面所列的条目中:I.语法检查II.语义检查III.用户存取权

限检查IV.数据完整性检查当用户发出查询数据库数据的命令时,数

据库管理系统需要进行的检查是_____0

A.I和nB.I、n和inC.II和inD.全部

8.若A-B为F所逻辑蕴涵,且CU,则AC-BC为F所逻辑蕴涵,这

是函数依赖的()推理规则。

A.分配律B.自反律C.传递律D.增广律

9.关于分布式数据库系统,不正确的是

A.分布式系统的存储结构要比非分布式系统复杂

B.分布式系统用户的操作与非分布式系统没有什么不同

C.数据操作在逻辑上没有变化

D.分布式系统的所有问题都是用户级别的

10.在数据库中可以创建和删除表、视图、索引,可以修改表。这是因

为数据库管理系统提供了O

A.数据定义功能B.数据操纵功能C.数据维护功能D.数据控制功能

二、填空题(10题)

11.在顺序表(4,7,9,12,13,14,18,19,22,29,50)中,用二分

法查找关键码值11,所需的关键码比较次数为O

12.Oracle数据库系统中快速生成报表的工具是Oracle。

13.一般来说,商品化的数据库管理系统,如Oracle,其产品主要包括

数据库服务器软件、软件和开发工具三类。

14.关系的数据操纵语言按照表达式查询方式可分为两大类【】和口

15.防火墙是指设置在不同网络或之间的一系列部件的组

口O

16.计算机应用技术领域包括科学计算、事务处理、过程控制、辅助工程、

网络应用和多媒体的应用等七大领域。

17.在“学生一选课一课程”数据库中的三个关系如下:

S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,

CNAME,TEACHER)

现要查找选修“数据库技术”这门课程且性别为“女”的学生姓名和成绩,

可使用如下的SQL语句:

SELECTSNAME,GRADEFROMS,SC,CWHERECNAME-数据库

技术,ANDS.S#=SC.S#ANDSEX=女AND【】。

18.多个事务在某个调度下的执行是正确的,是能保证数据库一致性的,

当且仅当该调度是______O

19.在混合式P2P网络中,根据结点的能力可将结点分为用户结点、搜

索结点和3种类型。

20.局域网所使用的传输介质主要有双绞线、光纤、无线

通信信道。

三、单选题(10题)

21.在需求分析阶段中,业务流程的分析结果一般用()

A.E-R图表示B.程序流程图表示C.数据流图表示D.数据结构图表示

22.在登录日志文件时,应该

A.将更新数据库与登录文件两个操作同时完成

B.将更新数据库与登录文件两个操作按随机的顺序完成

C.先写数据库的更新,后登录日志文件

D.先登录日志文件,后写数据库的更新

23.设计与试运行之后投入运行,开始维护工作,过程中监控、评价、调

整与修改以保证数据库系统正常和高效地运行。以下关于数据库运行维

护工作说法不正确的是()

A.数据库转储与恢复

B.数据库安全性、完整性控制

C.检测并改善数据库性能

D.数据库的重组修改数据库原有设计的逻辑结构和物理结构

24.关系数据模型有许多优点,但下面所列的条目中哪一条不是它的优

点()。

A.A.结构简单

B.高度非过程化

C.有标准语言

D.可表示复杂的语义

25.概念结构设计的目标是产生数据库概念结构(即概念模式),这结构主

要反映()

A.DBA的管理信息需求B.应用程序员的编程需求C.企业组织的信息

需求D.数据库的维护需求

26.在建立表结构时定义关系完整性规则()

A.使DBS能够自动维护数据完整性约束条件B.还需要编程实现数据完

整性约束条件C.没有必要定义D.将使系统操作复杂

27.对于数据库设计来说()是进行详细的数据收集和数据分析所获得的

主要成果。

A.数据流图B.数据字典C.E-R图D.关系模式

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

部件是

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

29.某数据库应用系统使用SQLServer2008作为数据库平台。在系统运

行期间,用户反映某更新操作很慢,无法正常完成业务。系统工程师分

别在用户的客户机和数据库服务器上使用数据库管理系统自带的客户

端工具执行此更新操作语句,发现该语句执行后长时间无响应。经检查

数据库服务器CPU使用率小于1%,磁盘IO也非常小。造成此现象可

能的原因是()

A.客户机到数据库服务器的网络故障

B.更新操作涉及到的表没有建立主码

C.更新的字段没有建立有效的索引

D.更新操作涉及到的数据被锁定

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

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

是()

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

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

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

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

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

31.设有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个人报数后出圈,则将即]置于数组的倒数第i个位置上,而原

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

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

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

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

Iinclude<stdio.h>

2*defineN100

IdefineS1

A•defineM10

Sintp[100)9n,3.m;

6voidWriteDat(void);

7voidJoseqh(void)

8

9

10j)

11voidmain0

12

13m«M;

14n«N;

15s•S;

16Josegh();

17WriteDat0;

18

,•把结果p・出则文件ouutei中〃

19voidWriteDat(void)

20

21int1;

22FILEefp;。

23fp■fopen("out.dat*,Rw");

/•以境■的方式,以io个效■为一1ft把总馆pc1■出刊屏幕制文件oui.w中•/

24for(i-N-1;i>-0;i-)

2S

26printf(R%4d-,p(i]);

27fprintf(fp,“,4dLp(l]);

28if(i%10—0)〃如果1・被10■除.射■出一个回东换行符

29(

30print£("\n0);

w

31fprintf(fp#"\n);

32}

33)

34fclose(fp);

35

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

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

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

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

出到文件out.dat中。

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

右边部分不变,左边经排序后再与右边部分进行交换。如果原字符串长

度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如,位置012345678

源字符中dcbahgfe

432198765

则处理后字符中hgfcabcd

876591234

注意:解分源程序存在tote文件中.

请勿改动数据文件uuhl中的任何数据.主函数main。、读论数rcadDat()和写函数writeDmO的内容.

1;*include<stdio.h>

2•include<strlng.h>

3voidreadDat();

4voidwriteDat();

5charxx[20][80];

6voidJaSort()

7

8

9

10voidmain()

11(

12readDat();

13jsSort();

14writeDatO;

15

八从文件m&t申金取20TJ数据存放式字符中数出XX中•/

16voidreadDatO

17(

18FILEein;

19int1-0;

20char*p;

wwHw

21in-fopen(in.datrr);

22whiled<20“fgets(xx[i),80,in)!■NULL)

23(

24p-strehr(xx(i),•\n*);

25if(p)・p-0;

26

27

28fclose(in);

29}

人更站果xx■想邪文件outdat中•/

30voidwriteDat()

31(

32FILEeout;

33int1;

34out-fopon("out.datw,Wwn);

35for(1-0;1<20;1♦,)

36I

MN

37print!(t8\nfxx(i]);

38fprintf(out#7s\n",xx(1));

39)

40fclose(out):

41

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

串数组XX中,请编制函数StrCharJR,其函数的功能是t以该文章中的

行为单位把字符串中的所有字符的二进制ASCII值右移4位,高位补

0,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的

值仍存入原字符串对应的位置上,之后把已处理的结果仍按行重新存入

数组XX中。最后main函数调用函数WriteOat把结果XX输出到文件

out.dat中。

例如:

“z”对应的ASCII值为7AH,二进制值为01111010,右移4位后为

00000111,加上原来“2"的ASCH值01111010得到10000001结果。

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

号和空格,并也按字符处理。

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

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

j•include<stdio.h>

!■include<atring.h>

;charxx(501(801;

!intmaxline-0;/•文章的曲行数*/

5;intReadDat(void>;

6•voidWriteDat(void);

ivoidStrCharJR(void)

8

9

io;l

iivoidmain()

12

if(ReadDat())

(

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

return;

I

StrCharJRO;

WriteDat();

)

/•从文钟in<hi中读取篇英文文章存入到字符申数钮“中•/

intReadDat(void)

I

FILE»fp;

inti•0;

charep;

0Hw

if((fp-fopen(in.dafrr))-NULL)

returnI;

while(fgets(xx(i],80rfp)!-NULL)

(

p»strchr(xx[i),

if(p)*p-0;

32

33

34roaxline•i;

35fclose(fp);

36return0;

37

/果u■出到文的outdai中•/

38voidWriteDat(void)

39

40FILEefp;

41inti;

42fp«fopen("out.datM,

43for(i-0;i<maxline;

44

45printf(**%3\n"rxx[i]);

46fprintf(fprxxll));

47

:?hfclose(tp);

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

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

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

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

出到文件Out.dat中。

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

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

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

位置上。

例如位置012345678

源字符申abcdhgfe

123498765

则处理后字符串hgfedcba

87659432I

注;8,部分源程序存在test.c文件中.

潸勿改动数据文件in.dat中的任何敷据、主函数tnain()»读函数resdDat()和写函数wnieDaU)的内容.

1;include<stdio.h>

2»linclude<string.h>

3;charxx[20][801;

4voidreadDat();

5voidwriteDat();

6voidjsSort0

7

8

9

10voidmain()

11(

12re^idDat();

13jsSort(>;

14writeDat();

15)

/•从文件中读取20打数据〃放到字符本触爆u中•/

16voidreadDat()

17

18FILE•Ln;

19inti•0;

20char*p;

Hn

21in«fopen(in.datr"r");

22whiled<20“fgets(xx(i]v80,in)NULL)

23I

24p•strchr(xxtiJ,•\n*);

25if(p>*p•0;

26

27

28fclose(in);

29)

/•IE姑裳xx♦出到文件out&rt中•/

30voidwriteDat()

31

32FILE*out;

33int1;

M

34out-fopen(*out.dat*r**w);

35ford-0;i<20;[♦4)

36[

37printfxx[i]);

38fprintf(out,wts\nw,xx[i!);

39

40fclose(out);

41

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

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

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

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

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

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

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

中。

注意8部分潭程序存在(cstc文件中.

程序中已定义数组:a[200].b(200],已定义支代Ient

请勿改动畋据文件in.drt中的任何数辨、主函数main。、读的!ftreadDat()和写函数writeDaU)的内容.

finclude<stdio.h>

2IdefineMAX200〃定义宏变量MAX,K堂等于200

inta(MAX),b[MAX|#ent-0;〃定义■型敢组a【MAX),b【MAX]10支■cm,并*受・st的初值为D

4;voidwriteDatO;

5!voidjsValO

6•

7

8

9voidreadDat<)

10

int1;

12FILE#fp;

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

14for(i•0;1<MAX;£♦♦)

15fscanf(fp,"Qd",

16fclose(fp);

17

18voidmain()

19

20int1;

21readDat();

22jsVal(”〃■用jtvalO廉数实现dH姿求的功能

23printf足条件的效■Qd'n",ent);

24for(i-0;i<ent;

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

26printf("\nw);

27writeDat();

28

29voidwriteDatO

30

31FILEefp;

32int1;

33fp-fopen(**out.datw,HwH);

34fprintf(fp,"Sd\n",ent);

35for(1-0;i<ent;

36fprinef(fp,b(l));

37fclose(fp);

38

36.已知数据文件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的内霖.

11•include<ttdio.h>

2;>defin«MAX100

3;intalMAXHb(MAXJ,c(MAXJ;

4,intent•0;/•奇■将6条的个家•/

5voidjsValC

6

8

INIDATmtN2.DAT4便100个角粒十IMUI存人也祖•鼻Ib中♦/

9voidreadDat()

11intit

12FILE*fp;

13fp-topen("lnl.datH,*r");

14ford-0;1<MAX;

15tacanf(fp,"td",iafll);

16fclose(fp);

17fp•fopen(*in2.ctot","r**);

18for(i-0;1<MAX;

19fsconf(fp.”<T・«b(in;

20fclose(fp);

22voidrnainO

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);

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

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

以行为单位对字符串变量的下标为奇数的位置上的字符按其ASCII值

从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来位置存

放,排序后的结果仍按行重新存入字符串数组)XX中,最后调用函数

WrriteDat把结果xx输出到out.dat文件中。

例如:位置01234567

源字符串hgfedcba

则处理后字符串hafcdebs

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

请勿改动数据文件in.dat中的任何数据、主的敷mainO.I(的数re&dDat()和耳函效writuDat。的内容.

1!।Iinclude<stdio.h>

2I•include<string.h>

3•voidreadDat();

4!voidwriteDat();

5;charxx(20)(801:

6!voidjsSort()

7!(

eJ

9!}

101voidmain()

12!readDat();

13;jsSort();

14jwriteDat();

15i)

;。从文件1中读取20行数据存放到字符串长电XX中”

16!voidreadDat()

17;(

18■FILE-in;

19jint1-0;

20;char*p;

21;in•/open("in.ddL.,,r");

22jwhile(1<20“fgets(xx[1]t80.in)NULL)

23;(

241p-strchr(xx[i]9•\n*);

25;if(p)*p■0;

26•

27j}

28;fciose(in);

29!)

/♦把姑果XXa出到OUt&!文件中•/

30;voidwriteDat()

32.FILE*out;

33;int1;

wwR

34•out■fopen(out.datew");

35;for(1-0;i<20;I**)

36?(

37•printf(w%s\nH,xx(i]);

38;fprintf(out,"%s\nw,xx[1]);

39;)

40jCclose(out);

41J)

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

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

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

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

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

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

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

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

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

请勿改动数据文件m.dax中的任何数据.主函数maiM).读函数readDatO和写函效wrilHM)的内容・

1jtmcludc<stdio.h>

2!IdefineMAX200

3inta[MAX],b(MAXhent

4voidwriteDat():

5voidjsVal()

6

7

8

9voidreadDat()

10

11mt1;

12FILE*fp;

fp»fopen(Rin.datw,"r*1

14ford-0;i<MAX;i++)

15fscanf(fp,"d”,6a[i]

16fclose(fp);

17

18voidmain()

19

20inti;

21readDatO;

22jsVal();

23printf「满足条件的数Td\rT.ent);

24for(i-0;i<ent;i++i

25printfC,%d",b|i]);

26printf;

27writeDat();

26

29voidwriteDat()

30

31FILEefp;

32inti;

33fp-fopen("out.dat1*,Mw,r);

34fprintf(fp#7d\n"rcnt>;

35for(1"0;i<ent;

36fprintf(fpr”*d\n**,bi:】)

fclose(fp);

38

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

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

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

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

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

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

writeDat把结果ent以及数组b中符合条件的数输出到Outdat文件中。

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

存序中已定义数组:a[200|.b(200].已定义变lbent

请勿改动数据文件in.dat中的任何数据、:函数读函数rcadDal()和写的敢writeDatO的内容.

I

1।•include<stdio.h>

2itdefineMAX200

3•inta[MAX).b[MAX|rent,

4;voidwriteDat();

5•voidjsVa1()

6;(

7;

8

9voidreadDat()

10<

11inti;

12FILE*fp;

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

14for(i-0;i<MAX;

15fscant(fp>rd”.&a(1]);

16fclose(fp);

)

18voidmam()

19(

20int1;

21readDat<);

22jsVal();

23printf("满足条件的数,ed\n”,ent);

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

25printf",b[i]);

26prlntf;

27writeDat();

28I

29voidwriteDat()

30I

31FILE*fp;

32int1;

ww

33fp=fopen(out.datr"w");

34fprintf(fp,cnt);

35for(ie0;i<ent;

36fprintf(fp#nid\nw,bill”

37fclose(fp);

38

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

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

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

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

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

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

例如i1239.9.1-2.3>O.则该数满足条件存入敷组6中・且个数cnKcnt+l.

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

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

程序中已定义数组:a[3OObb(300],已定义受it:cm

请勿改动数据文件in&rt中的任何数据,主函数main。、读话数readDatf)和写函敷而处所。的内容・

tinclude<stdio.h>

inta【300],b[300)<cnt-0;

3voidreadDat0;

4voidwriteDat(>;

5voidjsValueO

6

7

8

9main()

10

11int1;

12readDat();

13jsValueO;

14writeDat();

X5printf("cnt-ldXn",ent);

16for(1•0;i<ent;i♦十)

w,,

17prmtf(*b[%d]%d\nri.b

18

19voidreadDat()

20(

21FILE*fp;

22inti;

wRH

23fp=fopen(in.datrr");

24for(1«0;i<300;

25(scant(fp,",d/,&a(1]);

26fclose(fp);

27)

28voidwriteDat()

29

30FILE^tp;

31inti;

wwM

32fp-fopen(out.datr**wj;

Rw

33fprintf(fpr%d\nrent);

34for(1«0;i<ent;

35fprintf(fp,”d\n".b[i));

36fclose(fp>;

37

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

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

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

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

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

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

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

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

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

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

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

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

42.某教务管理系统使用SQLServer2008数据库管理系统,数据库软硬

件配置信息如下:I.数据库运行在两路IntelXeonE5-26092.4GHz

CPU(每路CPU4核心),128GB内存、2块300GB15000转SAS硬盘

(RAID1)的服务器上;II.服务器操作系统为Windows200332位企

业版,安装SP2补丁.数据库为SQLServer2008Enterprise(32位),

数据库中总数据量近130GB。近一个学期以来,用户反映系统运行缓慢,

经程序员定位,确定为数据库服务器响应缓慢,需要进行调优。(10分)

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

43.在SQLServer2008中,常常会发生数据库数据过大的情况,此时则

需要对表进行处理,通常可采用人工分割表的方法优化性能。下列有关

分割表的说法,错误的是()o

A.水平分割后,得到的子表结构相同

B.水平分割后,查询表中所有数据时需要使用JOIN操作

C.垂直分割后,所有表中均需保留原有表的主码

D.当查询表中所有数据时,使用分割表方法会增加查询表达式的复杂度

44.设有购买表(顾客号,商品号,购买时间)。现要查询顾客A与顾客

B购买的相同商品。有下列查询语句:I.SELECT商品号FROM购买

表WHERE顾客号=’A'AND商品号IN(SELECT商品号FROM购

买表WHERE顾客号='B')II.SELECT商品号FROM购买表WHERE

顾客号='A'EXCEPTSELECT商品号FROM购买表WHERE顾客号

=’B'III.SELECT商品号FROM购买表WHERE顾客号

=’A'INTERSECTSELECT商品号FROM购买表WHERE顾客号

=’B'W.SELECT商品号FROM购买表WHERE顾客号=’A

'UNIONSELECT商品号FROM购买表WHERE顾客号='B'上述语

句中,能够实现该查询要求的是()o

A.仅I和nB.仅I和nic.仅I和wD.仅in

参考答案

LA解析:分区管理的基本思想是将内存分成若干连续的区域,有可变

分区和固定分区,•分区管理的主要缺点是不能充分利用内存,也不能对

内存进行扩充。固定分区会浪费一些内存空间,可变分区会引起碎片的

产生。

2.A

3.B解析:在一个长度为n的顺序表的表尾插入一个新元素不需要进行

节点移动,直接插入即可。对应的渐进时间复杂度为0(1)。

4.A解析:实体完整性是保证表中的记录唯一的特性,即在一个表中不

允许有重复的记录。参照完整性与表之间的联系有关,它的含义是:当

插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个

表中的数据,来检查对表的数据操作是否正确。用户定义的完整性规则

通常是由用户定义,用来对属性值进行约束的规则。实现主码标识元组

实际上就是要通过主码保证记录唯一的特性,因此本题的正确答案应该

是A。

5.D解析:数据库系统一般由数据库、数据库管理系统(DBMS)、应用系

统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。

6.C解析:本题主要考查了二分法查找的排序方法。利用二分法查找序

列的前提条件是序列必须按顺序排好。

7.B解析:当用户发出查询数据库数据的命令时,数据库管理系统的语

言翻译处理层首先对语句进行语义分析和语法分析。接着,根据数据字

典中的内容进行审核用户的存取权限。因此需进行的查询包括语法检查、

语义检查和用户存取权限检查,正确答案为选项B。

8.D解析:Armstrong公理系统包括3条基本的推理规则:①自反律。若

YXU,则X-Y为F所逻辑蕴含。②增广律。若X-Y为F所逻辑蕴

含,且ZU,则XZ-YZ为F所逻辑蕴含。③传递律。若X—Y及Y-Z

为F所逻辑蕴含,则X-Z为F所逻辑蕴含。由以上的说明可以看出,

题干所给的推理规则符合增广律的格式。

9.D解析:分布式系统的特点。分布式系统的所有问题是(或应当是)内

部的、实现级别的问题,而不是外部的、用户级别的问题。

10.A解析:系统的基本功能包括:1)数据库定义功能;2)数据操作功能;

3)数据库的运行管理和控制功能;4)数据库的建立和维护功能;5)数据

库存取功能。其中数据库定义功能包括在数据库中可以创建和删除表、

视图、索引,可以修改表等。

11.4或4次4或4次解析:二分查找又称为折半查找,首先用待查元

素的关键字与线性表中间位置的一个元素的关键值做比较,若相同则查

找成功,否则以这个中间值为界将线性表分为两个子表,假设子表1中

的所有元素的关键值都小于中间元素,子表2中的所有元素的关键值都

大于中间元素,待查元素比中间元素值小,说明待查元素在子表1中,

完成了一次查找,这是一次失败的查找,因为U并不在序列表中,所

以一共进行了四次比较。

12.Reports

13.联接产品联接产品

14.关系代数关系演算关系的数据操纵语言按照表达式查询方式可分为

关系代数和关系演算

15.网络安全域【解析】防火墙是指设置在不同网络或网络安全域之间

的一系列部件的组合。

16.人工智能【解析】概括起来,计算机应用技术领域包括科学计算、

事务处理、过程控制、辅助工程、人工智能、网络应用和多媒体的应用

等七大领域。

17.SC.S#=C.C#或C.C#=SC.S#在急性这些操作的时候需将这

些关系联系起来

18.可串行化的或可串行化可串行化的或可串行化解析:本题考察调度

可串行化的概念。

如果多个事务在某个调度下的执行结果与这些事务在某串行调度下的

执行结果一致,则称该调度为可串行化的调度。可串行化是多个事务并

发执行的正确性准则。所以答案为:可串行化的。

19.索弓|结点【解析】在混合式P2P网络中,根据结点的能力可将结点

分为用户结点、搜索结点和索引结点3种类型。

20.光缆【解析】局域网所使用的传输介质主要有双绞线、光缆、光纤、

无线通信信道。

21.C

22.D解析:为保证数据库是可恢复的,登记日志文件时必须遵循以下两

条原则:1、登记的次序严格按并发事务执行的时间次序;2、必须先写

日志文件,后写数据库。

23.D

24.D

关系模型由关系数据结构、关系操作集合和关系完整性约束3大要素

组成。关系模型的数据结构单一,在关系模型中,现实世界的实体以

及实体问的各种联系均用关系来表示。关系操作的特点是集合操作方

式,即操作的对象和结果都是集合。关系代数、元组关系演算和域关

系演算均是抽象的查询语言,这些抽象的语言与具体的DBMS中实现

的实际语言并不完全一样,但它们能用作评估实际系统中查询语言能

力的标准或基础。关系模型的一个优点是高度非过程化。

25.A

26.A

27.B

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

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

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

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

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

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

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

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

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

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

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

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

处理的信息形式。

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

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

29.D

30.C

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

\n【解题思路】

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

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

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

源程序中赋值为100)o

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

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

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

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

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

是最后一个人,在此人前面的那个人就是要出圈的人,再通过一个循环

将要出圈的人移到数组最后。

\n【参考答案】

\n

\n

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

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

符不参加处理。

\n【解题思路】

\n本题类似第77套试题,通过审题可以发现主要是对字符串左边部分

排序时所采用的排序方式不同,参考答案的第11行,修改if条件语句

的设置即可。

\n【参考答案】

\n

\n

33.\n[审题关键句】字符的ASCII值右移4位二进制位,高位补0后加

原字符的ASCH值。

\n【解题思路】

\n①定义两个循环变量i、j和一个无符号字符变量tmp。

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

等于文章最大行数maxline。在第二个for循环中,从每行第1个字符开

始,依次递增直到其值等于该行字符串的最大长度,然后在循环体中指

定每次循环时,将第i行第i个位置上的字符的ASCII值的二进制数右

移4位,然后将所得的值再加上原字符的ASCII码值。

\n【参考答案】

\n

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

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

符不参加处理。

\n【解题思路】

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

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

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

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

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

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

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

较字符xx[i皿ASCH码值与xx[i][klASCII码值的大小,如果字符xx[i]

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

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

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

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

符拷贝到字符串变量str中,再调用字符串连接函数stmcat把字符串xx[i]

的中间字符连接到字符串变量str的后面,再调用字符串连接函数stmcat

把字符串xx[i]的左半部分的子字符串连接到变量str的后面;如果余数

不等于1,则调用字符串拷贝函数strcpy,把从字符串xx[i]+P开始直到

字符串xx[i]的结尾的子字符拷贝到字符串变量str中,再调用字符串连

接函数stmcat把字符串xx[i]的左半部分的子字符串连接到变量str的后

面,实现字符串xx[i]左右部分子字符串的交换。

巾④调用字符串拷贝函数strcpy,把字符串变量str的值拷贝到字符串

xx[i],实现把排序后的结果仍按行重新存入字符串数组XX中。

\n【参考答案】

\n

\n

35.\n[审题关键句]四位数的千位<=百位<=十位<=个位,且四位数是偶

数,统计出满足此条件的个数,按从小大的顺序存入数组。

\n【解题思路】

\n①首先,本题要定义多个变量,包括两个循环变量循环i、i,一个用

于数据交换的整型变量ab,以及分别用来存放四位数分解之后各位数的

变量qw(千位)、bw(百位)、SW(十位)和gw(个位)。

\n②通过for循环依次对数组中的每个四位数进行分解,每分解一个四

位数,根据题目要求,判断其“千位<=百位<=十位<=个位”的条件是否满

温馨提示

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

评论

0/150

提交评论