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

付费下载

下载本文档

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

文档简介

2021年安徽省宣城市全国计算机等级考试

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

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

一、1.选择题(10题)

i.共享变量是指如何访问的变量?

A.只能被系统进程B.只能被多个进程互斥C.只能被用户进程D.可被

多个进程

2.系统故障恢复的步骤是

A.反向扫描日志文件、对每一个更新操作执行逆操作、如此下去

B.对每一个更新操作执行逆操作、反向扫描日志文件、如此下去

C.正向扫描日志文件、对UNDO队列中的事务进行UNDO处理、对

REDO队列中的事务进行REDO处理

D.正向扫描日志文件、对REDO队列中的事务进行REDO处理、对

UNDO队列中的事务进行UNDO处理

3.在数据库系统巾,面向用户、也就是用户所涉及的数据库被称为()。

A.外模式B.概念模式C.存储模式D.模式

4.对n个结点的二叉树进行遍历,错误的说法是()。

A.不同遍历方法的时间复杂度一样

B.用中序遍历的方式时间复杂度为O(n)

C.后序遍历的空间复杂度为0(n)

D.遍历的时间复杂度和空间复杂度都为0(吟

5.在数据库系统阶段,数据

A.具有物理独立性,没有逻辑独立性

B.具有逻辑独立性,没有物理独立性

C.物理独立性和逻辑独立性均没有

D.具有高度的物理独立性和逻辑独立性

6.UNIFACE是Compuware公司推出的基于组件的可视化开发环境。

UNIFACE组件包括格式(Form)、服务程序(Service)和报表(Report)等。

UNIFACE采用语言开发。

A.SmalltalkB.PascalC.ProcD.VB

下列关于E-R模型的叙述中,()是不正确的.

A)在E-唱中,实体类型用佛圆形表示,属性用矩形表示,联系用棱形表示

B)实体类型间的联系通常可以分为1:1,1:而m:n三类

C)1:1联系是l:n联系的特例,l:n联系是m:n联系的特例

7.D)联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间

8.下面关于数据库系统基于日志的恢复的叙述中,是正确的。

A.利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中

的改前值可以进行REDO

B.利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中

的改后值可以进行REDO

C.利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中

的改前值可以进行REDO

D.利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中

的改后值可以进行REDO

9.有两个关系R和S,分别包含15个和10个元组,则在RUS,R-S,

RAS中不可能出现的元组数目情况是

A.15,5,10B.18,17,7C.21,11,4D.25,15,0

10.如下是一个稀疏矩阵的三元组法存储表示和基于此表示所得出的相

关叙述

I.该稀疏矩阵有5行

II.该稀疏矩阵有4列

III.该稀疏矩阵有6个非0元素

这些叙述中哪一个(些)是正确的

A.仅IB.工和IIC.仅HID.全部

二、填空题(10题)

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

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

12.数据库管理系统(DBMS)提供数据定义语言(DDL)及它的翻译程序,

DDL定义数据库的模式、外模式和内模式,并通过翻译程序分别翻译成

相应的目标模式,存放在【】。

13.以太网帧结构由前导码、帧前定界符、目的地址字段、源地址字段、

类型字段和帧校验字段几个部分组成。

14.当用户申请打开一个文件时,操作系统将该文件的文件控制块保存

在内存的表中。

15.从被管理设备中收集数据有两种方法:轮询法和基于中断法,将两者

结合起来的(Trap―directedPolling)是执行网络管理最有效

的方法。

16.死锁产生的原因是系统资源不足和」]_

17.在因特网中,屏蔽各个物理网络细节和差异的是__________o

18.一些进程相互合作共同完成一项任务,进程之间的这种直接的协同

工作关系称为O

19.系统为了管理文件,设置了专门的数据结构【】(FCB)OFCB是在

执行创建文件系统调用时建立的。

20.文件系统提供按名存取功能,要求用户在读文件之前调用文

件操作。

三、单选题(10题)

21.数据库是在计算机系统中按照一定的数据模型组织、存储和应用的()

A.文件的集合B.数据的集合C.命令的集合D.程序的集合

22.概念设计的结构是得到一个与()

