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

下载本文档

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

文档简介

[2021年】河南省郑州市全国计算机等级

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

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

一、1.选择题(10题)

1.下列不属于死锁产生的必要条件的是

A.互斥条件B.共享条件C.不可剥夺条件D.部分分配条件

2.双链表的每个结点包括两个指针域。其中rlink指向结点的后继,llink

指向结点的前驱,如果要在P所指结点后插入q所指的新结点,操作序

列正确的是()o

A.p.rlinkttllink:=q;.rlink:=q;q^.llink:=p;q1.rlink:=pT.rlink;

B.pT.llinklT.rlink:=q;pt.llink:=q;q^.rlink:=p;q^.llink:=p^.llink;

C.qt.llink:=p;q1.rlink:=pT.rlink;p^.rlinkl.llink:=q;.rlink:=q];

D.qT.rlink:=p;q^.llink:=pT.llink;llink].rlink:=q;p^,llink:=q;

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

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

D.关系系统自动保证

4.在Oracle中如果要快速的生成报表应使用哪种工具?

A.OracleFormsB.OracleReportsC.OracleGraphicsD.BPR

5.数据库管理系统FoxBASE和Oracle都是关系型数据库管理系统,但

它们之间存在重要差别。其差别之一是

A.FoxBASE可以使用汉字,而Oracle不可以使用汉字

B.FoxBASE是单用户数据库,而Oracle是多用户数据库

C.FoxBASE一个数据库是一个表,而Oracle一个数据库可以包含多个

D.FoxBASE在微机上运行,而Oracle在大中型机上运行

6.有一个网络数据库应用系统,其中一台计算机A存有DBMS软件、

所有用户数据和应用程序,其余各节点作为终端通过通信线路向A发

出数据库应用请求,这种方式属于

A.集中式数据库系统B.并行数据库系统C.客户机/服务器数据库系统

D.分布式数据库系统

7.下列叙述中,不正确的是

A.模式是数据库全体数据的逻辑结构和特征的描述,不涉及到具体的值

B.一个模式可以有很多实例

C.模式是相对变动的,实例一旦确定下来就比较稳定

D.模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻

的状态

8.下列关于进程的叙述中,正确的是

A.进程由程序、数据和调度信息组成

B.程序是进程的“灵魂”

C.在调度信息中保存有进程的地址信息

D.进程队列可以分为就绪队列、等待队列和运行队列

9.下列有关E-R模型向关系模型转换的叙述中,不正确的是()。

A.一个实体类型转换成一个关系模式

B.一个m:n联系转换为一个关系模式

C一个1:1联系可以转换为一个独立的关系模式,也可以与联系的任意

一端实体所对应的关系模式合并

D.一个l:n联系可以转换为一个独立的关系模式,也可以与联系的任意

一端实体所对应的关系模式合并

10.下面描述不正确的是

A.数据元素是数据的基本单位

B.数据元素可有一个或多个数据项组成,数据项是有独立含义的数据最

小单位

C.数据的逻辑结构是数据间关系的描述,它是抽象地反映数据元素间的

存储关系

D.数据的存储结构是逻辑结构在计算机存储器中的实现

二、填空题(10题)

11.在TCP/IP的参考模型中,HTTP协议定义在___层。

12.Novell公司的NetWare最著名的地方就是它的和打印管

理。

13.数据库管理系统提供数据库操纵语言及它的翻译程序,实现对数据

库数据的操作,包括删除、更新和插入。

14.能够模式化为维属性和度量属性的数据统称为数据。

15.数据库中知识发现是识别数据库中以前不知道的、新颖的、潜在有用

的【】非平凡过程

16.m阶B树的根结点至少有【】棵子树。

17.在点-点网络中,分组从通信子网的源节点到达目的结点的路由是由

决定的。

18.关系代数是一种关系操纵语言,它的操作对象和操作结果均为

19.死锁的4个必要条件是_口_、_[]_、不剥夺条件和循环等待

20.在SQL语言中,若要删除一个表,应使用的语句是____TABLEO

三、单选题(10题)

21.在SQLSever中创建用户数据库,实际就是定义数据库所包含的文件

以及文件的属性。下列不属于数据库文件属性的是_________O

A.初始大小B.物理文件名C.文件结构D.最大大小

22.在对全局E-R模型进行优化时,通常利用规范化理论中的()概念消

除冗余关系。

A.无损联接B.函数依赖C.范式D.逻辑蕴涵

23.设散列函数为H(k)=kmod7,现欲将关键码23,14,9,6,30,12,

18依次散列于地址。〜6中,用线性探测法解决冲突,则在地址空间0〜

6中,得到的散列表是

A.14,6,23,9,18,30,12

B.14,18,23,9,30,12,6

