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

下载本文档

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

文档简介

2021年江西省萍乡市全国计算机等级考试

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

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

一、1.选择题(10题)

i.在多道批处理系统中,为充分利用各种资源,运行的程序应具备的条

件是()。

A.适应于内存分配的B.计算量大的C.I/O量大的D.计算型和I/O型均

衡的

2.在数据库应用中,一般一个SQL语句可产生或处理一组记录,而数

据库主语言语句一般一次只能处理一个记录,其协调可通过下列哪种技

术来实现?

A.指针B.游标C.数组D.栈

3.若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部

分损失或全部损失,这种情况称为

A.事务故障B.系统故障C.介质故障D.运行故障

4.用关系的运算来表达查询要求的方式是

A.关系演算B.关系代数C.关系逻辑D.关系查询

5.在多道程序系统中,每组进程中的每一个进程均无限期地等待被该组

进程中的另一个进程所占有且永远不会释放的资源,这种现象称为

A.独占B.等待C.睡眠D.死锁

6.SQL的数据定义功能包括

A.定义表B.定义视图C.定义索引D.以上都包括

7.SQL语言定义完整性约束条件的功能主要体现在()。

A.CreateTable语句B.AlterTable语句C.A和BD.以上都不是

8.数据库系统的数据共享是指

A.多个用户共享一个数据文件中的数据

B.多个用户使用同一种语言共享数据

C.多个应用、多种语言、多个用户共享数据

D.同一个应用的多个程序共享数据

9.唯一标识实体的属性集称为

A.域B.码C.联系D.主属性

10.如果两个实体之间的联系是M:N,则实现1:M联系的方法是

A.将两个实体转换成一个关系

B.将两个实体转换的关系中,分别加入另一个关系的主码

C.将“1”端实体转换的关系的主码,放入“M”端实体转换的关系中

D.将“M”端实体转换的关系的主码,放入“1”端实体转换的关系中

二、填空题(10题)

11.【】包括类型、取值范围、取值单位的冲突

12.数据元素是数据的基本单位,它在计算机存储器中的映像是」

数据项是数据的最小单位,它在计算机存储器上的映像是」JL

13.描述通信系统的基本技术参数是数据传输速率和。

14.

由于视图是虚表,因此对视图的修改,最终要转换为对【】的修改。

15.使用PowerDesigner的DataArchitect可以对数据库生成物理数据模

型(PDM),这种功能通常称为【】。

16.广义表和线性表的区别在于:线性表的成分都是结构上不可分的单元素,而广义表的成

分既可以是单元素,又可以是有结构的口

17.计算机指令系统中主要有三类指令,分别是」L算术逻辑类和判定控制类等指令

18.数据库功能可以分为两部分前端和后端。前端与后端之间通过【】

或应用程序来接口。

19.组播路由协议分为组播路由协议和域间组播路由协议。

20.客户程序访问DBMS的常用标准一般有两个:一个称为开放数据库

互连【】标准;另一个是面向Java程序语言的相关标准,称为“1。

三、单选题(10题)

21.能够对PowerDesigner中所有模型信息只读访问的模块是()。

A.A.ProcessAnalyst

B.DataArchitect

C.Viewer

D.WarehouseArchitecture

22.在SQLServer2008中,设有商品表(商品号,商品名,生产日期,单

价,类别)。现经常需要执行下列查询:SELECT商品号,商品名,

单价FROM商品表WHERE类别IN(,食品7家电,)

ORDERBY商品号现需要在商品表上建立合适的索引来提高该

查询的执行效率。下列建立索引的语句,最合适的是()o

A.CREATEINDEXIdxlON商品表(类别)

B.CREATEINDEXIdxlON商品表(商品号,商品名,单价)