A.DBMS有关的逻辑结构B.DBMS无关的概念模式C.DBMS和硬件

有关的逻辑结构D.DBMS和硬件无关的数据结构

23.下列不是TCP/IP参考模型中的应用层协议()。

A.A.电子邮件协议SMTPB.网络文件系统NFSC.简单网络管理协议

SNMPD.文件传输协议FTP

24.文件可存放在磁盘、磁带等多种存储介质上,通常只能按记

录的顺序存取,对这种文件进行更新,原则上需对文件做整体拷贝。

A.索引文件B.索引顺序文件C.顺序文件D.直接文件

25.用户对SQL数据库的访问权限中,如果只允许删除基本表中的元组,

应授予哪一种权限?

A.DROPB.DELETEC.ALTERD.UPDATE

26.对于学生信息表S(SNUMBER,SNAME,SEX,AGE,

DEPT)(STUDENT由学号SNO,姓名SNAME,性别SEX,年龄AGE,

所在系DEPT5个属性组成,其中SNUMBER为主码),求年龄20〜23

岁之间的学生姓名和年龄,正确的语句是()。

A.SELECTSNAME,AGEFROMSWHEREAGE>20ANDAGE<23

B.SELECTSNAME,AGEFROMSWHEREAGEBETWEEN20AND

23

C.SELECT*FROMSWHERE.AGEBETWEEN20AND23

D.以上均不正确

27.在SQLServer2008中,设用户UI是某数据库db_datawriter角色中

的成员,则U1在该数据库中有权执行的操作是()

A.SELECT

B.SELECT和INSERT

C.INSERT.UPDATE和DELETE

D.SELECT,INSERT.UPDATE和DELETE

28.下列关于数据的逻辑结构的叙述中,哪一个是正确的?()。

A.数据的逻辑结构是数据间关系的描述

B.数据的逻辑结构反映了数据在计算机中的存储方式

C.数据的逻辑结构分为顺序结构和链式结构

D.数据的逻辑结构分为静态结构和动态结构

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

部件是

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

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

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

是()

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

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

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

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

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

31.程序test.c的功能是:将大于整数m且紧靠m的k个素数存入数组

XXo请考生编写函数num(intm,intk,intxx口)实现程序的要求,最后调

用函数readwriteDATO把结果输出到Out.dat文件中。

例如,若输入17,5,则应输出:19,23,29,31,37O

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

请勿改动数据文件ndat中的任何数施以及上点数mainO和输出函数readwriteDAT()的内容.

1Iinclude<stdio.h>//mciudc遢句说明各程序中色力vc6.0中的标净•人■出程术数ndio.h

2voidreadwriteDATO;//曲般readurueDAT。出明语句

3intis?(intm)〃京数"P«inum邦斯m是否为素IL如果是It数则返回i,否则返回。

4(

5int1;〃定义变量2

6for(i-2;i<m;〃殳■i从2依次爆增到施・1

7if(m%i•*0)return0;〃如果m位被i•除,返回o

8return1;//否射始回1

9)

10voidnum(intm.intk.intxx(])

11{

12

13)

14mainO

15(

16intm,n,xxflOOO);〃定义盘盘m,nxxllOOO]

17printf(w\nPleaseentertwointegers:");

R

18scanfCtdr%d,&n);〃从便负读入两个依依蛤受量m,n

19num(m,n,xx);〃・利解fkm«Enrttn,mtk・auU)实现梅大于■数m且*森m的卜个Mk〃入敷iflu

20for(m-0;m<n;m**)〃变■«»从。依次增增n-1

21printf("%d**.xx(m));〃•出ft级兀腐XJC【R

22printf(*\nw);〃■出一个回车按行将

23readwriteDAT();〃暇用函畋MUntcDATOT结果■出到omdai文仲中

24)

25voidreadwriteDAT()〃也数mdsrgMTC的定义爆句

26<

27intm,n.xx[1000Li;〃定义就”受■m.c,£如敏烟xxlld。。】

28FILE*wf;〃定义文件指什攵量r£.wf

29rf-fopen(win.datw,*rM);〃以只博的方式的〃开文件上n.dat,并用rf指向这个文件

,ww

30wf-fopenCout.dat*/w);〃以只耳的方式的打开文件。u匕.da匕■并用wf指向这个文件