C.14,12,9,23,30,18,6

D.6,23,30,14,18,12,9

24.在定义一个关系结构时,应该说明()

A.字段、数据项及数据项的值B.属性名、属性数据类型及位数C.关系

名、关系类型及作用D.记录名、记录类型及内容

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

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

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

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

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

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

SQLServer服务器

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

27.设计作业调度算法时不需要考虑下列()因素。

A.用户界面友好B.公平性C.均衡使用资源D.吞吐量大

28.下列关于SQLServer数据库管理系统权限的叙述中,哪一条是不正

确的?

A.SQLServer数据库管理系统的权限分为服务器权限和数据库权限两

B.数据库管理员执行数据库管理任务。这是属于数据库权限

C.数据库权限又可以分为数据库对象权限和数据库语句权限两种

D.数据库语句权限授予用户以允许他们创建数据库对象

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

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

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

30.在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据

库的结构被划分成用户级、()和存储级3个层次。

A.管理员级B.外部级C.概念级D.内部级

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

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

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

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

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

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

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

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

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

程序中已定义数组fa|200|.b(200j.已定义受ent

请勿改动数据文件imdat中的任何数据、i函数mam。、读函数rcadDatO和写函数writeDatO的内容.

1Iinclude<stdio.h>

2*defineMAX200

3inta【MAX),b[MAX]9ent・0;

4voidwriteD&t();

voidjsVal()

6

r

8

9!voidreadDat()

10;<

11!inti;

12»FILE*fp;

13;fp=fopen("in.dat","L);

14ifor(i•0;i<MAX;

15•fscant<fp,rd”.(i]);

16;fclose(fp);

1-7i}

i

18•voidmain()

19|I

int1;

readDat();

jsVal();