C.CREATEINDEXIdxlON商品表(类别,商品号,INCLUDE(商品名,单

价)

D.CREATEINDEXIdxlON商品表(商品号,INCLUDE(商品名,单

价,WHERE类别='食品'OR类别='家电’

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

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

24.逻辑设计主要是把概念模式转换成()

A.DBMS能处理的模式B.与DBMS无关的模式C.层次结构模型D.子

模式

25.下述哪个成立时,称X-Y为平凡的函数依赖?

A.XYB.YXC.XAY=D.XC1Y#

26.收缩整个数据库的大小,可以采用下列语句:()

A.DBCCSHRINKDATABASE

B.DBCCSHRINKFILE

C.ALTERDATABASE

D.CREATESCHEMA

27.影响优化器的主要因素有:

A.由于现有索引不足,导致排序索引中不包括一个或几个待排序的列。

B.Groupby和orderby子句中列的次序与索引次序一致。排列的列来自

不同的表。

C.建立的索引文件太多。

D.事务处理太多

28.已经获得除CPU以外的所有所需资源的进程处于()状态。

A.运行状态B.就绪状态C.自由状态D.阻塞状态

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

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

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中存有300个四位数,并已调用读函数rcadDat

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

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

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

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

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

例如,7153.7*!-5+3.剜该数满足条竹存入数州b中.旦个数cntynwl.

8129.8,1!=2+9,剜该数不满足条件忽略.

由Ri部分源程序存在teste文件中.

程序中已定义散组:1(300],b(3OO].巳定义堂・,ent

请勿改动数据文科nda1中的仟何数据.I函数main().读函数rcadDal。和写函数wnteDitO的内容,

1■include<stdio.h>

2inta[3001fb(300]fent-0;

3voidreadDat();

4voidwriteDat();

5jsValoe(>

6

7

8

9mainO

10(

11int1;

12readDat();

13jsValue();

14writeDat0;

15printf(*,cnt=%d\nw,ent);

16for(i•0;i<ent;U)

17printfLb【"d|7d\n”.L

18)

19voidreadDat()

20I

21FILE・fp;

22;inti;

23!fp-fopen(win.datn,Rrw);

24;for(1«0;i<300;

25­fscanf(fp,Fd.",Sail});

26!fclose(fp);

27;)

voidwriteDat()

29j(

30-FILE*fp;

31!int1;

32ifp=fopen(*out.datw,"w");

33:

fprintf(fpr7d\n",ent);

34•for(i•0;i<ent;i**)

35;fprintf(fp,fd\n・.b(i]);

36•:fclose(fp);

31•»

32.

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

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

字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,

则改写成字母z,其他字符保持不变。把已处理的字符串仍按行重新存

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

到文件out.dat中。例:原文:Adb.Bcdza

abck.LLhj结果:Aca.Bbcyzzabj.LLgi原始数据文件存放的格式是:

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

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

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

1;Iinclude<stdio.h>

2»fincludG<string.h>

3;charxx[50)(80];

intmaxiIne•0;/•文审的总行ft•/

intReadDat(void);

voidWrlteDat(void);

八以行为•位把字符串中的所有小耳字理改写及方平出的上f字用,如量型字母M用改写A?纣却1(胞字符保持不交•/

7voidConvertCharD(void)

8

9

10

11voidmain”

12I

13if(Re^dDatO)

14[

15printf("数图文件in.dat不脆打可\n\007");

16return;

17

18ConvertCharD(>;

19WriteDat();

20)

/•族文介血中&以・英文文・存入剜字村比教幽u中〃

21intReodDat(void)

22(

23FILE*fp;

24int1*0;

25char*p;

26if((fp-fopenLin.dat".-r"))-NULL)

27return1;

28while(fget3(xx[i]r80«fp)!•NULL)

29(

30p-atrcbr(xx(i]9,\n*>;

31if(p)*p-0;

32

33)

34tnaxllne,1;

35fclose(fp);

36return0;

37)

,♦七由果u■出*文nOUtM中・,

38voidWriteDat(void)

39(

40FILEafp;

41int1;

42fp-fopen(*out.dat*«-w*);

43for(1•0;i<maxline;

44(

0

45printf("%s\nrxxf1));

46fprintf(fpr"%s\n",xx[i]);

47>

48fcloae(fp);

49

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

程序中已定义数蛆:a[200].b[200],已定义变最:ent

请勿改动数据文件in.dat中的任何数据.主函数main。、漆由数readDaH)和写函数writcDat()的内容.

1!Iinclude<stdio.h>

2ifdefineMAX200

•inta[MAXLb[MAX]/ent■0;

!voidwriteDat();

5ivoidjsVal()

6

7

8

9voidreadDat()〃从文件中灌取200个四位数存入畋flla中

10;

n\int1;

12!FILE*fp;

fp-fopen("in.dat**,"rM>

for(i-0;i<MAX;

15ffscanf(fp,7d",&a(i|)

16;fclose<fp);

17!

18jvoidmain()

19;

20inti;

21readDat();

22jsValO;〃*用或效实现良求的功微

23printf(“清I足条件的数"d'n".:;nt);

24for(i»0;i<ent;

25print1("%dL

26printf("Kn");

27writeDat();

28:1

29voidwriteDat()〃把计算结蹙E以及敏物b中符合条件的四位数•出到OULdBl文件中

30

31FILEefp;

32inti;

33fp•fopen(Rout.dat**,Hww);

34fprlntf(fp,wid\n",ent);

35for(i»0;i<ent;i++)

n

36fprintf(fpr%d\n"rb[1])

37fclose(fp);

38

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

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

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

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

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

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

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

注意:树分潮脚序存在E.C文件中.

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

请勿改动数据文件indu中的任何数据、主论IRmainO、读函数nadDttO和写屏敷writeDat()的内容•

1!•include<stdio.h>

2JIdeflneMAX200

3inta[MAX]tb(MAXI/ent

4voidwriteDat();

voidjsVal()

6

7

8

9voidreadDat()

10(

11inti;

12FILE*fp;

fp«fopen(win.datH»wr"

14for(i-0;i<MAX;i++)

15!fscanf(fp,"*d".Ii]);

16»fclose(fp);

17-}

18voidmain(>

19

20int1;

21readDat0;

22jsVal();

23prlntf(”满足条件的敢2d\n".

24for(i-0;i<ent;

25printfrQd”,bli)):

26printf(w\nw);

writeDat0;

26

29voidwriteDat

30

31FILE*fp;

32inti;

33fp•fopen("out.datw,;

34fprintf(fp,"Qd\n*cnt>;

35for(1-0;i<ent;

36fprintf(fpr7d\rT,b|il);

37fclose(fp);

38

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

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

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

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

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

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

字),如果新组成的两个位数ab>cd,ab必须是偶数且能被5整除,cd必

须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位

数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的

个数cnto最后main函数调用写函数writeDat把结果ent以及数组b中

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

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

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

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

1!finclude<stdio.h>

2!!defineMAX200

3•intalMAX],b(MAX],ent-0;

4;voidwriteDat();

5;voidjsVal()

6;1

*7;

8;)

9!voidreadDat()〃从M.dat文件中it取200个用位数存入敷殂a中

10;(

11;int£;

12!FILE*fp;

13jfp-fopen(Hin.datw,wr**);

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

15!fscanf(fpr4a(1]);

16;fclose(fp);

17j}

18jvoidmain()

19;(•

20!inti;

21ireadDat();

22;jsValO;〃调用南数”v.iu•实现•II要求的功能

23ipr£ntfL涓足条件的敏7d\n”,ent):

24;for(i-0;i<ent;i—)

25\printf<w%db[i]);

26;printf;

27•writeDat();

28!|

29;voidwriteDat()〃品计年陋果由以及数机b中符合条件的四位数・出到omdat文件中

30I(

31FILEwfp;

32inti;

33fp•fopen("out.dat*,Www);

34fprintf(fp,ent);

35for(i-0;i<ent;

36fprlntf(fprFd\n”,

37fclose(fp);

38

36.已知在in.dat中存有若干个(个数<200)1四位十进制数字组成的正

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

数CalValueO,其功能要求:

1,求出该文件中共有多少个正整数totNum;

2.求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数

totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjzo

最后main函数调用函数WriteDat把所求的结果输出至“out.dat文件

中。

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

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

和输出函数WriteDat。的内容。

•include<stdio.h>

2IdefineMAXNUM200

3intxxfMAXNUM];

4inttotNum*0;〃文件in.dot中共H多少个正整数

5inttotCnt,0;〃将合条件的的个数

6doubletotPjz-0»0;〃平均值

7intReadDat(void);

8voidWriteDat(void);

9voidCalValue(void)

10

11

12

13voidmainO

14(

15int1;

16ford-0;1<MAXNUM;

17xx[i)-0;

18If(ReadDat())

19(

20pMlncfrt(据文件ln.dat不能打开!\007\n");

21return;

22I

23CalValue();

24printf("文件in.dat中共有正整数7d个\rT,totNum);

25printf("符合条件的正整数的个敢个、E”,totCnt);

26printf("平均值=、.21f\n”,totPjz);

27;WriteDat();

28

;/•读取道I?干个正整数并存入IMHu中〃

29iintReadDat(void)

3。!«

31:FILE-fp;

32•inti-0;

33!if((fp-fopen(-in.dat->-r"))-NULL)

34;return1;//Mm.datXftWifi®1

\/•wbll«•1(执行.■■文件5.dat的姑题退出•/

35•whiledfeof(fp))

36;I

37;fscanf<fp,"d,”・〃从文件存入xx(外仇

38iI

39;fclose(fp>;

40:return0;〃1E文件an.st若干个壬”♦取井正・棕人“tttu中总为0

41;)

;/•«!计算的整存入攵件out.ut中・/

42•voidWriteDat(void)

43j(

44;FILE-fp;

w

45[fp-fopen("out.dAt-r*w);

w

46­tprlntf(fpr*%<i\n%d\nt.2Il\n,totNum,totCnt,totPjx);

47:fclose(fp);

48;)

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

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

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

再求出所有满足此条件的四位数平均值pjzl,以及所有不满足此条件的

四位数平均值pjz2o最后main函数调用写函数writeDat把结果ent,

pjzl,pjz2输出到out.dat文件。

例如:7153.7+1-S+3,则该数淌足条件计■平均值讨zL且个数

8129.8+1!-2-^.则谈数不橘足条件计算平均值pjz2.

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

程序中已定义数俎।«(300].已定义交量rent.Rjzl.pjz2

请勿改动数据文件ndM中的任何敢据.主喻就maEO、点嚼数readDUG和。南数writeDW)的内容.

1■finclude<stdlo.h>

inta[300}tcnt-0;

3doublepoxl-0.0,pjz2«0.0;

4voidreadDatO;

5voidwriteDat();

6voidjsVAluo()

7

B

9

10voidmain()

12readD&t();

13jsValueO;

14writeDat();

15printf("cnf%d\n满足条件的平均值p2jl-17.21f\n不脩足条件的平均值pzj2-i7.21f\n",

cnt,pjxl,pjz2);

16

17voidreadDat()

18

19FILE*fp;

20inti;

21fp-fopen(Rin.datM,RrM);

22for(i*0;i<300;i*+)

23fscanf(fp,7d/,(a[i]);

24fclose(fp);

25

26voidwriteDat()

27

28FILE,fp;

29fp-fopen(**out.dat",Mww);

30n

fprintf(fp,,,%d\n%7,21f\n%7.21f\n,ent.pjzltpjz2);

31!fclose(fp);

38.在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数

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

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

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

这些正整数的算术平均值totPjzo最后main函数调用函数WriteDat把

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

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

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

和输出函数WriteDat的内容。

linclude<stdlo«h>

•defineMAXNUM200

3intxx[MAXNUM];

4inttotNum-0;〃文仆2n.st中共有多少个正整数

5inttotCnt-0;〃部条件的正事数的个数

6doubletotPjz-0.0;〃平均值

7intReadDat(void);

8voidWriteDat(void);

9voidCalValue(void)

10

11

12

13voidmain0

14(

15inti;

16ford-0;i<MAXNUM;f)

17xx(i)•0;

18if(ReadDatO)

19

20据文件in.dat不能打开!\007\nw);

21return;

22

23CalValue();

24printf("文件in.dat中共有正整数个\n**.totNum);

25prictf("符合条件的正核数的个数7d个\n”.totCnt);

26printfL平均(8・*.21f\n",totPjz);

27WriteDat();

28»

“读取这若干个正鳖数并存入数fli*x中”

29intReadDat(void)

30(

31FILE*fp;

32inti•0;

HwwM

33if((fp-fopen("in.datrr))NULL)

34return1;

35while(!feof(fp))

36(

37fscanf(fp#

381

39fclose<fp);

40return0;

41}

/・忙计算蜡里存入文件。仇・&匕中•/

42voidWrlteDat(void)

43!{

44FILE*fp;

4Sfp-fopen("out.dat",

46fprlntf(fp/"%d\nid\nt.21f\n*rtotNumrtotCnt/totPjz);

47fclose(fp);

48

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

号字符串数组XX中,请编制函数encryptChar,按给定的替代关系对数

组)XX中的所有字符进行替代,其替代值仍存入数组XX的对应的位置

上,最后调用函数writeDat把结果xx输出到文件out.dat中。

替代关系:)=p*17moe1256,mod为取余运算,p是数组)xx中某一个字

符的ASCII值,f(p)是计算后的无符号整型值C主意:中间变量定义成整

型变量),如果计算后f(p)值小于等于32或f(p)是奇数时,则该字符不

变,否则用f(p)替代所对应的字符。

注意,部分源程序存放在teste文件中,原始数据文件#放的格式笫,每行的宽度均小于80个字符,含标点杼号卿?

格.井也按此替代关系进行处理.

请勿改动主函数mainO、读函数ReMDttON•出的敷WmeDstO的内乱

1!!include<9tdlo.h>

2•tinclude<strlng.h>

3J•include<ctype.h>.

4•unsignedcMrxx(50)(80);

5;intmaxUne-0;/•文拿的总打鼓•/

6!intRcadDat(void)i

7ivoidWriteDat(void);

8;voidencryptChar()

9!I

10;unsignedIntval;

11

12

13voidmam()

14(

15if(ReadDatO)

16(

17printf(“jft据文件in.dat不能打开!\n\007");

18return;

19»

20encryptChar();

21WriteDat();

)

22,•从文件H&t中依取一■英文文拿,存入到无符号?料申融如M中•/

23intReadDat(void)

24«

25FILE*fp;

26int1•0;

27unsignedcharwp;

w

28if((fp-fopen(-in.dafr-r))—NULL)

29return1;

30while(fgets(xx[i]<80,fp)!■NULL)

31(

32p-strchr(xx(i),1\n*);

33if(p)ap■0;

34

35)

36maxline-1;

37fclose(fp);

38return0;

)

39/•把站果xx•出到文件outdat中•/

40voidWriteDat(void)

41(

42FILEwfp;

43int1;

44fp■fopen("out.dat"r"D;

45for(i-0;1<maxline;

46

47princf(7s\n**.xx[i]);

48fprintf(fp,**mxx(i]);

49)

50fclose(fp);

40.已知在文件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>

•include〈string.h>

3♦include<stdlib.h>

44defineMAX100

5typedefstruct

6

7chardm(S];/•产丛代码•/

8charme[11];/•产品名*•/

9incdj;/••价•/

10intsi;/••/

11longje;/•金・•/

12)PRO;

13PROsell[MAX];

14voidReadDat();

15voidWriteDat();

16voidSortDat()

17

18

19

20voidiMln()

21(

22megsWL。,slzeof(sell));

23ReadDat();

24SortDat():

25WritoDatO;

26j

“域取运100个仍伪记采并存人然符数州tdl中”

27voidReadDat()

28(

29FILE・fpj

30charstr(80]9ch(11);

31intLi

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

33for(i•0;1<100;I1)

34(

35fgets(atr,80,tp);

36memcpy(sellfl|.dwrstr*4”

n>erocpy<sellfl].mc9str♦4.10);

38memcpy(ch,3tr*14,4);ch(4]-0;

39sell[1j.dj,Atoi(ch);

40memcpy(ch,3tr«»18,5);ch[5]«0:

41sellfl]«sl■atol(ch);

42sellti).je-(long)sell(1).dj•sell[1].31;

43

44£close(fp);

45

/•措德■■出f(文件ouUat中•/

46voidWriteDat(>

47(

48FILE,fp;

49int1;

50fp■fopen(*out.dat",*wH);

51ford•0;1<100;144)

52(

53fprintf(fp,"%s%sMd%5d%101d\n*sellH).dm,

raell(i|.me.seillll.djfsell[11.si.

sell|ij・jo):

54I

55fcloao(fp);

56

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

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

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

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

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

借书日期12011106T0010012012.01,0212012113

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

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

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

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

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

42.已知某教务管理系统的设计人员在需求分析阶段收集到下列原始数

据表格:

教师

上级领导教师

教师号教师名职称工资

9868王文华教授8000null

9983李一斌副教授60009868

9985T-讲师删9868

0783王润泽讲师删9868

0899欧阳丹妮讲师删9868

课程

课程号课程名学分教材号教材名出版社名任课教师号

计算机原清华大学出

C2006311计算机原理9868

理版社

计算机原计算机原理与高等教育出

C20063129868

理应用版社

清华大学出

C2004数据结构313数据结构9868

版社

数据库原清华大学出

C2010314数据库原理9868

理版社

数据库原数据库原理与高等教育出

C20103159868

理技术版社

清华大学出

S3001音乐欣赏216音乐欣赏9983

版社

已知该业务系统存在如下规则:

I.每个教师有唯一的教师号,每个教师号对应唯一的一名教师;

II.每门课程有唯一的课程号,每个课程号对应唯一的一门课程;

III.每本教材有唯一的教材号,每个教材号对应唯一的一本教材;

IV.每个教师最多只有一个上级领导,也可以没有上级领导;

V.一门课程仅由一名教师讲授;

VI.一本教材仅用于一门课程。(12分)

(1)请根据原始数据表及业务规则,给出该系统的关系模式,保证每个

关系模式满足3NF,并说明每个关系模式的主码和外码。

(2)画出该系统的ER图,ER图中需给出每个实体集的属性,主码属性

用下划线标识。

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

43.在数据库应用系统设计中,如果在事务中存在和用户的长时问交互,

它会带来哪些坏处()。I.降低系统的并发度n.增加死锁的数量

III.破坏数据的一致性IV.影响检查点的效果

A.仅I、n和niB.仅I、n和wc.仅I、in和wD.仅n、in和w

44.DBAS需求分析阶段的性能分析是分析DBAS应具有的性能指标。

下列不属于DBAS性能指标的是()。

A.数据库空间占用情况B.数据查询响应时间C.单位时间内可以完成

的查询数量D.单位时间内可以完成的事务数量

参考答案

1.D解析:在多道批处理系统中,运行的程序应具备计算型与I/O型均

衡这一条件,才能充分利用各种资源。

2.B解析在数据库应用中,一般一个SQL语句可产生或处理一组记录,

而数据库主语言语句一般一次只能处理一个记录,其协调可通过游标技

术来实现。

3.C解析:故障有如下类型:事务故障、系统故障和磁盘故障,其中磁

盘故障是指数据在传送过程中,因磁头损坏或故障造成磁盘块上的内容

丢失。

4.B解析:关系代数是用关系的运算来表达查询要求的方式。关系演算

是用谓词来表达查询要求的方式。掌握关系代数和关系演算之间的联系

与区别。

5.D解析:在多道程序系统中,每组进程中的每一个进程均无限期地等

待被该组进程中的另一个进程所占有且永远不会释放的资源,这种现象

称为系统处于死锁状态。掌握如何解除死锁,以及睡眠、等待、独占的

概念。

6.D解析:关系数据库系统支持三级模式结构,其模式、外模式和内模

式中的基本对象有表、视图和索引,因此,SQL语言的数据定义功能包

括定义表、定义视图和定义索引。

7.C

8C解析:共享是指多用户、多种应用、多种语言互相覆盖地共享数据

集合,所有用户可同时存取数据库中的数据。数据库是面向整个系统的,

以最优的方式服务于一个或多个应用程序(用户),实现数据共享。

9.B解析:唯一标识实体的属性集称为码。

10.C解析:如果两个实体之间的联系是M:N,则实现1:M联系的方法,

将“1”端实体转换的关系的主码,放入“M”端实体转换的关系中。

11.属性冲突当将局部E-R图集成为全局E-R图时,可能存在3种冲突:

属性冲突,结构冲突,命名冲突。属性冲突包括类型,取值范围和取值

单位的冲突

12.结点数据域数据结构在计算机中的表示(又称映像)称为数据的物理结

构,又称存储结构。所以数据元素在计算机中的表示时结点,数据项在

计算机中的表示时数据域。

13.误码率【解析】描述通信系统的基本技术参数是数据传输速率和误

码率。

14.基本表或表通过视图修改数据包括插入,删除和修改三类操作,由于

视图是虚表,因此对视图的更新,最终要转换为对基本表的更新。

15.逆向工程逆向工程解析:PowerDesignerDataArchitect用于两层的即

概念层和物理层数据库设计和数据库构造。DataArchitect提供概念数据

模型设计,自动的物理数据模型生成,针对多种数据管理系统的数据库

生成,开发工具的支持和高质量的文档特性。使用其逆向工程能力,设

计人员可以得到一个数据库结构的“蓝图”可用于文档和维护数据或移

植到一个不同的DBMSO

16.表线性表的元素都是结构上不可分的单元素,广义表中元素既可以是

原子类型,也可以是列表

17.数据传送类计算机指令系统分为传输类,算术逻辑类,控制类三种指

18.SQLSQL解析:数据库功能可以分为两部分:前端和后端。前端与后

端之间通过SQL或应用程序来接口。

19.域内【解析】组播协议分为主机和路由器之间的协议,即组播组管

理协议以及路由器和路由器之间的协议。目前,组管理协议包括hxtemet

组管理协议IGMP和CiscO专用的组管理协议CGMP,组播路由协议又

分为域内组播路由协议和域间组播路由协议两类。

20.

ODBC

JDBC

开放数据库互连(ODBC)是MICROSOFT提出的数据库访问接口标准。

开放数据库互连定义了访问数据库的API一个规范,这些API独立于

不同厂商的DBMS,也独立于具体的编程语言。JDBC(JavaDataBase

Connectivityjava数据库连接)是一种用于执行SQL语句的JavaAPI,

可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类

和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据

此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI

编写数据库应用程序

21.B

【答案】B

【解析】DataArchitect是可以对PowerDesigner中所有模型信息进行

访问的只读模块。

22.D

23.C

24.A

25.B解析:当YX时,称X-Y为平凡的函数依赖。

26.A

27.A

28.B

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

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

日志文件,后写数据库。

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

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

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

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

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

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

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

31.\n【审题关键句】千位+百位等于十位+个位的数的个数,把所有满足

此条件的四位数依次存入数组,然后对数组

温馨提示

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

评论

0/150

提交评论