《2023年河南省开封市全国计算机等级考试数据库技术真题(含答案).docx》由会员分享,可在线阅读,更多相关《2023年河南省开封市全国计算机等级考试数据库技术真题(含答案).docx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年河南省开封市全国计算机等级考试 数据库技术真题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .如果一棵二叉树结点的前序序列是c、D、E,后序序列是E、D、C,则该二叉树结点的对称序序列 OA.必为E、D、8.必为、D、。必为口、C、ED.不能确定2 .数据库系统中的人员包括 o .数据库管理员 .系统分析员 .数据库设计人员 .应用程序 .最终用户A.口、口和DB.口、口、口和DC.和DD.都是3 . SQL的DROP INDEX语句的作用是。A.删除索引B.建立索引C.修改索引D.更新索引4 .下列关于码的叙述中,正确的是A.在一个关系中,不可能存在两个不同的元组在
2、码属性上取值相同8 .属性是一个元组区别于其它元组的依据C.在一个关系中,可能存在码或码的一部分为空值的元组34567891011121314151617181920212223242526272829303132333435363738394041424344454647484950请勿改动主的敷读函数RcadDat()和,出的数WriteDatO的内格includelincludetinclude unsigned char xx(50(80);int maxline - 0;卜文章的总行数7 int ReadDat(void);void WriteDat(void);void encry
3、ptChar();void mainO 1 1;if(ReadDat()I (;printf (“数据文件 in.dat 不能打开! n007”); return;encryptChar();! WriteDat(); ;/从文件中it取一/英文文章.存入到字符吊故Mu中/ ! int ReadDat(void):I;FILE efp; int i 0; unsigned char wp;j if (fp-foperK-in.datr-r*)-NULL) return 1;while(fgets(xxlj,80f fp) !, NULL) (P - strchr(xxih fn#); if(p
4、)p - 0;I maxline i; fclose(fp); return 0;I) ;七姑累人出国文件xaai中- void WrileDat(void) JFILE ,fp; mt 1; fp fopn (out.dat。wwH); for(i * 0; i maxline; ii)printf (Fsn. xx(i); fprintf (fp# 7- xx(i);) fclose(fp);121314151617181920212223242526272829303132333435363738394041424344454647484950void main()( if(ReadDa
5、t()(管、一printf (数据文件 in.dat 不能打开! n007*1);return;encryptChar();WriteDat();)/从文件mdat中读取一ar英文文审,“入?抑市敷用H中/ int ReadDat(void)FILS wp;int i * 0;unsigned char *p;if (fp-fopcn(win.datrMrw) -NULL)return 1;while(fgets(xxil/ 80,fp) ! NULL)(p - strchr(xx(i)f#n);if(p) *p 0;:4maxline , 1;fclose (fp);return 0;I八把
6、站果XX 出总文件皿M中void WriteDat(void)( .:FILE efp;:- -int i;fp 口 fopen (wout .dat* Rw,r);for (i 0; i maxline;(printf(0%snwf xxi);fprintf(fpfwisnMr xx1);Jfclose(fp);33.已知数据文件in .dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编制一函数jsValue,其功能是:求出于位数 上的数加个位数上的数等于百位数上的数加十位数上的数的个数ent, 再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数
7、按从小到大的顺序进行排序。最后main函数调用写函数writeDat把数组b中的数输出到文件out.dat中。例如6712, 6+2 = 7+1.则该敝满足条件存入数组b中,且个数cnkcnt+L8129. 84!八2.则该数不濡足条件忽略.注意:部分源程序存在ULc文件中程序中己定义数组:a(300. b(300.已定义变量,cm请勿改动数据文件Hdat中的任何数据、主函数maiM)、读函数readDatO和写函数writcD叫)的内容.23456789101112include int a300), b300), cnt-0;void writeDat();void readDat();v
8、oid jsValue()1516171819202122232425int 1;readDat();jsValueO ;writeDat();printf(wcnt%dnnr ent);for(i 0; i ent;printf(Mb%d%dnMr 1, b(i);void readDat()FILE efp;int 1;fp fopen (in.daL. r);for(i 0; i 300; i,+) fscanf (fp FdJ. (i);262728293031fclose(fp);)void writeDat()IFILE fp; int 1;323334fp fopn(outdat
9、.s); fprlntf (fp/ 7dn. ent); for (i * 0; i ent; )35 ! fprintf(fp, M%dn* bll);36 ; fclose(fp);37 ! 34.程序test .c的功能是:计算100以内满足以下条件的所有整数i的个数ent以及这些i之和sum。条件:i, i+4, i+10都是素数,同时i+10 小于100o请考生编写函数countvalue实现程序要求,最后调用函数 wfiteDAT把结果ent和sum输出到文件out . dat中。(数值1不是素数)注4G部分源程序存放在tesu文件中请勿改动主京敏mam()和输出数据函数MQcDA
10、TO的内自.1 ! IlnclUde 也dude第句明各处序中心含中的标净入帆”故 Mob2 ( void wrlteDATt); 嫉依,rASDAT的哀明调句3 ; int cntr sum; ,/定又全躅跟更Itunu. 9g4 ! int isPrime (int number) Z/t4* laPrina(number) M* number *.i l否创逖问tg的他部于。for (1 2; tag,=o且ab . cd=10且两个数均是奇数, 同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到 小的顺序存入数组b中,并要计算满足上述条件的四位数的个数ent。 最后main
11、函数调用写函数writeDat把结果ent以及数组b中符合条件 的四位数输出到文件Out . dat中。注意1部分源程序存在 KC文件中.程序中已定义数SL 1(200. b(200.已定义变: oil请勿改动数据文件mdai中的任何数据.主函数读函数rcadDuO和汽函数writeD叫)的内容.1 ; tinclude 2 ;Idefine MAX 200 定义宏受It max.其值等于 2003 ! mt aMAXh bMAX. ent - 0;定义至同整RTt效娘非支cm,注初值等于0 4 ; void writeDat();5 ; void jsVal()::6: i -117 ! !
12、8 ! void readD&t O 从s.dat文件中it取200个四付存入Itfll 中9 ;1鳌 11 112 j FILE efp;13 ; fp fopenCln.dat11*14 ! for(1 0; i MAX;即 15 j 1 fdcanf (fpr Id*1/ &a(i);16 ; fclose(fp);17 j |18 i void mainO19 !(20 int i;212223242526272829303132333435363738readDat();jsValO; 用的敏实现总目要求的功他printf (”满足条件的败*dn”. ent);for(i 0; i
13、ent; 1+)printf(n%d ,b(i);printf (Xn*1);writeDat O; void writeDat O 纪it像结果cm以及数组b中籽合条件的四位数出到ouLdai文件中 (FILE p;int i;fp fopen (wout .dat1, w“);fprintf (fpr fdn, ent);for(i 0; i ent;fprintf(fprw%dnnr b(i):fclose(fp);36.已知数据文件in .dat中存有300个四位数,并已调用读函数rcadDat 把这些数存入数组a中,请编制一函数jsvalue,其功能是:求出千位数 上的数加百位数上的
14、数等于十位数上的数加个位数上的数的个数ent, 再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位 数按从大到小的顺序进行排序。最后main函数调用写函数writeDat把 数组b中的数输出到文件out . dat中。222324252627网蛇7153, 7T T+3,副读数满足釜件存入数组人中,旦个数si8129. 87 324,则该数不满足条件忽略.、*注意b部分源程序存在tesu文件中.程序中已定义数组300, b300.已定义受垢cm鬻吃件:黑:T何数据、,六4读函数百刖所插数54to的内乱2 ! int a300)t b3009 cnt0;3 ;voidreadDat(
15、);4 ;voidwriteDat();5 !jsValueO6j|17 !8910111213141516171819 20 21 imain Oy(.int i;readDat();jsValue();writeDat();Pintf(cnt=$dn,ent);for(i - 0; 1 ent; 1,)printf (wb(idH%dnM, i,),Fvoid readDat()FILE efp;int 1;fP fopenLln.daLU for(i - 0; i 300; “)fscanf(fPf FdJ, tafij);fclose(fp);void writeDat()29 ;(3
16、0 ;31 ;32 i33 ;34 J35 ;36 J37 : FILE fp; int i; fP * fopen(wout Hw); fprintf (fp, 7dM, ent); for(i * 0; i ent; 1+) fprintf (fp, 7drr, b(i);fclose(fp);37.在文件in . dat中已存有200个正整数,且每个数均在0oo至9999 之间。函数readDat是读取这200个数存放到数组aa中。请编制函数jsSort,其函数的功能是:要求按每个数的后三位的大小进行降序排列, 如果出现后三位相等的数值,则对这些数值按原始4位数据进行升序排 列,将排序后
17、的前10个数存入数组bb中。最后调用函数writeDat把结果bb输出到文件out . dat中。例:处理前 9012 5099 6012 7025 808处理后 5099 8088 7025 6012 9012注意:部分源程序存在g.c文件中请勿改动数据文件in.dai中的任何数据、立内敛main().读函数rcadDa【。和写函散writeDatQ的内容.1 tinclude 2 ;1include 3 ! void readDat();4 ; void writeDat();5 ; int aa(200h bb10);:6 void jsSort()10 ; void main()llJ
18、 ( i 12 readDat();13 ; jsSort();14 writeDat();15 ;16 ! void readDat()17 i i.18 FILE in;19 ! int 4;20 I In fopen(win.datw921 - for (1 0; i 200;22 ! fscanf(in td.,23 ; fclose(in);2 j k 1 25 void writeDat O26 j (27 ; FILE eout;28 j int i:29; out - f open (Mout dat* r w);30 ! for(i 0; i 876594321注意:部分源程
19、序存在teste文件中.请勿改动数据文件in.dat中的任何数据.主函数main()w读函数readDM()和写函数wriwDaU)的内容.1 i “nclude 2 finclude 3 : char xx2080;4567B9void readDat();10void main()11121314readDat();jsSort ();writeDat();15 ; Ij /从支件inxht中遣取20行数据存放到字符事故机xx中/16 ; void readDat()1718192021222324252627282930FILE ein;int i 0;char *p;in = fope
20、n(Min.datHr ;while (i 20 “ fgets (xx(i9 80, in) ! NULL) (p - strchr(xx|ir *n*);if (p) *p * 0;) fclose(in);) “纪始最XX 出到文件out&rt中/void writeDat()3132333435363738394041FILE *ut;int 1;out fopen (toutadatw/ owM); for(i - 0; i 20; ii) (printf(w%snw/ xx1);fprintf(outr w%snR xxiJ); )fclose(out);39.函数ReadDat实
21、现从文件in . dat中读取一篇英文文章存入到无符 号字符串数组XX中;请编制函数ChA,其函数的功能是:以行为单位 把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到 第一个新的值,存入数组单元xxi0中(其中:i是文章中的某行)。第void writeDat O; void jsSort ()D.码不是一个元组赖以存在的条件5 .在分时系统中,若给定时间片一定,若(),响应时间越短。A.内存越大B.用户数越多C.内存越小D.用户数越少6 .9 .数据库管理系统通常提供授权功能来控制不同用户访问数据的权 限,这主要是为了实现数据库的()A.可靠性B.一致性C.完整性D.安
22、全性7 .下列问题是基于下列描述:散列表的地址区间为。17,散列函数为H(K户Kmod 17采用线性探测法处理冲突,并将关键字序列26、25、72、38、8、18、59依次存储到散列表中。元素59存放在散列表中的地址是()。 8 .文件的逻辑记录的大小 oA.是恒定的B.随使用要求变化C.可随意改变的D.无法确定是哪种可9 .对于下面的两张表,从表一到表二的分析过程称为二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的值,存 入数组单元xxil中。以此类推一直处理到最后第二个字符,最后一个 字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的值,存 放在原字符串对应的
23、位置上,之后把已处理的字符串逆转后仍按行重新 存入无符号字符串数组XX中。最后main函数调用函数WriteDat把结 果XX输出到out . dat文件中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符 号和空格,并也按它的ASCII值作以上处理。注意:部分源程序存放在 test . c文件中。请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat 的内容。1 ;Hnclude 2 include 3 ; unsigned char xx(50(80;4 ! int maxline 0; /文的的息行数 / I5 ; int ReadDat(void)
24、;6 ! void WriteDat(void);7 ; void ChA(void)R 8 J L9 Il j void main(13141516171819202122232425262728293031323334353637383940414243444546474849if(ReadDat() (printf L数据文件fn.dat不能打开! n007w) j return;ChAO;WriteDat ();/从文件in,da!中逾取一管英文文存入*无神号字符申畋饱xx中叶 int ReadDat(void)(IFILE int i 0; char *p;if (p-fopen (
25、win.datHrMrw) -NULL) return 1;while(fgets(xx(1)9 80 fp) !* NULL)lhp strchr(xx(l91n*); if(p),p w 0;) maxline i; fclose(fp); return 0;)/把结果XX,出到ouLda:文件中/ void WriteDat(void) ( ,FILE *fp/ int i;fp fopenrout.dat. w“); for(i 0; i . maxline; 1+) (printf(w%3nn/ xx(i);fprXntf (fp, Fsn, xxi1);) fclose(fp);4
26、0.设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开 始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个 人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现 要求按出圈次序,每10人一组,给出这n个人的顺序表。请考生编写 函数Josegh(void)实现此功能,并调用函数writeDat,把结果P输出到文件 out . dat 中。设 n=100, s=l, m=10。将1到n个人的序号存入一维数组P中;若第i个人报数后出圈,则将pi置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置;重复第步直至圈中只剩下pl为止。注意:部分源程序
27、已经给出。请勿改动主函数main和输出数据函数writeDAT的内容。234S6include ide fine N 100: define S 1*define M 10 int p(1009n, 3. m; void WriteDat(void); void Josegh(void)910111213void main() (m = M;14 1516,7 r1819 20 2122 23242S2627n N:s S;Josegh();WriteDat O;)“把结果p 出到文件outdm中/void WriteDat(void)(: int 1;FILE,fp fopen(Rout.d
28、atwrRww);/以地修的方K,以10个数据为一ifl把IHBpm出刊舞幕和文件。utdm中/ for (i-N-1; i-0; i-)printf(R%4d *,fprintf (fpr 74d”, p(l);2829303132333435if (i410 0) 知果1使偿10 除.射出一个回东快行将( . printf (Vn*);fprintf(fp# nw);Jfclose(fp);五、设计与应用题(2题)41 .设某连锁商店数据库中有关系模式R:R (商店编号,商品编号,库 存数量,部门编号,负责人)如果规定:每个商店的每种商品只在一个 部门销售,每个商店的每个部门只有一个负责人
29、,每个商店的每种商品 只有一个库存数量。(10分)(1)请根据上述规定,写出关系模式R的 函数依赖集;(2)请给出关系模式R的候选码;(3)请说明关系模式R 属于第几范式,并给出理由;(4)请将R分解成满足3NF的关系模式。42 .某网上商城因为业务发展,原有的系统不能很好的满足需要,因此采 用了一套新的经营管理系统,此系统使用SQL Server 2008数据库管理 系统。此系统上线运行前,需将商场原有的数据导入到新系统中。原有 系统使用SQL Server 2000,数据结构与新系统不完全一致。因此需要把 数据从SQL Server 2000导入到SQL Server 2008中,为了保证
30、数据一 致性,数据导入过程中要求暂停业务且必须在3小时内完成。(1)在原 有数据导入新系统的过程中,实施人员发现原有数据量很大,导人数据 需要四小时,业务无法接受。经分析某工程师认为,数据导入过程中的 数据库I/O很高,但导人数据的程序本身对系统资源占用率很低。该工 程师建议将数据导入过程中的数据恢复模式从“完整”模式改为“简单” 模式以提高数据导人速度;而另一位工程师则认为此方法未必能提高数 据导入速度,而且还可能导致数据丢失,不建议使用此方法。请分析此 方法是否能够提高数据导入速度并给出理由,同时分析此操作的数据丢 失风险。(5分)(2)在成功导入历史数据后,此系统顺利上线运行。在 上线运
31、行的第一周,发现数据库服务器的CPU使用率很高,达到近90%, 高峰期间达到100%,且系统内存占用率达到90%,但系统I/O很轻。 业务人员反应系统操作速度很慢。为了提高系统运行速度。在不修改应 用程序的前提下,两位工程师提出了不同的解决办法:口 .为服务器增 加2颗CPU,缓解CPU使用率很高的问题;口 .为服务器增加一倍内 存,缓解内存使用率很高的问题。考虑成本,现阶段只能按照一种方案 实施。请指出在现有情况下,哪种方案更合理并给出理由。(5分)六、单选题口分(2题)43 .类图技术是面向对象方法的核心技术。下列所示的UML类图中, 描述正确的是()。 A.汽车弓I-I轮船B.汽车轮胎汽
32、车口 D.汽车轮胎44.某数据库应用系统中,数据库管理员发现某个查询功能是用多表连接 操作实现的,此操作性能较差。在保证功能不变的前提下,若要提高该 查询的执行效率,下列方法中可行的是()A.将此查询语句放置在视图中,使用视图实现该查询操作B.修改实现此功能的查询语句,将连接查询改为嵌套查询C.将此功能涉及到的表进行合并,然后对合并后的表进行查询D.将此查询语句放置在存储过程中,通过调用存储过程实现该查询操作参考答案LD解析:根据题目给定的前序序列和后序序列。满足条件的二叉树有 多个,所以该二叉树结点的对称序序列不能确定。2 .D解析:数据库的数据项之间和记录之间都存在联系。3 .A解析:SQ
33、L用DROP INDEX语句删除索引,该语句的一般格式如 下:DROP INDEX索引名例如,执行下面3个语句将删除3个索引:DROP INDEX XSNODROP INDEX XCNODROP INDEX XSC删除索弓I时,系统会同时从数据字典中删去有关这些索弓I的描述。4 .A解析:码是一个元组区别于其它元组的依据,同时也是一个元组赖 以存在的条件。在一个关系中,不可能存在两个不同的元组在码属性上 取值相同,也不可能存在码或码的一部分为空值的元组。5 .D解析:响应时间是指用户从提出请求到任务完成的时间,用户数越 少,每个用户在单位时间内得到处理的次数更多,完成任务的时间就更 提前,响应
34、时间也就越短。6 .D解析:在计算机的安全性控制中,包括用户标识和鉴别、DBMS存 取控制、操作系统安全保护及数据密码存储。对于数据库的安全性主要 是DBMS的存取控制机制,这样可以确保只授权给有资格的用户访问 数据库的权限,同时令未被授权的人员无法接近数据。7 .D解析:各元素的散列地址分别为9, 8, 4, 4, 8, 1, 8O在存放8这 个元素时,由于这个存储位置已存放了 25,根据处理冲突的方法线性探测法,需后退一个位置到9,但9这个位置也已存放了 26这个元素,所以还需移至10, 10这个位置是空的,所以8就存放在10。对59.它的散列地址为8,需按上述方法依次经过8, 9, 10
35、,最后到达11。8.B9 .D解析:根据转轴的定义:改变一个报告或页面显示的维的方向,将一个三维立方体转变成一系列的二维平面等。题目中的年度维与季度维 进行转轴,改变了维的方向。10 .A解析:归并排序要求待排序文件已经部分排序,而其他的排序方法 对排序文件的初始状态不做要求。H.IP【解析】IP作为一种互联协议,运行于互联层,屏蔽各个物理网络 细节和差异。12 .吞吐量对网络、设备、端口、虚电路或其他设施,单位时间内成功地 传送数据的数量13 .跳数解析向量一距离(V-D)路由选择算法,也称为Bellman-Ford 算法。其基本思想是路由器周期性地向其相邻路由器广播自己知道的路 由信息,用
36、于通知相邻路由器自己可以到达的网络以及到达该网络的距 离(通常用“跳数”表示),相邻路由器可以根据收到的路由器修改和刷新 自己的路由表。14 .简单邮件传输协议或SMTP简单邮件传输协议或SMTP解析:在电 子邮件程序向邮件服务器发送邮件时,使用的是简单邮件传输协议 (SMTP);而在电子邮件程序从邮件服务器读取邮件时,可以使用邮局协 议(POP3)或交互式邮件存取协议(IMAP),它取决于邮件服务器支持的协 议类型。15 .检索器【解析】搜索引擎在外观、功能等方面都不相同,但其构成 一般包括搜索器、索弓I器、检索器和用户接口 4个部分。16 .数据库设计数据库技术的研究领域包括数据库管理系统
37、软件的研制, 数据库设计和数据库的理论。17 .PCB或进程控制块PCB或进程控制块 18.1419.0 (1) 一个算法花费的时间与算法中语句的执行次数成正比例,哪个 算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数 称为语句频度或时间频度。当一个算法的时间复杂性与问题的规模n无 关时,则表示为0 (1)20 .城域网【解析】城域网是介于广域网和局域网之接的一种高速网络。 城域网的设计目标是满足几十千米范围内的大量企业、机关、公司的多 个局域网的互联需求,以实现大量用户之间的数据、语音、图形与视频 等多种信息传输。21 .C解析顺序文件通常只能按记录的顺序存取,对这种文件进行更
38、新, 原则上需对文件做整体拷贝。链接结构的文件可以将文件分散存放于若 干不连续的物理块中,每个物理块中设一指针,指向下一块。索引结构 的文件也可以将文件分散存放于若干不连续的物理块中,系统为每个文 件建立一张索引表。22 .C解析:对具有相同关键字的关系模式,如果他们的处理主要是查询 操作,且常在一起,可将这列关系模式进行合并。掌握关系数据库的逻 辑结构设计过程,如何正确运用模式评价、优化模式、分解。23.B24.D25.B26.C27.B28.AIP提供了不可靠的数据投递服务,IP本身没有能力证实发送的报 文是否被正确接收,数据报可能路延迟、路由错误、数据报分片和重组 等过程中受到损坏,但I
39、P不检测这些错误,在错误发生时,IP也没有 可靠的机制来通知发送方或接收方,因此数据报的投递不能受到保障。 29.B解析:允许删除基本表中的元组的权限是DELETE。30 .C解析:把概念设计阶段设计好的基本E-R图转换为与选用的具体 机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式 和外模式)。这些模式在功能上、完整性和一致性约束及数据库的可扩充 性等方面均应满足用户的各种要求。31 .n审题关键句】字符替代f(p尸p*llmod256,小于等于32或对应小 写字母不变,否则替换。n【解题思路】n本题类似第65套试题,通过审题可以发现主要是排序条件的设置要 求有所不同,参考答案的第6行,修改if条件语句的设置即可。n【参考答案】n n32 .n审题关键句】字符替代f(p尸p