printzf("满足条件的数NdW.ent);

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

printf",b[i));

printf(w\n");

wrlteDat();

29!voidwriteDat()

30j(

i

32•inti;

wM

33jfprfopen(out.datr"w0);

34;fprintf(fpF"Qd'n".cnt>;

35:for(1«0;i<ent;

36•fprintf(fp>Wid\nw,b(i]),

37;fclose(fp);

38h

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

请勿改动数据文件in.cUl中的任何数据,主函数读函数rcadDatQ和号函数wrisDat。的内容.

1!!include<stdio.h>

2iIdefineMAX200

3;intalMAX],b[MAX],ent,0;

A!voidwriteDat():

5ivoidjsVal()

6

7i

8i\

9jvoidreadDat()〃从in.dau文件中灌取200个四位数存入软力Ia中

10;(

11।inti;

12!FILE*fp;

13ifp-fopen(Hin.datw,**rM);

14•for(i-0;i<MAX;

M

15|fscanf(fp^"%dr[1];

16;fclose(fp);

17!1

181voidmain()

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"的ASCII值01111010得至1J10000001结果。

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

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

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

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

linclude<stdio.h>

iinclude<string.h>

3charxx(501(801;

4intmaxline=0;/•文豪的总行数,/

5intReadDat(void);

6voidWriteDat(void);

7voidStrCharJR(void)

8

9

10

11voidmain()

12I

13if(ReadDat())

14

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

16return;

17I

18StrCharJRO;

19WriteDat{);

20

八从文件m&u中谈取篇英文文章存入J1字符申敛但MI中•/

21intReadDat(void)

22

23FILE*fp;

24inti*0;

25charep;

www

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

27return1;

whlle(fgets(xx(i]r80,fp);•NULL)

(

::p»strchr(xx[i)#

if(p)*p,0;

32•£♦+;

33j)

34;maxline•i;

35!fclose(fp);

36ireturn0;

37i)

i/果xx・出到文依ouutai中•/

38JvoidWriteDat(void)

39j(

40-FILE*fp;

41»inti;

www

42;fp«fopen("out.dat#w);

43!for(i■0;i<maxline;i4+)

44;(

R

45jprintf(%s\n"rxx[i]);

46jfprintf(fp,w%s\nM,xxI1));

47j)

48{fclose(fp);

49;)

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

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

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

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

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

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

成整型变量),如果原字符的ASCII值是偶数或计算后f(p)值小于等于

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

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

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

进行处理。

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

2;finclude<string.h>

3!linclude<ctyp®.h>

4;unsignedchsrxx(501180):

5;intntaxline・0;/♦文荣的总行数•/

6»intReadDat(void);

请”改动主函数main(),读函数ReMDatQ和仲出的敷WriteDaiO的内容,

IJIinclude<stdio.h>

2ylinclude<string.h>

3;tinclude<ctype.h>

4!unsignedcharxx[50)(80];

5jintmaxline-0;/•文束的总行数*/

6;intReadDat(void);

7jvoidWriteDat(void);

8;voidencryptChar()

9;I

10|

12Ivoidmain()

13i(

14;if(ReadDat())

15!(

16;printfLU据文件in.dat不能打开!\n\007。);

17;return;

18j)

19;encryptChar();

20!WriteDat();

21\}

;/•从文件皿修中S取一篇英文文章,存入到字符*数机口中•/

22!intReadDat(void)

23i(

24;FILE-fp;

25Iinti-0;

26;unsignedchar*p;

www

27;if((fp-fopen(in.datr"r))-NULL)

28jreturn1;

29-whilelfgets<xx(i],80ffp>!,NULL)

30!(

31\p-strchr(xx[i)r*\n*);

32jif(p>*p-0;

33•I++;

34;1

35!maxline«1;

361fclose(fp);

37;return0;

38!)

i/•把站整XX-出到文件OUL&l中•/

39;voidWrileDat(void)

40*(

41jFILETp;

42jinti;

43;fp-fop@n("out・dat".

44\for(i*0;i<maxline;

45!(

ww

46iprintf(%s\nrxx[i]);

w

47;fprintf(fp,%s\n"#xx(i]);

48f)

49\fclose(fp);

50;}

12voidmain()

13

14if(ReadDat())

15I

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

17return;

18

19encryptChar();

20WriteDat();

21)

/•从文件E&t中it取一・英文文融,存入必学和巾敏娟xx中〃

22intReadDat(void)

23(

24FILEw£p;

25Inti-0;

26unsignedchar*p;

Hww

27if((fp-fopen(in.dat"rr))-N二LL)

28return1;

29while(fget8(xx[1],80rfp)!,NULL)

30(

31p■strchr(xx[i]9,\n*);

32if(p)*p-0;

331+♦;

34J

35maxline*1;

36fclose(fp);

37return0;

38I

/JRxx・出宜文竹outdat中,/

39voidWriteDat(void)

40(

41FILE*fp;

42inti;

43fp-fopen("out.dat**,"wM);

44for(i•0;i<maxline;

45(

46printfC%sKn1*,xx(i]);

47fprintf(fp,Fs\rj",xx[1]);

48

49fclose(fp);

50

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

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

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

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

出到文件out.dat中。

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

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

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

例如.位置012345678

源字符申dcbahgfe

432198765

则处理后字符中hgfcabcd

876591234

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

请匆改动数据文件in.dal中的任何1!(据、主函数main()、设函数readDatO和写函数writeDatO的内容.

1;iinclude<stdio«h>

2:*include<string.h>

3jvoidreadDat();

4jvoidwriteDat();

5*charxx[20][801;

6;voidjsSort()

7i(

j

8I

9;)

10;voidmainO

11;(

12•readDat();

13:jsSortO;

14!writeDatO;

15\)

!,•从文件m.dai中父取20tj数福存放到字符串软觎xx中•/

16jvoidreadDat()

17?/

18}FILE*in;

19jint1-0;

20*char*p;

www

21;in■fopen(in.datr*r);

22!whiled<20“fgets(xxli)r80,in)!-NULL)

23\(

24-p-strehr(xx[i)t,\n,);

25jif(p)*p-0;

26j

27•)

28;fclose(in);

29;}

i/•尼站果xx・出到文件om&t中•/

30*voidwrxteDat()

31j1

32-FILEeout;

33jint1;

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

37Iprintfxx(l]);

38ifprintf(out,xx(i));

39\)

40;fclose(out);

36.已知在文件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;ineMAX100

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

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

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

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

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

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

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

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

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

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

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

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

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

程序中已定义数组14200].b(200],已定义变量IOrt

调勿改动数据文件irtd觥中的任何数据、?的数读函数readDatO和写函数writeDatO的内容.

1»Iinclude<stdio.h>

2iIdefineMAX200〃定义宏支ItMAX,其值等于2。。

3\inta[MAXkblMAX),ent-0;〃定义全局整型Tt敷烟alMAX),3IMAX?加支量ent,苒初值等于。

4\voidwriteDat();

5\voidjsVal()

6I:I

7j

8J)

9\voidreadDatO〃从tn.dat文件中澹取20。个四收数存入Iftifl•中

10iI

11jinti;

12jFILEefp;

13;fp-fopenCln.dat*,;

14!for(X•0;i<MAX;H

15jfscanf(fpffca[i]).

16•fclose(fp);

175I

18ivoidmain()

19\(

20jint1;

readDatO;

22jsval();〃■用()崎敏实现・目■求的动麓

23prlntf("淌足条件的数7d\ent);

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

25printf(n%d-,b(i]);

26printf(w\nw);

21writeDatO;

28)

29voidwriteDatO〃化诗K姑果cm以及敬纲b中符合条件的四位数■出到ouLdai文件中

30

31FILE-fp;

32inti;

33fp•fopen(wout.dat",

34fprintf(fpr"%d\n"rent);

35ford•0;1<ent;

M

36fprintf(fpr%d\n"rb[l]>;

37fclose(fp);

38!)

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

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

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

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

出到文件Out.dat中。

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

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

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

位置上。

例皿位置012345678

源字符串abcdhgfe

123498765

则处理后字符串hgfedcba

876594321

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

请勿改动数据文件in.dat中的任何敷据、主函数main()、读函数readDatQ和写函数wrixeDaU)的内容.

1:linclude<stdio.h>

2jfinclude<string.h>

3;charxx120](80);

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

39.已知数据文件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八

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

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

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

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

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

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

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

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

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

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

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

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

test.c文件中。

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

的内容。

1;finclude<stdio.h>

2J♦include<string.h>

3;unsignedcharxx[50][80];

4!intmaxline■0;/•文章的西行数•/

5»intReadDat(void);

6'voidWriteDat(void);

7»voidChA(void)

8|(

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

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

41.设有高校选课系统,需要对学校的系信息、教师信息、课程信息、

学生信息、学生选课信息进行管理。已知系(DEPT)信息包括系编号

(DeptNO)、系名称(DeptName);教师(Teacher)信息包括教师

号(TNO)、教师名(Tname);课程(Course)信息包括课程号

(CNO)、课程名(CName)>课程学分(Credit);学生(Student)

信息包括学号(SNO)、学生姓名(Sname)、学生性别(Sex)。选

课系统的管理规则如下:I.一个系可聘用多名教师,一个教师只受

聘于一个系;II.一个系可有多名学生,一个学生只属于一个系;

III.一名教师可讲授多门课程,一门课程可由多名教师讲授;IV.一

名学生可选修多门课程,一门课程可被多名学生选修;V.学生选修完

课程后,可获得相应课程的成绩。针对以上描述,完成下列设计内

容:(1)构建选修课系统的ER图。(要求图中的实体集名用试卷中

给出的英文名,联系所关联的实体集名的首字母,字母问用“一”或

连接,大小写不限)。(6分)(2)根据所构建的ER图,设计满足

3NF的关系模式,并标出每个关系模式的主码和外码。(要求关系模

式名同实体集名或联系名,属性名用试卷中给出的英文名,大小写不

限)(4分)

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

据表格:

教师

上级领导教师

教师号教师名职称工资

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

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

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

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

用下划线标识。

六、单选题口分](2题)

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

TRIGGERtri_updateONTFORUPDATEASIFEXISTSfSELECT术

FROMinsertedWHEREbnotbetween0and100)KULLBACK设表T中

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

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

()o

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

('a01',100)

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

('aOT,100)

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

表:(‘aOl',90)

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

('aOl',90)

44.设在SQLServer2008中,用户UI在DB1数据库中创建了#Temp表。

下列关于#Temp表的说法中,正确的是()。

A.只有在创建#Temp表的连接中才可以查询#Temp表数据

B.在所有用户U1发起的连接中,都可以查询#Temp表数据

C.在创建#Temp表的连接未断开时,DB1数据库的所有用户都可以查询

#Temp表数据

D.在创建#Temp表的连接断开时,DB1数据库的所有用户仍可以查询

#Temp表数据

参考答案

1.B解析:产生死锁的四个必要条件是:①互斥条件,♦②不可剥夺条件;

③部分分配条件;④循环等待条件。分析四个选项可知只有选项B(共享

条件)不属于产生死锁的条件,所以正确答案为B。

2.C解析:如果在链表的每个结点中包括两个指针域,其中rlink指向结

点的后继,Uink指向结点的前驱,就可以方便地进行向后和向前两个方

向的查找。这样的链表称作双链表。在双链表中,如果要在P所指结点

后插入q所指的新结点,只需修改P所指结点的rlink字段和原后继的

Uink字段,并置q所指结点的llink和rlink值.即:qT.llink:=p;qt.rlink:

=pTriink;p^.riinkf.rlink:=q;pt.rlink:=q

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

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

前述思想矛盾的。

4.B解析:在Oracle中,OracleReports用来快速的生成报表;Oracle

Forms用来快速生成基于屏幕的复杂应用的工具;OracleGraphics用来

快速生成图形应用的工具。BPR用于过程建模。掌握Oracle工具产品的

种类,Developer/2000和Designer/2000分别具有什么功能。

5.C解析:FoxBASE所有的功能Oracle基本上都具备,当然包括A),

B),D)的3个选项所列出的功能。在

温馨提示

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

评论

0/150

提交评论