《2023年湖南省长沙市全国计算机等级考试数据库技术模拟考试(含答案).docx》由会员分享,可在线阅读,更多相关《2023年湖南省长沙市全国计算机等级考试数据库技术模拟考试(含答案).docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年湖南省长沙市全国计算机等级考试数据库技术模拟考试(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .若有关系模式R(A, B, C),下列叙述中正确的是()。A.仅口 B.口和口 C.仅口 D.口和口2 .在信号量及P、V操作中,每对信号量执行一次P操作,意味着要求A.使用一个资源B.分配一个资源C.释放一个资源D.共享一个资源3 .批处理操作系统中,下列哪一项是作业运行过程中反映作业的运行情况,并且是作业存在的惟一标志A.作业状态B.作业类型C.作业控制块D.作业优先级4 .下列不属于物理设计的内容是A.存储记录的格式设计B.存储方法设计C.优化模式D.存取方法5 .需
2、求分析时,除数据流图外,对数据分析的结果还有一些其他表格来进行描述和补充,它们主要包括()。口、数据元素表口、事务处理表口、预期变化的影响口、响应时间要求2021222324252627282930313233343536373839404142434445464748piintf 数据文件in.dat不能打开! 00八n”); return;I-CalValue();printf (,文件 in.dat 中共有正整数,!个totNum); printf (”符合条件的正整数的个数Nd个n”. totCnt);printf (平均值2JLfn, totPJz);WtiteDat (); ; f
3、printf (fp/ %dntdn*.21fn. totNumr totCnt, totPjz); fclose(fp);33.已知在文件in .dat中存有100个产品销售记录,每个产品销售记录 由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整 型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价*数 量。函数ReadDat读取这100个销售记录并存入结构数组sell中。请编 制函数SortDat,其功能要求:按产品代码从小到大进行排列,若产品代 码相同,则按金额从小大进行排列,最终排列结果仍存入结构数组sell 中o最后main函数调用函数Wri
4、teDat把结果输出到文件out . dat中。 提示:若中间变量为PRO temp,则可以直接使用结构赋值语句进行解题;产品代码比较请用函数strcmp进行解题。例如:selli=temp ; 注意:部分源程序存放在test, c文件中。请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。linclude include tinclude tdefine MAX 100 typedef structI1char din(5; /产乩代码/ char me(11 ; /产品名琳/ int dj;/年价/int 31;/long je;/金/)PRO;.PRO dell
5、MAX;1void ReadDat();145678910111213141516171819void WriteDat (); void SortDat()20menisct (ed.ReadDat 0;SortDat O: WritoDat(I;slzeof(sell);272829303132333435363738394041424344voidWriteDat O46495051525354FT f p f r 14Ea IP,int 1;fp fopen(Routdatv HwH I ;for(i 0: 1 100; i”) (fprlntf (fp. %s Md QSd 1101
6、dnHr sei 111Jjo);selldl .me, sell |i | .d7, sellli .si5556tcloao(fp);100个箱角记采片存入ttl构数etdl中/void ReadDat() (FILE fp;char str(80ch int 1;fp - fopen(Hin.dat*, for(i 0; 1 100; 1*4) (fgets(strf 80. tp);memcpy(sell(i | .dm, 9trf 4” merocpy(sell(l.me# str 4. memepy(uh.str*14,4);ch40; sell1.dj - atoi (ch);m
7、etnepy (chr str* 18r S);ch 50; sell 1 .al - -:atoi (ch);je (long)sellfi.d(close(fp):)/杷嬉山到文fTgt&t中/34.函数ReadDat实现从文件in .dat中读取一篇英文文章,存入到字符 串数组XX中;请编制函数encryptChar,按给定的替代关系对数组XX 中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数 WriteDat把结果XX输出到文件out . dat中。替代关系:f(p)=p* 11 mod 256, mod为取余运算,P是数组XX中某一 个字符的ASCII值,f(p)是计算
8、后的无符号整型值(注意:中间变量定义 成整型变量),如果原字符的ASCII值是偶数或计算后f(p)值小于等于 32,则该字符不变,否则用f(p)替代所对应的字符。注意:部分源程序存放在test .c文件中,原始数据文件存放的格式是: 每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系 进行处理。请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。1 tinclude 2 ; tinclude 3 ! Iinclude 4 ; unsigned char xx50!180);5 int maxline 0;卜文拿的总疗数76 : int ReadDat(vo
9、id);7 ; void WriteDat(void);8 ! void encryptChar()34567891011121314151617181920212223242526272829303132333435363738394041424344454647484950请勿改动主的敷读函数RcadDat()和,出的数WriteDatO的内格includelincludetinclude unsigned char xx(50(80);int maxline - 0;卜文章的总行数7 int ReadDat(void);void WriteDat(void);void encryptCh
10、ar();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)p -
11、 0;I maxline i; fclose(fp); return 0;1) ;七姑累人出国文件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);12 ;void main()13 ;(:14 ; if(ReadDat()15 rj (. 716 ;printf (数据文件 in.d3t 不能打开! n007,1);17 ; return;18 !);
12、.19 i encryptChax ();20 ; WriteDat ();?21 !);/从文科in dM中请取一英文文lb存入K字朴中故招u中22j int ReadDat(void)23 j 124 ; FILE wp:.25 ! int i * 0;26 unsigned char *p;27 ; if (fp*fopen(win.dat*rwrH)NULL)28 return 1;29 ; whileifgetsCxxHLSO, fp) !- NULL)30 ! ( I31 j p strchr(xxi9 n,);32 if(p) *p * 0;33 J34 p ; J35 ! ma
13、xline , i;36 fclose(fp);37 - return 0;38 j ) /。尼站,果XX出义文件OUL&U中/39 - void WrlteDat(void)401 匕: :;41 ; FILE fpn-42 ! int i;43 ; fp fopen(wout.datMfRwM);44 for(i 0; i maxline; )45 (46 | printfxx i);47 ; fprintf(fp,xx1);48 j 49 .! fclose(fp);50 | )35.函数ReadDat实现从文件in .dat中读取一篇英文文章,存入到无符 号字符串数组XX中,请编制函数
14、encryptChar,按给定的替代关系对数 组)XX中的所有字符进行替代,其替代值仍存入数组XX的对应的位置 上,最后调用函数writeDat把结果xx输出到文件out . dat中。替代关系:尸p* 17mod256, mod为取余运算,p是数组)xx中某一个字 符的ASCII值,f(p)是计算后的无符号整型值C主意:中间变量定义成整 型变量),如果计算后f(p)值小于等于32或f(p)是奇数时,则该字符不 变,否则用f(P)替代所对应的字符。注意,部分源用序存放在test.c文件中,收的数据文科存放的格式般,m行的宽度均小于80个字符,含标点符号网? 格.井也按此修代关系进行处理.请勿改
15、动主的数读函数RedD0和出话敷WnteDR)的内咨Jinclude (include Include 4567 e910unsigned char xx5080;int maxlino 0; /文的总行敏/ int ReadDat(void);void WritoDat(void);void encryptChar()(unsigned Int val:1112131415161718192021222324252627282930313233343536373839404142434445464748495051void mam () (if(ReadDat()( 一 . , .print
16、f数据文件in.dat不能打开! n007”); return;g encryptChar ();WriteDat 0;)/从文件IfLdBt中谑取一英文文章存入到无符号?符申数如M中/ int ReadDat(void) (FILE fp:; int i - 0; unsigned char p; if (fp-fopen (in.daL, )-NULL) return 1;while(fgets(xxi,80# fp) !- NULL) (p strehr(xxiffn*); if(p) #p 0;J maxline - 1; fclose(fp); return 0;/把站果xx m出到
17、文件outdal中/ void WriteDat(void) (FILE 育fp; int i;fp fopen(out.datRwH); for(1 - 0; i maxline; : printf(wlsnR/ xx(i);fprintf(fprxx(i);J fclose(fp);36.已知数据文件in .dat中存有200个四位数,并已调用读函数readDat把这些数存入数组a中,请考生编制一函数jsVal,其功能是:从数组a中依次取出一个四位数,对每一个四位数作如下处理:把个位数字和千位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位 数的个位数字,新数的个位数字是原四位
18、数的千位数字),以及把百位数 字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原 四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个 新组成数:一个是奇数,另一个为偶数,并且至少有一个数能被17整 除,同时两个新数的十位数字均不为零,则将满足此条件的四位数存入 数组b中,并计算满足上述条件的四位数的个数ent,而后对数组b进 行降序排序。最后main函数调用写函数writeDat把结果ent以及数组b 中符合条件的四位数输出到out . dat文件中。例如:一个四位数为4512,依题意组成的第一个新数为24,第二个新 数为51,其中51能被17整除,这两个新数的十位数
19、字不为零,则4512 这个四位数满足题意所规定条件。注感】部分源程序存在teste文件中程序中已定义数组:乱200. b2001.已定义变量:ent请勿改动数据文件in.ctol中的任何数据主函数读曲数rcadDal()和n函数wrilcDat()的内容.1 ! lincludc K 2* de fine MAX :2003 ; int alMAX, b(MAX, ent , 0;4 ! void writeDat();5 t void jsVal()k 6 i(7 ii 8 1 :9 ! void readDat () Z/M in.dat文件中请取200个四位般存入敷用a中10 ;(11
20、;int 1;12 ! FILE wfp;,I13 i fp - fopen(nin.datw, wrM):14 for(i - 0; i MAX;0,15 I fscanf (fp 7dL (11);6 ; fclose(fp);I18 i void main ()邛19输20 ;21 ;22 ;;24 25 ;26 !27 i28 ;29 !30 ;31 32 i33 134 !35 ; . w i36 |int 1;readDat();jsVal o; ,用杀败jsVal () ,实观目要求的功施 printf (潸足条件的数R、dn. ent);for (i - 0; i printf
21、(R%d R9 b(i);printf;writeDat();void writeDat () 把计算结蹙cm H及被fii b中料合条件的四位163出到皿5文件中FILE #fp;int i;fp fopen(wout.datn, Wwn) fprintf (fpr r drT3 ent);for(i 0; i ;38 ; 137.已知数据文件in .dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把一个四 位数的个位数位置上的值减去千位数位置上的值再减去百位数位置上 的值最后减去十位数位置上的值,如果得出的值大于等于零且
22、原四位数 是偶数,则统计出满足此条件的个数ent,并把这些四位数按从小到大 的顺序存入数组b中,最后调用写函数writeDat把结果ent以及数组b 中符合条件的四位数输出到Out . dat文件中。注意:郴分源理序存在teste文件中程序中已定义数组b a(200). b(200,已定义变量ent请勿改动数据文件n&x中的任何数据.主函数mainO,该函数rcadDatQ和写函数writeDatO的内容1 ! Ilncludo 2 ;Ideflne MAX 200口、完整性及一致性要求A.口、口、口和DB.口、口、口和口(3.口、口、口和DD.全部6 .下列条目中哪些是IBM商务智能解决方案
23、的组成部分? . OLTP业务系统 .前台分析工具 .数据仓库管理器 ,多维服务器A.口、 口和DB.口、 口、和1C.口、 口和DD.口、 口和口7 .下列叙述正确的是A.二叉树是树的特殊情况8 .二叉树的结点的子树区分左子树和右子树C.如果一棵二叉树最多只有最下面的两层结点度数可以小于2,称之为 完全二叉树D.树和二叉树之间不能相互转换在SQL的SELEC暗句中,实现投影操作的是()子句。A) FROMB) SELECT8 . C) WHERED) ORDER BY9 .下列有关树的概念错误的是A.一棵树中只有一个无前驱的结点B.一棵树的度为树中各个结点的度数之和3 ; int a(MAX
24、bMAXJ. ent4567891011121314void writeDat(); void jsVal()void readDat( (xnt i;FILE fp;fp fopen(win.datR# r, ford - 0; i MAX;15161718192021222324252627fscanf(fp/ 7d”, 6ai) fclose(fp);void main()xnt i;readDat();jsVal();printf (”满足条件的敷edn,cnfor(i 0; i ent;printf(n%d b(i):printf ;writeDat();282930void wri
25、teDat()3132333435363738FILE efp; int i; fp - fopen(Rout; fprintf(fp#ent);for i 0; i 0.则读数满足条件存入数组b中.且个数cnKcntl.8129.18.120.则谖数不满足条件忽略.注意:部分源程序存在teste文件中.程序中已定义数组,300. b300b已定义受It: cni请勿改动数据文件in.dat中的任何数据、主函数main。、读话数readDaU)和写函数wriUrDai。的内容.cnt0;j *include ;int a300, b300h! void readDat(); ij void w
26、riteDat();void jsValue()! main()11 :12 13114 !15 :16 17 !int i;readDat();jsValueO ;writeDat();printf(wcnt-ldnR# ent);for(i * 0; d ent;pentf (b(*dj,bdn”,1.b(i);18 ; 19 ! void readDat ()20 t:;(21 ; FILE *fp;22 j int 1; 23 ; fp = fopen (in.daL, ”);24 ! for(i 0; i 300; i+)25 ; fscanf (p, ”,d/,(1);26 | f
27、close(fp);21 5)28 ; void writeDat()29 .30 FILE *fp; t31 i int i;32 ! fp fopen(Hout.dat , RwM);33 ! fprlntf(fptH%dnwr cnt);34 ; for (1 1 0; i ent; 35: fprlntf (fp, fdrT. bi);36 fclose(fp);3” I39.函数ReadDat实现从文件in . dat中读取一篇英文文章存入到字符串 数组XX中;请编制函数SortCharD,其函数的功能是:以行为单位对 字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新
28、存入字符串数组XX中。最后main函数调用函数WriteDat把结果XX输 出到文件out.dat中。例:原文:dAe, BfC .CCbbAA结果:fedCBA bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序存放在test . C文件中。请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat的内容。3456include stdioinclude string.h char xx50(80);unsigned int maxline 0; /文章的总行Ift ,/ int ReadDat(void);voidvoi
29、dWriteDat(void);SortCharD(void)101112131415voidmain Oif(ReadDat()printf (”敢据文件in.dat不能打开! n007-); return;17181920SortCharDO;WriteDat ();/*从文件mdm中读取一英文文拿存入皆字制申数1 w中/ int ReadDat(void)FILE *fp0;2425 ! char *p;26 i if (fpmfopenCin.dat*, wr) )-NULL)27 ; return 1; 如更文件 in.dAt 内容为!2. 9H6& 1“当从文件in.dat中读取7
30、9个字符存入xx【L】没物镣识发生时,执行1环体中的潜旬,28 ;while(fgets(xxi#80F fp) !- NULL)303132333435p strchr (xxfi) n*); 在字符小xxi)中鱼找回车接灯符第一个151K的位 if (p) *p 0; 如果p的债不为零,IWC箕值没H为。行变量加1Imaxline 1; 把文章的行敏M蛉受 naxllnefclose(fp);36 ( return 0;37 i |i,尤姑果XX输出到文件51tdm中/38 void WriteDat(void)404142434546474849FILE fp;unsigned int
31、i;fp fopenLout.dat. R for (1 * 0; i maxline;fclose(fp);printf(M%snw, xx(1); fprintf(fpf Risnnt xx40.编写一个函数findStr(char*str, char*substr),该函数统计一个长度为 2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数 值返回。例如,假定输入的字符串为”asd asasdfg asd as zx67 asdmklo, 子字符串为“as,函数返回值是6。函数ReadWrite实现从文件in dat中读取两个字符串,并调用函数flndStr, 最后把
32、结果输出到文件out . dat中。注意:部分源程序存在test . c文件中。请勿改动主函数main和其他函 数中的任何内容,仅在函数findStr的花括号中 填入你编写的若干语句。12345678910111213141516171819202122232425262728293031323334353637383940414243*include *include void ReadWrite();int findStr(char stCfchar substr)t中It取两个字符中.并调用函敬findStrO. 后IE结果幅出到文件ouL&u中/void ReadWrite ()cha
33、r str(81)r substr(3r ch;int n, len, i 0;FILE rfr ewf;rf - fopenLtn.cUL, wrH);wf - fopen(Hout.datwr D;whiled 5) .fgets (str, B0, rf); 从文件in dm中&取长度为79的字符中存入到字符中atif gets (substr, 10, rf); 从文件ndn中彻ktOt为Q的子字符申存入到字符加此str len st rlen (substr) 1; IE f 字符小 gubstr 的长度城】的值iWftch - substr (lenI;把子字符中的量Jfif 字符
34、的字符ch,如果孑字符申的后一个字栉是同车投行符或是文件纳贩舒.1ME予字符明的最后一个字符的值设置为。, if(ch m I I ch Oxla)aubstrlen 0;/自用的数flndStrUtrf subatr)返回子字讨印substr花字将率门中出现的次数/nfindStr(strr substr);fprintf (wf f Fdn. n); 纪计Uttl累n写入到文件outd4匕中ii; 6环支,加】Ifclose(rf);fclose(wf);41.已知某教务管理系统的设计人员在需求分析阶段收集到下列原始数据表格:教师教师号教师名职称工资上级领导教师号9868王文华教授8000
35、null9983李一斌副教授600098689985丁一讲师删98680783王润泽讲师删98680899欧阳丹妮讲师删9868课程课程号课程名学分教材号教材名出版社名任课教师号C2006计算机原理311计算机原理清华大学出版社9868C2006计算机原理312计算机原理与应用高等教育出版社9868C2004数据结构313数据结构清华大学出版社9868C2010数据库原理314数据库原理清华大学出版社9868C2010数据库原理315数据库原理与技术高等教育出版社9868S3001音乐欣赏216音乐欣赏清华大学出版社9983已知该业务系统存在如下规则: .每个教师有唯一的教师号,每个教师号对应
36、唯一的一名教师; .每门课程有唯一的课程号,每个课程号对应唯一的一门课程; .每本教材有唯一的教材号,每个教材号对应唯一的一本教材; .每个教师最多只有一个上级领导,也可以没有上级领导;V. 一门课程仅由一名教师讲授;. 一本教材仅用于一门课程。(12分)(1)请根据原始数据表及业务规则,给出该系统的关系模式,保证每个 关系模式满足3NF,并说明每个关系模式的主码和外码。(2)画出该系统的ER图,ER图中需给出每个实体集的属性,主码属性 用下划线标识。42 .设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品 号,销售时间,销售数量,销售单价)。其中,商品号代表一类商品,商 品号、单
37、价、销售数量和销售单价均为整型。请编写查询某年某商品的 销售总毛利的存储过程,毛利二销售数量x (销售单价一单价)。要求商 品号和年份为输入参数,总毛利用输出参数返回。(10分)六、单选题口分(2题)43 .类图技术是面向对象方法的核心技术。下列所示的UML类图中,描述正确的是()。汽车引擎轮胎C.汽车轮胎D.44 .下列哪些属性不适合建立索引()。A.经常出现在GROUP BY字句中的属性B.经常参与连接操作的属性C.经常出现在WHERE字句中的属性D.经常需要进行更新操作的属性参考答案LB解析:根据函数多值依赖的概念可知I和的描述是正确的,而和 IV依赖关系不一定成立。2.B解析:P操作和
38、V操作都是原语。每执行一次P操作,意味着要求 分配一个资源;每执行一次V操作意味着释放一个资源。因此本题正确 答案为B。3 .C解析:本题考核操作系统有关作业管理的基本概念和知识,参考 333”批处理方式下的作业管理”一节。在操作系统的作业管理中,既要 反映作业的运行情况,并且又是作业存在的惟一标志的是作业控制块。 这是因为作业控制块中保存了对作业进行管理控制所必须的信息。作业 控制块在作业运行中始终存在,并且不断变化。只有作业完成或作业退 出系统时,才清除该作业控制块。所以,本题的答案是C。4 .C解析:物理设计的内容包括:存储记录的格式设计、存储方法设计、 存取方法。掌握数据库物理结构设计
39、的过程,如何解决系统开销问题。5 .D解析:在需求分析中,通过自顶向下、逐步分解的方法分析系统。 分析的结果用软件工程中介绍的数据流图DFD进行图形化的描述。此 外,还采用一些规范表格对数据分析的结果描述做补充描述。一般有数 据清单(数据元素表)、业务活动清单(事务处理表)、完整性及一致性要求、 响应时间要求、预期变化的影响等。它们是数据字典的雏形。6 .D解析:IBM商务智能解决方案的组成部分有:数据仓库,用于抽 取、整合、分布、存储有用的信息。多维分析模型,全方位了解现状. 前台分析工具,提供简单易用的图形化界面给管理人员。OLTP业务系 统不是IBM商务智能解决方案的组成部分,因此本题的答案为D。7.B解析:二叉树不是树的特殊情况。二叉树的结点的子树区分左子树 和右子树。如果一棵二叉树最多只有最下面的两层结点度数可以小于2, 并且最下面一层的结点都集中在该层最左边的若干位置上,称之为完全 二叉树。树和二叉树之间可以相互转换。掌握树的二叉树表示方法,以 及树和二叉树的主要区别。8.B9.B解析:一棵树的度是树中各结点的度的最大值,而不是各结点的度 的和。10 .D11 .独立独立12 .ALTERTABLEALTER