(2021年)安徽省蚌埠市全国计算机等级考试数据库技术模拟考试(含答案).docx
(2021年)安徽省蚌埠市全国计算机等级 考试数据库技术模拟考试(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1.新奥尔良方法将数据库设计分为4个阶段,它们是oA.系统规划阶段、分析设计阶段、实施阶段、运行维护阶段B.需求分析阶段、设计阶段、实施阶段、运行阶段C.系统规划阶段、概念设计阶段、详细设计阶段、实施阶段D.需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段2 .在下列列出的几种语言中,关系数据库的标准语言是A.C B.JAVA C.PASCAL D.SQL3 .下面所列的工具中,不能用于数据库应用系统界面开发的工具是OA.Visual Basic B.Delphi C.Power Designer D.Power Builder4 .在Oracle产品中,用公用网关接口实现的过程化网关是A.Oracle WebListenerB.Oracle WebAgentC.Oracle WebserverD.Oracle DBA5.保持事务的原子性是数据库管理系统中哪一个部件的责任?A.事务管理B.存取管理C.性能管理D.安全管理字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a, 则改写成字母z,其他字符保持不变。把已处理的字符串仍按行重新存 入字符串数组xx中。最后main函数调用函数WriteDat把结果xx输出 到文件out . dat中。例:原文:Adb . Bcdzaabck . LLhj结果:Aca . Bbcyzzabj . LLgi原始数据文件存放的格式是: 每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序存放在test . c文件中。请勿改动主函数main、读函数ReadDatO和输出函数WriteDat的内容。1 - Iinclude <stdio.h>2 linclude <strinq.h>3 ; char xx50|(801;4567891011int maxline - 0; /文卡的总行数/int ReadDat(void);void WriteDat(void);/以行为0忙字符串中的所有小写字母浅耳或污字电的上f 学用.如景站字附加射自41字母却K他字符保并不受/ void ConvertCharD(void)1617181920212225262?28293031323334353637383940414243444546474849void main()(i£(ReadDat()(printf ("数据文件 in.dat 打开! n007"); return;IConvertCharD( >WriteDat();I/从文什Htdat中求以一册英文攵存入剁字符才Btt xx中int ReadDat(void)(FILE -fp;int 1 - 0;char *p;if (fp-fopen("in.&t",-r")-NULL)return 1;whlle(fget3(xxi,80« fp) !- NULL)(p - strcbr(xx1, ,n,);if(p) *p - 0;!;)maxline - 1;fclose(fp);return 0;)7.fEM果u 出*文件ouuta中/void WriteDat(void)(FILE #fp;int i;fp - fopen(wout.dat", "ww);for(1 - 0; i < maxllno;(printf("isn", xx(1);fprintf(fp, "%sn", xxi);)fclose(fp);34.已知在in . dat中存有若干个(个数200)四位数字的正整数,函数ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,其功能要求:1 .求出该文件中共有多少个正整数totNum ;2 .求出这些 正整数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的 这些正整数的算术平均值totPjzo最后maini函数调用函数WriteDat把 所求的结果输出到Out . dat文件中。注意:部分源程序存放在test . C文件中。请勿改动数据文件in .dat中的任何数据,主函数main、读函数ReadDat和输出数据函数WriteDat的内容。! include <stdio.h>I *define MAXNUM 200! int xxMAXNUM);456789i int totNum - 0; 文"In.dat中共科考少个正整数! int totCnt - 0; 符合条件的正整的个敢! double totPjz - 0.0; /"均值 Ii int ReadDat(void);! void WriteDat(void);;void CalValue(void)12 i )13 ; void main14151617181920212223242526272829303132333435363738394042434445464748int i;for(i - 0; i < MAXNUM; i+4) xx1 0;if (ReadDatO)(printf数据文件ln.dat不能打开! 00八M); return;JCalValue();printf ("文件in.dat中共有正赞数个n”. totNum);printf ("符合条件的正整数的个数r*d个n* totCnt);prlntf平均值totPjz);WriteDat();)/读取这苏f个正整效并存入数ftlXX中/int ReadDat(void)(FILE *fp;int i - 0;if(fp*fopen("in.dat","r")" NULL) return 1;while(feof (fp)(fscanf (fp, Fd, ", frxxi-*J);)fclose(£p);return 0;/计算姑票存入文件。ut.dat.中/void WriteDat(void)(FILE fp;fp - fopen("out.dat*,、”);fprintf(fp, "%dn%dn%.21fnw, totNum, totCnt, totPjz); fclose(fp);35.已知在文件in .dat中存有10。个产品销售记录,每个产品销售记录 由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整 型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价*数 量。函数ReadDat读取这100个销售记录并存入结构数组sell中。请编 制函数SortDat,其功能要求:按产品代码从小到大进行排列,若产品代 码相同,则按金额从小大进行排列,最终排列结果仍存入结构数组sell中。最后main函数调用函数WriteDat把结果输出到文件out . dat中。提示:若中间变量为PRO temp,则可以直接使用结构赋值语句进行解 题;产品代码比较请用函数strcmp进行解题。例如:selli=temp ; 注意:部分源程序存放在test . c文件中。请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。6789101112141516include <stdio.h> Include string.h> include <stdlib.h> define MAX 100 typedef struct (char dm(5; 八产乩代码/ char me(11 ; /,产品名黑,/ int djj/价/int si;/tt* /long je;/金/)PRO;PRO sellMAX; void ReadDat(); void WriteDat <);void SortDat()17 ; (18 ;19 ; 20void malnO2122 ; memset(aoll*23 ' PeadDat()islzeof(sell);24 Sort Dat ():25 ; WeitoDat ();2621282930313336 箝38394041424344,建用这ioo个M侑记采并存入怵由中/ void ReadDat() (FILE *fp;char atr80# ch11;int 1/ fp - fopen("in.dat", "r"); for (i - 0; 1 < 100;(fgcts (str, 80, fp);memcpy (se 111 i j .dai, str* 4):memcpy(selli.me, str 4, 10);memcpy(ch,str*14,4);ch(4-0;sei 11J.dj atoi(ch);rnenepy (ch,3tr-» 18, S) ;ch5-0;sell1.si - atol(ch)isell UI.je - (long)sell(i.dj , sellli).si; j fclose(fp);46474649505152535556/旭抬出到文付outdat中/ void WriteDat(> (FILE fp;int 1;fp fopen("out"w"); tor(l - 0: 1 < 100;Ifprlntf (£p, "%» %5%5d 1101dn", selllll.dm, selld) .nc, sellli) .dj, sellllj ,slsellHJ j):I tcloao(£p);36.已知数据文件in .dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:若一个四 位数的千位数位置上的值大于等于百位数位置上的值,百位数位置上的 值大于等于十位数位置上的值,以及十位数位置上的值大于等于个位数 位置上的值,并且原四位数是奇数,则统计出满足此条件的个数ent并 把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat把结果ent以及数组b中符合条件的数输出到Out dat文件中。注意:部分源程序存在test . c文件中。程序中已定义数组:a200| b200.已定义受: ent请勿改动数据文件in.dai中的任何数据、1.屏散main。、读函数rcadDatO和写函数wriicDttO的内容12345678910I include <stdio.h> tdefine MAX 200 int a【MAX, bMAX|r ent -(void void)voidwriteDat(); jsValOreadDat()1617181920int i;FILE *fp;fp fopen("in.dat", "r") for(i 0; i < MAX; i*) fscanf (fp« rd", (1)fclose(fp);void main()2223242526272829303132333435363738int 1;readDat();jsVal ();printf ("满足条件的数 %dn", ent);for(i - 0; i < ent; i+)printf(R%d -,printf(Mn");writeDat0;void writeDat()FILE *fp; int i; fp - fopen(*out.dat°, "w*); fprintf(fp, M%dnH, ent); for(i - 0; i < ent;fprintf(fp, "idnw, b(i); fclose(fp);37.已知数据文件in .dat中存有200个四位数,并已调用读函数readDat把这些数存入数组a中,请考生编制一函数isVal,其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数ab(新数的十位数字 是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及 把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果新组成的两个位数ab>cd, ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnto最后main函数调用写函数writeDat把结果ent以及数组b中符合条件的四位数输出到Out . dat文件中。注意,部分源界序存在lestc文件中.程序中已定义数组:a200, b2001,已定义变量:ent请勿改动数据文件in.dat中的任何数据、主南敷main。、读的数readDMO和写函数writeDatf)的内容.23456linclude <stdio.h>define MAX 200int aMAX, b(MAX, ent - 0; void writeDat();void jsVal()8910111213141516171819void readDat () 从in.dat文件中it取200个四位数存入败超a中 (int 1;FILE *fp;fp - fopen (Hin.datw, "r*);for(i - 0; i < MAX;fscanf(fprAa(i);fclose(fp);void main()20212223242526int 1;readDat();javal (); 用语故实现日 要求的功能printf ("淌足条件的数7dn", ent);for(1 - 0; i < ent;printf(Hld H, bil);printf("n");272829303132333435363738writeDat();void writeDat (> 纪计K协果e以及敷iflb中符合条件的四位数出到outda文件中 (FILE *fp;int 1;fp - fopen("out.dat", "w");fprintf(fp, "ldn", ent):for(i - 0; i < ent;fprintf(fp, "%dn"/ b(l);fclose(fp);38 .已知数据文件in dat中存有200个四位数,并已调用读函数readDatO 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:依次从数 组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数 且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此 条件的个数ent并把这些四位数按从小到大的顺序存入数组b中,最后 调用写函数writeDat把结果ent以及数组b中符合条件的四位数输出到 Out . dat文件中。注意:部分源程序存在test . C文件中。程序中已定义数组:a200, bROO,已定义变量:ent请勿改动数据文件in .dat中的任何数据、主函数main,读函数readDat 和写函数writeDat的内容。456 789101213141516171819/C从我IK文件m.dat中法取200个X位数存人数盥中/ void readDat()(int i;FILE *fp;fp - fopen("in.dat", "r");ford - 0; i < MAX;fscanf(fp, fclose(fp);)void main。include <stdio.h> tdefine MAX 200 i.nt a(MAX, bMAX, ent void writeDat 0;void jsValO20212223242526272829303132333435363738int 1;readDat();jsValO ; 调网曲故,实现雷日裳求的功健printf("满足条件的数=Qdn”,ent);for(i - 0; i < ent; 1+)printf(M%d ", b(i);prlntf;writeDat O;/,哈故wt械DatOlC姑聚cm以及数爆b中箝合条件的四位败出到outdat文科中/ void writeDat()(FILE #fp;int i;fp - fopen(Mout.dat", Mw"); fprintf(£p, H%dnw, ent); for(i « 0; i < ent; ,+)fprintf (fp,bib ;fclose(fp);39 .在文件in . dat中存有若干个(个数200)四位数字的正整数,函数 ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalVakie, 其功能要求:1 .求出该文件中共有多少个正整数totNum ; 2 .求出这些 正整数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的6 .在计算机的应用领域中,CAI表示A.计算机辅助设计B.计算机辅助教学C.计算机辅助制造D.计算机辅 助程序设计7 .用计算机管理某公司的人事档案是计算机的一项应用。按计算机应用 分类,它属于A.科学计算B.过程处理C.辅助设计D.数据处理8 .设有关系R(A, B, C, D, E), A、B、C、D、E都不可再分,则R 一定属于A.1NF B.2NF C.3NY D.以上3个选项都有可能9 .对一个由n个关键码组成的序列,借助排序过程选出其中最大的关 键码,要求关键码比较次数和移动次数最少,应当使用下列哪种排序方 法?A.归并排序B.直接插入排序C.直接选择排序D.快速排序10 .只允许操作系统使用而不允许一般用户使用的指令是A.系统指令B.特权指令C.非特权指令D.算术运算指令二、填空题(10题)11 .当两个数据表建立了关联后,通过L就有了父表、子表之分12 .若线性表的长度经常发生变化,那么该线性表应采用的存储结构是这些正整数的算术平均值totPjzo最后main函数调用函数WriteDat把所求的结果输出到Out. dat文件中。注意:部分源程序存放在test . c文件中。请勿改动数据文件in .dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。1 ; #include <atdio.h> fdefine MAXNUM 2003 4567 8;int xx(MAXNUMJ; int totNum - 0; 文件*n.dat中共有多少个正整lit;int totCnt - 0; 符合条件的正数的个Hj double totPjz - 0.0; 平均值! int ReadDat(void);I void WriteDat(void); void CalValue(void)10 J (11 ;malnOint i;for(i - 0; i < xx(i . 0;if(ReadDat ()MAXNUM;2021222324252627282930313233343536373839 404142434445464748printf ("数据文件in.dat不能打开! 007n"); return;CalValue();print£ ("文件in.dat中共有正祭数一&d个n“,totNure);printf ("符合条件的正整数的个数7d个totCnt);pdntf ("平均值totPjz); writeDat();>/it取这若干个正数并存入IHflu中/int ReadDat(void)(FILE -fp;int i " 0;if (fp-fopen (-in.datH,wr*) -NULL) return 1;while(!feof(fp)(fscanf (fp, "%d, *, &xx (i*4-);Ifclose(fp);return 0;I/把计W结果存入文件。ut.dat.中/void WriteDat(void)(FILE *fp;fp - fopen(Mout.datM, "w");fprlntf (fp, HidnWn%.21fn", totNan, totCnt, totPjz); fclose(fp);40.程序test . C的功能是:利用以下所示的简单迭代方法求方程cos(x) . x=o的一个实根。迭代公式:Xn+l=cos(xn)(n是迭代次数)迭代步骤如下:取XI初值为0 . 0 ;(2)X0=X 1,把XI的值赋给x0;XI二cos(xO),求出一个新的xl ;(4)若x0 .XI的绝对值小于0 .000001,执行步骤(5),否则执行步骤;(5)所求XI就是方程cos(X)-X=0的一个实根,作为函数值返回。请编写函数countvalue实现程序的功能,最后main函数调用函数 writeDAT把结果输出到文件Out dat中。注意 部分源程序存放在test .C 文件中。请勿改动主函数main和输出数据函数writeDAT的内容。 include <math.h> 表乐这个程序中JKI用vus.o的数字体mik45676910151617181920main()* include <stdio.h> /我示这个程序更5I用vc6.0的标准入出/数 void writeDAT () ;wrlteDAT<)成败的说明函句 double countvalue OcountValuo (>); 在JI上国示方程的一个实根printf (" %fn",cos (countvalue () -countvalue(); 在*篇日示求得这个实根的鞫度 writeDAT O;七结累出现文付。5&中1八函数wnteDAT(>ftM果一出到文件om dM ?«/void writeDAT() (FILE *wf; 定义文件指的父wf-foponCout.dafw"); 以 A 耳的方 V 打开 out.da。片使 sfprintf (wf,countvalue(); 品求利的实税写人利文件。ut .“t(close (wf); 美用文件 out.gc五、设计与应用题(2题)41 .某网上商城因为业务发展,原有的系统不能很好的满足需要,因此采 用了一套新的经营管理系统,此系统使用SQL Server 2008数据库管理 系统。此系统上线运行前,需将商场原有的数据导入到新系统中。原有 系统使用SQLServer2000,数据结构与新系统不完全一致。因此需要把 数据从SQL Server 2000导入到SQL Server 2008中,为了保证数据一 致性,数据导入过程中要求暂停业务且必须在3小时内完成。(1)在原 有数据导入新系统的过程中,实施人员发现原有数据量很大,导人数据 需要四小时,业务无法接受。经分析某工程师认为,数据导入过程中的 数据库I/O很高,但导入数据的程序本身对系统资源占用率很低。该工 程师建议将数据导入过程中的数据恢复模式从“完整”模式改为“简单” 模式以提高数据导人速度;而另一位工程师则认为此方法未必能提高数 据导入速度,而且还可能导致数据丢失,不建议使用此方法。请分析此 方法是否能够提高数据导入速度并给出理由,同时分析此操作的数据丢 失风险。(5分)(2)在成功导入历史数据后,此系统顺利上线运行。在 上线运行的第一周,发现数据库服务器的CPU使用率很高,达到近90%, 高峰期间达到100%,且系统内存占用率达到90%,但系统I/O很轻。 业务人员反应系统操作速度很慢。为了提高系统运行速度。在不修改应 用程序的前提下,两位工程师提出了不同的解决办法:I .为服务器增 加2颗CPU,缓解CPU使用率很高的问题;H .为服务器增加一倍内 存,缓解内存使用率很高的问题。考虑成本,现阶段只能按照一种方案 实施。请指出在现有情况下,哪种方案更合理并给出理由。(5分)42 .设某连锁商店数据库中有关系模式R :R (商店编号,商品编号,库 存数量,部门编号,负责人)如果规定:每个商店的每种商品只在一个 部门销售,每个商店的每个部门只有一个负责人,每个商店的每种商品 只有一个库存数量。(10分)(1)请根据上述规定,写出关系模式R的 函数依赖集;(2)请给出关系模式R的候选码;(3)请说明关系模式R 属于第几范式,并给出理由;(4)请将R分解成满足3NF的关系模式。六、单选题1分(2题)43 .实体联系模型简称ER模型,是数据库设计常用的一种建模方法。关 于ER模型,下列说法错误的是()oA.ER模型能帮助建模人员用一种简单的方法描述现实世界中的数据及 数据之间的联系B.用ER模型建模的基本思路是分类标识客观事物,将具有相同属性特 征的事物抽象为实体集C.ER模型可以描述实体集之间一对一、一对多和多对多联系,也可以 描述一个实体集中记录之间的联系D.用ER模型描述实体集之问的联系时,需要考虑数据在计算机中存储 及处理的特征44 .用UML建立业务模型是理解企业业务的第一步,业务人员扮演业务 中的角色及其交互方式,例如航空公司的售票员是业务员,电话售票员 也是业务员,它们直接的关系是()oA.关联关系B.依赖关系C.聚集关系D.概括关系参考答案1 .D解析:在各种数据库的规范没计法中,有较著名的新奥尔良(New Orleans)方法,它将数据库的设计分为4个阶段:需求分析阶段(分析用 户要求)、概念设计阶段(信息分析和定义)、逻辑设计阶段(设计实现)和 物理设计阶段(物理数据库设计)。2 .D解析:SQL语言称为结构化查询语言,是关系数据库的标准语言。 因此本题正确选项为D。3 .C解析:本题是对用于数据库应用系统界面开发工具的考查。题目中 的选项A、B和D都是数据库应用系统界面的开发工具。而选项 C(PowerDesigner)属于计算机辅助软件工程工具,是一个功能强大而使 用简单的工具集,支持从处理流程模型到对象和组件的生成的应用开发 周期的各个阶段,并提供了一个完整的建模解决方案,不属于界面开发 工具。因此本题正确答案为选项C.4 .B解析:本题主要考查了 Oracle的Internet解决方案。在Oracle产品 中Qracle WebAgent是用公用网关接口实现的过程化网关。5 .A解析:保证原子性是数据库管理系统中事务管理部件的责任。确保 持久性是数据库管理系统中恢复管理部件的责任。6 .B解析:计算机的主要应用有:科学计算、数据处理、计算机辅助系 统。计算机辅助系统包括:计算机辅助设计(CAD)、计算机辅助制造 (CAM)、计算机辅助教育(CAE),计算机辅助教育又包括计算机辅助教 学(CAI)和计算机辅助教育管理(CMI)。7 .D解析:数据处理也称非数值计算,是指以计算机技术为基础,对大 量数据进行加工处理,形成有用的信息。目前数据处理已广泛应用于办 公自动化、事务处理、情报检索等方面。8 .A解析:关系模式需要满足一定的条件,最低要求的条件是元组的每 个分量必须是不可再分的数据项,这叫做第一范式,简称1NF。9 .C解析:直接选择排序第一趟扫描就可以把最大的关键码找出来(不必 等到排序结束)其他几种排序方法都必须等到排序完成才能找到最大关 键码。10 .B解析只允许操作系统使用而不允许一般用户使用的指令是特权指 令;特权指令之外的指令称作非特权指令。掌握特权指令和非特权指令 的一些具体指令,比如设置时钟、清内存、算术运算指令等等。11 .关联字段建立联系的数据表通过关联字段来进行父子表之分12 .链式存储结构在计算机中用一组任意的存储单元存储线性表的数据 元素(这组存储单元可以是连续的,也可以是不连续的).rnu3000u3000 它不要求逻辑上相邻的元素在物理位置上也相邻.因此它没有顺序存储 结构所具有的弱点,但也同时失去了顺序表可随机存取的优点rn13 .虚拟【解析】如果系统的物理内存不能满足应用程序的需要,虚拟 内存管理程序就会接入来弥补不足。14 .回滚回滚解析:未能成功完成的事务称为中止事务,中止事务必须 对数据库的状态不造成影响,即中止事务对数据库所做的任何改变必须 撤销。一旦中止事务造成的变更被撤销,则称事务已回滚。15 .时移电视【解析】IPTV是一种利用宽带网络为用户提供交互式多媒 体服务的业务,具体来说,电视类服务是指与电视服务相关的服务,如 视频点播、直播电视和时移电视等。16 .16【解析】在DES加密中,明文的处理经过3个阶段。首先,64位 的明文经过初试置换(IP)而被重新排列。然后进行16轮的相同函数的作 用,每轮的作用中有置换和代换。最后一轮迭代的输出有64位,它是 输入明文和密钥的函数。最后,预输出再被与置换(IP)互逆的逆初始置 换(IP-1)作用产生64位的密文。17 .网关【解析】IP电话系统有4个基本组件:终端设备、网关、多点 控制单元和网守。18 .无损连接性无损连接性解析:规范化过程中将一个关系模式分解若 干个关系模式,应该保证分解后产生的模式与原来的模式等价。常用的 等价标准有要求分解是具有无损连接性的和要求分解是保持函数依赖 的两种。19 .空值空值20 .进程进程解析:进程是具有一定独立功能的程序关于某个数据集合 上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 进程可分为系统进程和用户进程两类。21 .C解析:数据字典是系统中各类数据描述的集合,是进行详细的数据 收集和数据分析所获得的成果。数据字典通过对数据项和数据结构的定 义宋描述数据流、数据存储的逻辑内容。所以数据字典的最基本的功能 是数据定义。22 .C解析:应用层协议主要有以下7种。网络终端协议TELNET, 用于实现互联网中远程登录功能。 文件传送协议FTP,用于实现互 联网巾交互式文件传输功能。电子邮件协议SMTP,用于实现互联网 中电子邮件传送功能。域名服务DNS,用于实现网络设备名字到IP 地址映射的网络服务。路由信息协议RIP,用于网络设备之间交换路 由信息。网络文件系统NFS,用于网络中不同主机间的文件共享。HTTP协议,用于WWW服务。23 .C解析:把概念设计阶段设计好的基本E-R图转换为与选用的具体 机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式 和外模式)。这些模式在功能上、完整性和一致性约束及数据库的可扩充 性等方面均应满足用户的各种要求。24 .A25 .C解析:直接插入排序的基本算法是:当插入第i (i=l)个对象时, 前面的v0, Vl.已经排好序,这时,用Vi的关键码与VR- 2. Vfi-21,的关键码顺序进行比较,找到插入位置即将vi插入, 原来位置上的对象则向后移。由此可知,直接插入排序法的关键码比较 次数与对象的初始排列有关,准确的说,就是与i可以取的值有关。对 于本题来说,A中i可以取1, B中i可以取2, C中i可以取3, D中i 可以取1。所以C的关键码比较次数最少。26 .A27 .A28 .D解析:为保证数据库是可恢复的,登记日志文件时必须遵循以下两 条原则:1、登记的次序严格按并发事务执行的时间次序;2、必须先写 日志文件,后写数据库。29 .CSQL语言集数据定义、数据查询和数据操纵和数据控制功能于一体。 数据定义语言的动作包括CREATE. DROP和ALTER ;数据操纵语言的 动作包括:INSEPT、UPDATE和DELETE ;数据控制语言的动作包括 GRANT和 REVOKEo30 .D31An【审题关键句】以行为单位从字符串左边部分降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字 符不参加处理。n【解题思路】n定义循环变量i、j、k和整型变量len、p0n第一层for循环中,循环变量i从0开始,依次递增直到其值等于 20,实现对20行数据的逐行处理。在循环体中,对于i行首先调用函数 strlen(xxi)求得第i行字符串的长度,并把其值赋给变量len,再用len 除以2,得到第i行字符串长度的一半,赋给变量P。在第二层for循环 中,循环变量J从0开始,依次递过来增直到其值等于(P-1),在第三层 for循环中,循环变量k从J+1开始,依次递过来增直到其值等于P,比 较字符xxifjASCII码值与xxikASCII码值的大小,如果字符xxi 啪的ASCII码值小于xxik的ASCII码值,则两者进行互换实现对第 i行字符串左半部分的字符串按降序排列。n用变量len的值对2求余数,如果余数为1,则调用函数字符串拷贝 函数strcpy,把从字符串xxi