31for(i-0;i<10;〃值塔交量上从。依次展』到9

32(

33fscanf(rft”d"才,&m,&n);〃从文件indatit入两个数(ftM绐m.n

«

34nuw(mrn.xx);〃■用总数洪航num(6.k・实现将大于事故m姓等靠m的k个腐敏入数酣n

35for(m-0;m<n;cn,+)〃付环麦*a从。依次

36fprintf(wfr"%d",xx[m]);〃把数根元Itxx[m]耳入到文件out.dAt中

H

37fprintf(wfr-\n);〃把科书偿打舒耳入剑文件out.dac中

38)

39fclosefrf);〃关闭♦入文件in.da匕

40fclose(wf);//关闭■出文件out•&匕

41

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

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

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

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

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

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

果两个新组成的数均是奇数并且至少有一个数能被5整除,同时两个新

数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存

入数组b中,并要计算满足上述条件的四位数的个数ent。最后main函

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

到Out.dat文件中。

注者:部分源程序存在UWLC文件中.

程序中已定义数组:4200),b(200],已定义变傲,ent

请勿改动数据文件in.dat中的任何数据、「陶敢main。、读函数readDatO和写函数writeDaU)的内容.

1;•include<stdio.h>

2fdftfineMAX200

3intb(MAX],ent-0;

4voidwriteDat();

5voidj3Val()

6

7

8”

9ivoidreadDat()〃从In.dac文件中遭取200个四位效存入数组a中

10•(

11•int1;

12FILE*fp;

Rrw

13fp-fopen(in.datr"r);

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

15{scant(fp,iaf1]>;

16fclose(fp):

17»

18voidmain()

19[

20inti;

21readDat();

22isValO;〃*用南数变现■求的功艇

23princf满足条件的数,Qd\n",ent);

24for(i•0;1<ent;

25printf(*%dIb[i]);

26printf(H\nw);

27writeDat();

28

29voidwriteDatO〃把计算的裳6t以及数组b中符合条件的四位依■出到皿《文件中

30

31FILE#fp;

32int1;

w

33fp-fopen("out.date;

34fprAntf(£p,"%d\n",ent);

35for(i-0;1<ent;

36fprintf(fp,Htd\n*/b[i]);

37fclose(fp>;

38

33.将文件in.dat中的200个整数读至数组XX中。请编制jsValue函

数,要求:求出数组XX中的数值为奇数的个数cntl和数值为偶数的个

数cnt2以及数组XX下标为奇数的元素值的算术平均值pjo

结果cntl,cnt2,pj输出到out.dat中。注意:部分源程序存在test.c

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

数read_dat和输出函数writeDat的内容。

1Iinclude<3tdio.h>

2•defineN200

3Intchtl,cnt2rxx(N);

4floatpj;〃平均值

5voidwriteDatO;

6voidjsValue()

7

8

9

/•road_dat(Intxx[Nl)ift数施文ftitt&t侬的200个■Ifcit至Ikfilu中•/

10voidread_dat(intxx[N])

(

intlrj;

FILETp;

14fp-fopen("in.ctat","r");

15for(1•0;i<20;

16(

17for(j•0;j<10;

18

19fscanf(fp^FdJ.;//从文件m.dai中球取一个■数〃入敷蛾元Itxx[L・16r]中

20printf("td”,xx[iw10*j));

21]

22printf(*\nw);

23]

24fclose(fp);

251

26voidmain()

27{

28read_dat(xx);

29jaValue();

R

30printf(\n\ncntl-%d/cnt2*td#pj»^6.2f\n*/cntl,cnt2rpj);

31writeDatO;

32I

/•哀计算箱果Hl.cm2.B愉出列outdai中•/

33voidwriteDat()

34(

35FILE*fw;

36fw-fopen("out.datnrMwR);

R写入到中

37fprintf(fw,"%d\ntd\n%6.2f\n,cntl,cnt2rpj);//cml.cm2.8outdit

38fclose(fw);

39

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Iinclude<stdio.h>

2•defineMAX200

3mta[MAX],b(MAX],ent-0;

4voidwriteDat0;

5voidjsVal()

6

7

8

9voidreadDat()〃从1n.dat文件中it取20。个四位数存入致a中

10(

11int1;

12FILE*fp;

13fp-fopen(Hin.datw,"r");

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

15fscant"td",4a(i));

16fclose(fp);

17

18voidmain()

19

20int1;

21readDat();

22jsValO;〃・用滋数”宏现襄求的功能

23printf<“清足条件的敷ent);

24for(1-0;i<ent;"♦)

25\print—"d。

26:printf(*\nw);

27wrlteDat();

28I

29voidwriteDat(>"圮计算的果cm以及故蛆b中料台条件的四位数・图到outdat文件中

30(

31FILE*fp;

32inti;

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

34fprintf(fprent);

35for(i•0;i<ent;11♦♦)

36fprintf(fpr"%d\n"<b[l));

37fclose(fp);

38

35.编写一/t•函数findStr(char*str,char*substr),该函数统计一"?长度为

2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数

值返回。例如,假定输入的字符串为”asdasasdfgasdaszx67asdmklo”,

子字符串为“as",函数返回值是6。

函数ReadWrite实现从文件indat中读取两个字符串,并调用函数findStr,

最后把结果输出到文件。ut.dat中。

注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函

数中的任何内容,仅在函数findStr的花括号中

填入你编写的若干语句。

♦include<stdio.h>

tinclude<string.h>

3voidReadWrlte();

4intfindStr(char*3trrchar•substr)

5

6

7

8mainO

9

10charstr(81|,substr[3];

intn;

pr'ntfL输入原字符中:”);

13gets(str);

14pr—入「字符申:");

15gets(substr);

16puts(str);

17puts(substr);

18n-findStr(str,substr);

,

19prlntf(**n*%d\n"rn);

20ReadWrite();

21I

/•从文件huht中it取两个字符中,并•用雄依findSwO,■后钻果■出到文件out&t中•/

22voidReadWrite()

23(

24charstr(81),substr(3],ch;

25intnrlenri•0;

26FILE•rf,*wf;

27rf-fopenLLn.dat","r");

wwHM

28wf-fopen(out.datrw):

29whiled<5)

30i

31fgets(strr80,rf);〃从文件!ndu中建取长度为R的字符中存入到半构小

32fgets(substr,10,rf);〃从文件Edit中涛取长授为9的子字符中存入到字符率“uxtr

33len*strlen(substr)-1;,/尼f字符麽substr的长度凌)的{ft跳绘

34ch-substrtlenI;〃把子字符删的•存f字相的侬*捺字符ch

,•如臬于字符中的量后一个字构是网等投行符或是文件的或符•副纪子?籽卑的♦后一个多籽的值&宣为。•/

35if(ch。'\n'IIch~Oxla)

36subatr[len]•0;

/•用的Ikflndfitrsubstrl返⑼子字符串・ub,s在字符申atr中出现的次数•/

37n-findStr(strrsubstr);

38fprintf(wf,"d\n".n);//无诂年触Un耳人父女ftout.cUu中

391*4;〃■环登

40I

41fclose(rf);

42fclose(wf);

43

36.程序test.c的功能是:计算100以内满足以下条件的所有整数i的

个数ent以及这些i之和sum。条件:i,i+4,i+10都是素数,同时i+10

小于100o请考生编写函数countvalue实现程序要求,最后调用函数

wfiteDAT把结果ent和sum输出到文件out.dat中。(数值1不是素数)

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

请勿改动主或数nuun()和输出数据函敷wrheDATO的内容.

•include<stxiio.h>//hdude通句假机各间岸中包含心。中的标廊■人・附亭■敷岫oh

voidwriteDATO;〃硝敏xrASDAT八的A明谒甸

intent,sun;,/定义全斶■电堂■cu.3g

intisPriraetlntnumber)//iA*1tPrime(number)H*ni«b«£*利是如最jtlCIL电第网ta9的值等T

1•否时重回的像等干。

<

inti,tag•1;〃建文交■】和攵■sq的M值等于L

if(number••1)

return0;〃加里nuadx的优等F创意阿Q

for(i-2;tag“!<•numberf2i//克量[从2开岫.旬次期LKNMfll小于等「cu»ber,2井

11至・tag的值等于XH,■出事环

if(number11••0)

tag•0;z/to*nunb«»rftHiWit.Bf<ttagIhfflWT0

returntag;〃雄园交(tug的他

I

voidcountvalue()

voidmain()

(

ent■sun•0;ent.aunlCVJtt0

countvalue()://(RRIM遗打计W

printf("满足条件的整数的个散•Qd\M,ent);〃&M・上・出篇是条件的■也个敏ent

prlntfL满足条件的整数的和值•%d\n。,sum);"W上・出倩足条仔的的融9UB

xrseDATO;〃花计以微・写入剜文flrxit.st中

I

voidwriteDAT0

FILETp;//«JtXnWftfp

fp-fopen(*out.dat",*ww);〃以只n的冉式的打开文件ovi.cuu.其fl旭指向此文C

fprintf(fp,-%d\ntd\nM,ent.sum);〃Jt拿数的个数值5t..郭的缆9g不入”文种out.

fcloae(fp);〃臭用文»out.dat

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

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

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

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

出到文件out.dat中。

例:原文:dAe,BfC.

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

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

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

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

的内容。

1tinclude<stdio.h>

2tinclude<string.h>

3charxx[50](801;

4unsignedintmaxline■0;/,文章的总行数•/

5intReadDat(void);

6voidWriteDat(void);

7voidSortCharD(void)

8

9

10

11voidmain()

12(

13if(ReadDat())

14(

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

16return;

17I

18SortCharD();

19WriteDat();

20

/•从文件indm中偷取■英文文拿存入为平利厮数@1xx<<»•/

21intReadDat(void)

22(

23FILE*fD;

24;inti•0;

25!char*p;

Hw

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

27-return1;〃如果文件In.0n内存为空.*返回1

!/♦当从文件Ln.dat中选取79个字符存入xx【L|没/命课发生》t执行/环体中的语句•/

28jwhile(fgets(xx[i],80rfp)!,NULL)

29\{

30•p-strchrCxxfi),,Xn1);〃在字杪率中叁找回车撰行将事一个IK配的位置

31;if(p)*p•0;〃如果p的值不为零,丽苴值设置为0

32;i+4;〃行变量加1

33•)

34jmaxline-1;〃尼文章的总行效M蛤堂fltaaitUne

35j(close(fp);

36jreturn0;

37;|

j,•纪咕累XX"出到文件中•/

38jvoidWriteDat(void)

39;(

40!FILE»fp;

41junsignedinti;

ww

42;fp-fopen(*out.dat°tw);

43!for(i-0;1<maxline;

44i(

ww

45;printf(ts\nrxx(i]);

46!fprintf(fp/"ls\n",xx[i]);

47i}

48-fclose(fp);

49•}

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

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

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

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

出到文件Out.dat中。

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

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

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

位置上。

例虬位置012345678

源字符申abcdhgfe

123498765

则处理后字符串hgfedcba

876594321

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

请勿改动数据文件in.dat中的任何数据、主函数皿1")、读话数ZDatO和写函数whteDatO的内容.

1JIinclude<stdio.h>

2*tinclude<string.h>

3;charxx[20]180);

4;voidreadDat();

5!voidwriteDatO;

6ivoidjsSort()

7

8

9

10!voidmainO

;(

11

12•readDat();

13!jsSort();

14jwriteDat(>;

15

j/•从文件1ndM中谴取20打数宛〃放到?朴卑数创«中•/

16voidreadDat0

17

18FILE*in;

19inti•0;

20char*p;

wwww

21in*fopen(in.datrr);

22whiled<20“fgets(xx[ilf80,in)!"NULL)

23

24p-strchr(xxfij9*\n*);

25If(p)*p•0;

26O

27

28fclose(in);

29i]

;/・IE姑IHx♦出到交相out&rt中•/

30•voidwriteDat()

31

32FILEeout;

33int1;

34out-fopenHwM);

35ford■0;1<20;if)

36(

37printf(fs\n”.xx[1]);

r

38fprintf(outr",八n".xxil);

39)

40fclose(out);

41

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

串数组XX中,•请编制函数eneryptChar,按给定的替代关系对数组XX

中的所有字符进行替代,仍存入数组XX对应的位置上,最后调用函数

WriteDat把结果xX输出到文件out.dat中。

替代关系:f(p)=p*“mod256,mod为取余运算,P是数组XX中某一

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

成整型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是大写

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

注意:部分源程序存放在test.c文件中,原始数据文件存放的格式是:

每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系

进行处理。

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

1♦include<stdio.h>

2•include<string.h>

3♦include<ctype.h>

4unsignedcharxx[50][80];

5intmaxline-0;/♦文章的总行数•/

6intReadDat(void);

7voidWriteDat(void);

8voidencryptChar()

9I

10unsignedintval;

11

12

13voidmain()

14(

15if(ReadDatO)

16(

17printf("数据文件m.dat不佬打开!\n\007");

18return;

19)

20encryptChar();

21WriteDat();

22I

,♦从文付mdal中口:取一■荚文文・・存人父字符中数mu中•/

intReadDat(void)

24

25FILE*fp;

26inti-0;

27unsignedchar*p;

28if((fp-fopen(-in.datH,)-NULL)

29return1;

30while(fgets(xx(1),80,fp)-NULL)

31I

32p=strehr(xx(i)#*\n*);

33if(p)*p-0;

34If

35

36maxline-i;

37fclose(fp);

38return0;

39>

/•«««u■出到文件outdai中•/

40voidWriteDat(void)

41

42FILE*fp;

43inti;

44fp■fopenfout.dat**,W

45for(i»0;i<maxline;1*♦)

46(

47printf("laXn",xx{iB;

48fprintf(fprFs\n",xx(i]);

49

50fclose(fp);

51

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

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

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

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

条件的个数ent,并把这些四位数存入数组b中,而后对数组b进行升

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

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

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

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

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

和写函数writeDat的内容。

1-linclude<stdio.h>

2jIdefineMAX200〃定义宏交■KAXH值券于200

〃北初蛤值为定义全身■型脩敢祖

3\inta(MAX)rb(MAX]ent-0;0,SMAX;.

41voidwriteDat();//xHsDaD由故的说明语句

5jvoidjsVal()

6•(

/•readDat()从依据文件m.dat中读取200个四粒依存入敏由•中〃

9voidreadDat()

10

11int1;

12FILE*fp;

ww

13fopen(in.datr"r

14;for(100;1<MAX;£+♦)

15!fscanf(fp,",cT,&a[i]);

16;fclose(fp);

17

18jvoidmainO

19;(

20!inti;

215readDat();

22ijsVal();〃恻网*也实甩BUi要求的功能

231printf("满足条件的数・“\个,:nt);

24ifor(1-0;i<ent;i**)

25-printfC,%d",b(ll);

26;printf;

27;writeDat();

28J)

;/・W敢wntcDiMHC怙果e以及效组b中符介条件的四位效■由到0ut.dM文件中•/

29;voidwriteDat()

30!(

31;FILE-fp;

32;inti;

w

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

ww

34;fprintf{fprid\n,ent);

35!ford•0;i<ent;

361fprintf(fpr7d\M,b[i]);

37;fclose(fp);

38;)

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

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

据表格:

教师

上级领导教师

教师号教师名职称工资

9868王文华教授8000null

9983李一斌副教授60009868

9985丁一讲师删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图中需给出每个实体集的属性,主码属性

用下划线标识。

42.设在SQLServer2008某数据库中,已建立了四个文件组:fgl、f92、

f93和f94,以及一"Is'分区函数RangePFl。RangePFl的定义代码如下:

CREATEPARTITIONFUNCTIONRangePFl(int)ASRANGELEFTFOR

VALUES(100,200,300)(1)请基于RangePFl创建一个分区方案

RangePSl,每个分区对应一个文件组。(5分)(2)请使用RangePSl创

建一个分区表PartitionT(Gid,GoodName,Price),该表基于Gid列创

建分区。其中Gid:int类型,取值大于等于1;GoodName:统一字符编

码可变长类型,最多可存储20个汉字;Price:定点小数类型,小数部

分1位,整数部分到千位。(5分)

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

43.SQLServer2008提供了方便的数据导入/导出向导,现利用该向导

将S1服务器上某数据库中T1表的数据导人到S2服务器某数据库中已

有的T2表中。在数据源上的操作由用户U1完成,在目的服务器上的

操作由用户U2完成。则U1和U2需要具有的权限是()。

A.ul需要T1表的查询权限和T2表的插入权限,U2无需任何权限

B.U2需要T1表的查询权限和T2表的插入权限,U1无需任何权限

C.U1需要T1表的查询权限,U2需要T2表的插入权限

D.U1需要T1表的查询权限和S2服务器的登录权限,U2需要T2表的

插入权限和S1服务器的登录权限

44.在SQLServer2008中,设表T(a,b)上建有如下触发器:CREATE

TRIGGERtri_updateONTFORUPDATEASIFEXISTSfSELECT术

FROMinsertedWHEREbnotbetween0and100)KULLBACK设表T中

已有数据:('a01',90),如果执行语句UPDATETSETb=100WHERE

a='a01'则触发器临时工作表及执行完该语句后表T中的数据为

()o

A.T表:(‘a01100)INSERTED表:('a01',90)DELETED表:

('a01',100)

B.T表:(‘a01',90)INSERTED表:('aOl',90)DELETED表:

('aOl5,100)

C.T表:(‘aOl',100)INSERTED表:('aOl',100)DELETED

表:(’a0一,90)

D.T表:(‘aOl',90)INSERTED表:('aOl',100)DELETED表:

('aOl',90)

参考答案

1.D解析:共享变量是指可被多个进程访问的变量。

2.C解析:事务故障恢复的步骤:反向扫描日志文件、对每一个更新操

作执行逆操作、如此下去。系统故障恢复的步骤:正向扫描日志文件、

对UNDO队列中的事务进行UNDO处理、对REDO队列中的事务进行

REDO处理。注意:A)选项是事务故障恢复的步骤,不是系统故障恢复

的步骤,故不选择A),B),D)选项叙述错误;故C)选项正确。掌握事

务故障恢复的步骤,事务故障恢复和系统故障恢复的异同点。

3.A解析:外模式也称子模式或用户模式。它是数据库用户能够看见和

使用的局部的逻辑结构和特征的描述,是数据库用户的数据视图,是与

某一应用有关的数据的逻辑表示。

4.D解析:遍历二叉树的算法中的基本操作是访问结点,不论按哪种次

序进行遍历,对含n个结点的二叉树,时间复杂度都为O(n),所需的辅

助空间为遍历过程中栈的最大容量,即树的深度,最坏情况下为n,则

空间复杂度也为O(n)。

5.D解析:数据独立性是指应用程序与数据之间相互独立、互不影响,

数据独立性包括物理独立性和逻辑独立性。在数据库系统阶段,数据具

有较高的物理独立性和逻辑独立性。

6.C解析:UNIFACE采用Proc语言开发。

7.A

8.B解析:日志文件能够很好地支持事务故障的恢复和系统故障的恢复。

利用更新日志记录中的改前值可以进行UNDO,撤销做过的修改操作,

将数据项恢复到修改以前的旧值;利用更新日志记录中的改后值可以进

行REDO,重做已完成的操作,将数据项置顶为修改后的新值。

9.B解析:RUS是将两个关系R和S的元组合并,其结果是一个新关

系;R-S从R关系中去掉S关系也有的元组组成的新关系;RCS是将两个

关系R和S的公共元组组成一个新的关系。

10.D解析:本题考核有关数据结构中稀疏矩阵的基本概念和操作,参考

232“稀疏矩阵的存储”。在三元组法存储中,每个结点有三个域,分别

是该元素的行下标,列下标和值。结点间的次序按矩阵的行优先顺序排

列。由图中的三元组可见,该稀疏矩阵有5行,4歹IJ,一共20个元素,

并且其中有6个

温馨提示

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

评论

0/150

提交评论