【2021年】广东省汕头市全国计算机等级考试数据库技术真题(含答案)_第1页
【2021年】广东省汕头市全国计算机等级考试数据库技术真题(含答案)_第2页
【2021年】广东省汕头市全国计算机等级考试数据库技术真题(含答案)_第3页
【2021年】广东省汕头市全国计算机等级考试数据库技术真题(含答案)_第4页
【2021年】广东省汕头市全国计算机等级考试数据库技术真题(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

【2021年】广东省汕头市全国计算机等级考试数据库技术真题(含答案)学校:________班级:________姓名:________考号:________

一、1.选择题(10题)1.操作系统具有进程管理、存储管理、文件管理和设备管理的功能,在以下有关的描述中,哪一个是不正确的?()。

A.进程管理主要是对程序进行管理

B.存储管理主要管理内存资源

C.文件管理可以有效地支持对文件的操作,解决文件的共享、保密和保护问题

D.设备管理是指计算机系统中除了CPU和内存以外的所有输入输出设备的管理

2.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,语句ALTERTABLE实现哪类功能?

A.数据查询B.数据操纵C.数据定义D.数据控制

3.在包含1000个元素的线性表中实现如下各运算,哪一个所需的执行时间最短?

A.线性表按顺序方式存储,查找关键码值为666的结点

B.线性表按链接方式存储,查找关键码值为666的结点

C.线性表按顺序方式存储,查找线性表中第900个结点

D.线性表按链接方式存储,查找线性表中笫,900个结点

4.关系代数的五个基本操作是()。

A.并、差、交、除、笛卡儿积B.并、差、交、投影、选择C.并、差、交、除、投影D.并、差、笛卡儿积、投影、选择

5.实现人机对弈、密码破译等是属于()应用领域。

A.科学和工程计算B.数据和信息处理C.过程控制D.人工智能

6.在关系数据中,视图(view)是三级模式结构中的

A.内模式B.模式C.存储模式D.外模式

7.以下______不是队的基本运算。

A.从队尾插入一个新元素B.从队列中删除第i个元素C.判断一个队列是否为空D.读取队头元素的值

8.关于线形表的插入运算,正确的是________。

Ⅰ.把新表元插性表的第i(0≤i≤n)个表元

Ⅱ.把新表元插在具有给定的表元的前面或后面

Ⅲ.把新表元插性表的第i(0≤i≤nhl)个表元

A.Ⅰ,ⅡB.Ⅰ,ⅢC.Ⅱ,ⅢD.Ⅰ,Ⅱ,Ⅲ

9.关系模式R中若没有非主属性,则______。

A.R属于2NF,但R不一定属于3NF

B.R属于3NF,但R不一定属于BCNF

C.R属于BCNF,但R不一定属于4NF

D.R属于4NF

10.在数据库中可以创建和删除表、视图、索引,可以修改表。这是因为数据库管理系统提供了______。

A.数据定义功能B.数据操纵功能C.数据维护功能D.数据控制功能

二、填空题(10题)11.Internet上的计算机地址有两种表示形式:【】与域名。

12.散列法存储中处理碰撞的方法主要有两类:拉链法和_____。

13.在关系数据模型中,二维表的列称为属性,二维表的行称为______。

14.概念结构设计的方法通常有自顶向下、自底向上、逐步扩张和【】。

15.数据是信息的符号表示或称载体;信息是数据的内涵,是数据的语义解释。例如“世界人口已经达到6亿”,这是

【】

16.Annstrong公理系统的三条推理规则是【】、增广律和传递律。

17.SQLServer中一个数据页的大小是__________KB。

18.二叉树是结点的有限集合,这个有限集合或者为空集,或者由一个根结点及两棵不相交的、

分别称为根的左子树和右子树的

【】

组成

19.数据结构包括的三个方面的内容是:数据的【】,数据的存储结构,数据的运算。

20.Oracle自7起对进程结构作了改进,采用了多

【】

多线索体系结构。

三、单选题(10题)21.某数据库应用系统中,数据库管理员发现某个查询功能是用多表连接操作实现的,此操作性能较差。在保证功能不变的前提下,若要提高该查询的执行效率,下列方法中可行的是()

A.将此查询语句放置在视图中,使用视图实现该查询操作

B.修改实现此功能的查询语句,将连接查询改为嵌套查询

C.将此功能涉及到的表进行合并,然后对合并后的表进行查询

D.将此查询语句放置在存储过程中,通过调用存储过程实现该查询操作

22.设数组data[0…m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()

A.front:=front1

B.front:=(front1)modm

C.rear:=(rear1)modm

D.front:=(front1)mod(m1)

23.Aarr和Barr两个数组说明如下:VARAarr:Array[0…7]ofchar;Barr:Array[-5…2,3…8]ofchar;这两个数组分别能存放的字符的最大个数是()

A.7和35B.1和5C.8和48D.1和6

24.为了考虑安全性,每个部门的领导只能存取本部门员工的档案,为此DBA应创建相应的()。

A.视图(view)B.索引(index)C.游标(cursor)D.表(table)

25.E-R图是数据库设计的工具之一,它适用于建立数据的()

A.中继器B.桥接器C.路由器D.网关

26.()是将若干对象和它们之间的联系组合成一个新的对象。

A.分解B.抽象C.聚集D.概括

27.下列关于数据库重构的说法中,错误的是__________。

A.数据库的重构就是对数据库的逻辑结构作必要的小范围改变

B.当存储空间的分配过于零散,导致存取效率下降,所以必须重构数据库

C.数据库重构包括重新设计数据库及其应用程序

D.如果能够重构数据库,尽量不要重新设计数据库及相应的应用程序

28.顺序程序和并发程序的执行相比()

A.基本相同B.无法确定C.并发程序执行总体上执行时间快D.顺序程序执行总体上执行时间快

29.在关系中选取满足某个条件的元组的关系代数运算称之为()

A.选中运算B.选择运算C.投影运算D.搜索运算

30.在SQLServer2008中,设用户U1是某数据库db_datawriter角色中的成员,则U1在该数据库中有权执行的操作是()

A.SELECT

B.SELECT和INSERT

C.INSERT、UPDATE和DELETE

D.SELECT、INSERT、UPDATE和DELETE

四、C语言程序设计题(10题)31.已知数据文件in.dat中存有200个四位数,并已调用读函数readDat把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把千位数字和个位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的个位数字),以及把百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成的数均是奇数并且至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main函数调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。

32.已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编制一函数jsValue,其功能是:求出于位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后main函数调用写函数writeDat把数组b中的数输出到文件out.dat中。

33.已知在文件in.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量s1(整型),金额je(长整型)五部分组成。其中:金额=单价*数量。函数ReadDat读取这100个销售记录并存入结构数组sell中。请编制函数SortDat,其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小大进行排列,最终排列结果仍存入结构数组sell中。最后main函数调用函数WriteDat把结果输出到文件out.dat中。

提示:若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题;产品代码比较请用函数strcmp进行解题。例如:sell[i]=temp;

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

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

34.程序test.c的功能是:计算出自然数SIX和NINE满足条件SIX+SIX+SIX=NINE+NINE的个数cnt,以及满足此条件的所有SIX与NINE的和SUM。请编写函数countValue实现程序的要求,最后main函数调用函数writeDAT把结果cnt和sum,输出到文件0ut.dat中。

其中的S,I,X,N,E各代表一个十进制数字,允许代表的数字相同,但s和N不能为0。例如:944+944+944=1416+1416注意:部分源程序存放在test.c文件中。

请勿改动主函数main和输出数据函数writeDAT的内容。

35.函数ReadDat实现从文件in.dat中读取一篇英文文章存入到无符号字符串数组XX中;请编制函数ChA,其函数的功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个新的值,存入数组单元xx[i][0]中(其中:i是文章中的某行)。第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的值,存入数组单元xx[i][1]中。以此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的值,存放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行重新存入无符号字符串数组XX中。最后main函数调用函数WriteDat把结果XX输出到out.dat文件中。

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按它的ASCII值作以上处理。注意:部分源程序存放在test.c文件中。

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

36.已知数据文件in.dat中存有300个四位数,并已调用读函数rcadDat把这些数存入数组a中,请编制一函数jsvalue,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。最后main函数调用写函数writeDat把数组b中的数输出到文件out.dat中。

37.已知在in.dat中存有若干个(个数<200)四位数字的正整数,函数ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,其功能要求:

1.求出该文件中共有多少个正整数totNum;

2.求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz。最后main函数调用函数WriteDat把所求的结果输出到文件out.dat中。

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

请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。

38.编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asdasasdfgasdaszx67asdmklo”,子字符串为”as”,函数返回值是6。

函数ReadWrite实现从文件in.dat中读取两个字符串,并调用函数findStr,最后把结果输出到文件out.dat中。

注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数findStr的花括号中

填入你编写的若干语句。

39.程序test.C的功能是:把s字符串中的所有字符左移一个位置,串中的第一个字符移到最后。请考生编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT把结果输出到0ut.dat文件中。

40.在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,其功能要求:1.求出该文件中共有多少个正整数totNum;2.求出这些正整数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totPjz。最后main函数调用函数WriteDat把所求的结果输出到0ut.dat文件中。

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

请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。

五、设计与应用题(2题)41.某网上商城因为业务发展,原有的系统不能很好的满足需要,因此采用了一套新的经营管理系统,此系统使用SQLServer2008数据库管理系统。此系统上线运行前,需将商场原有的数据导入到新系统中。原有系统使用SQLServer2000,数据结构与新系统不完全一致。因此需要把数据从SQLServer2000导入到SQLServer2008中,为了保证数据一致性,数据导入过程中要求暂停业务且必须在3小时内完成。(1)在原有数据导入新系统的过程中,实施人员发现原有数据量很大,导人数据需要四小时,业务无法接受。经分析某工程师认为,数据导入过程中的数据库I/O很高,但导人数据的程序本身对系统资源占用率很低。该工程师建议将数据导入过程中的数据恢复模式从“完整”模式改为“简单”模式以提高数据导人速度;而另一位工程师则认为此方法未必能提高数据导入速度,而且还可能导致数据丢失,不建议使用此方法。请分析此方法是否能够提高数据导入速度并给出理由,同时分析此操作的数据丢失风险。(5分)(2)在成功导入历史数据后,此系统顺利上线运行。在上线运行的第一周,发现数据库服务器的CPU使用率很高,达到近90%,高峰期间达到100%,且系统内存占用率达到90%,但系统I/O很轻。业务人员反应系统操作速度很慢。为了提高系统运行速度。在不修改应用程序的前提下,两位工程师提出了不同的解决办法:Ⅰ.为服务器增加2颗CPU,缓解CPU使用率很高的问题;Ⅱ.为服务器增加一倍内存,缓解内存使用率很高的问题。考虑成本,现阶段只能按照一种方案实施。请指出在现有情况下,哪种方案更合理并给出理由。(5分)

42.设某教学管理系统,其查询模块需要提供如下功能:Ⅰ.查询系信息,列出各系编号、系名和系办公电话;Ⅱ.查询某系教师的信息,列出教师号、教师名、工资和聘用日期;Ⅲ.查询某教师讲授的课程信息,列出课程号、课程名和学分;Ⅳ.查询讲授某门课程的教师信息,列出教师名和职称;V.查询某门课程的先修课程信息,列出先修课程号和先修课程名。系统有如下业务规则:Ⅰ.一个系可聘用多名教师,一名教师只能受聘于一个系;Ⅱ.一名教师可讲授多门课程,一门课程可由多名教师讲授;Ⅲ.一门课程可以有多门先修课程,也可以没有先修课程。(1)请根据以上查询功能与业务规则,用ER图描述该系统的概念模型。(5分)(2)将ER图转换为满足3NF的关系模式,并说明每个关系模式的主码和外码。(5分)

六、单选题[1分](2题)43.许多大中型企业出于多种原因建立了数据仓库,以下()不是建立数据仓库的合理理由。

A.将企业的各种应用系统集中在一起

B.充分利用企业信息系统生成的各种数据

C.解决企业业务应用和数据分析应用的性能冲突

D.以面向主题、集成的方式合理的组织数据

44.设有工作表(工作编号,最低工资,最高工资),其中工作编号、最低工资和最高工资均为整型,工作编号为主码。现要求最高工资必须大于等于最低工资,但不能超过最低工资的2倍。在SQLServer2008环境中有下列创建该表的语句:1.CREATETABLE工作表(工作编号intprimarykey,最低工资int,最高工资intcheck(最高工资between最低工资and最低工资*2))Ⅱ.CREATETABLE工作表(工作编号int,最低工资int,最高工资int,primarykey(工作编号),check(最高工资between最低工资and最低工资*2))Ⅲ.CREATETABLE工作表(工作编号intprimarykey(工作编号),最低工资int,最高工资int,check(最高工资between最低工资and最低工资*2))Ⅳ.CREATETABLE工作表(工作编号intprimarykey(工作编号),最低工资int,最高工资intcheck(最高工资between最低工资and最低工资*2))上述语句中正确的是()。

A.仅Ⅰ和ⅡB.仅Ⅱ和ⅢC.仅Ⅲ和ⅣD.全部

参考答案

1.A解析:进程管理主要是对处理机进行管理。

2.C解析:SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中ALTERTABLE、CREATE和DROP实现数据定义;SELECT实现数据查询;INSERT、UPDATE和DELETE实现数据操纵;GRANT,REVOKE实现数据控制。因此语句ALTERTABLE实现数据定义,正确答案为C。

3.C解析:线性表是具有相同属性的数据元素的一个有限序列,其中的元素在位置上是有序的,可以通过计算,直接确定数据结构中第i个结点的存储地址L,计算公式为:Li=L0+(i-1)'m按照题意,按照顺序方式存储的线性表,查找表中第900个结点,其位置为:Li=L0+(900-1)'1000可以直接确定其位置,找到结点。按照顺序方式存储的线性表,如果要查找关键码,不管使用什么方式,都不可能直接确定其结点位置。以链接方式存储线性表,不管是按照关键码查找,还是按照第多少个结点查找,都需要从头结点开始,按照链接顺序查找。综上所述,选项C的执行时间最短。

4.D

5.D解析:人们把用计算机模拟人脑思维的过程称为人工智能,人们也认为它是计算机的重要应用领域。如利用计算机进行数学定理的证明、进行逻辑推理、理解自然语言、辅助疾病诊断、实现人机对弈等,都是利用人们赋予计算机的智能来完成的。

6.D解析:数据库的三级模式结构是指数据库系统由外模式、模式和内模式三级抽象模式构成。模式也称逻辑模式或概念模式,模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,一个数据库只有一个模式;外模式也称子模式、用户模式,可以描述某个特定的用户组所使用的那一部分数据库,一个数据库可以有多个外模式;内模式也称物理模式,是数据库内部的表示方法。在关系数据库中,模式对应基本表(table)、外模式对应于视图、而内模式对用于存储文件。因此视图(view)是三级模式结构中的外模式,本题的答案为D。

7.B解析:队只能在队尾插入元素,从队头删除元素,这就是所谓的“先进先出”,而不能从队列中间删除或插入元素。

8.A解析:线性表的插入运算包括:把新表元插性表的第i(0≤i≤n)个表元;把新表元插在具有给定的表元的前面或后面。

9.B解析:在函数依赖的范畴内规范化程度有四级。第一范式(1NF)要求的条件是元组中的所有分量必须是不可分的数据项;第二范式(2NF)要求关系模式R∈1NF,且每一个非主属性完全函数依赖于码,即不允许非主属性对码的部分函数依赖;第三范式(3NF)要求关系模式R∈2NF,且每一个非主属性都不传递依赖于码。最高范式(BCNF)要求关系模式R∈3NF,且对于每一个非平凡的函数依赖X→Y,都有X包含码。对本题而言,因为关系模式R中若没有非主属性,因此R属于3NF,但并不能保证对于每一个非平凡的函数依赖X→y,都有X包含码。因此本题正确答案为选项B。

10.A解析:系统的基本功能包括:1)数据库定义功能;2)数据操作功能;3)数据库的运行管理和控制功能;4)数据库的建立和维护功能;5)数据库存取功能。其中数据库定义功能包括在数据库中可以创建和删除表、视图、索引,可以修改表等。

11.IP地址IP地址解析:Internet上的计算机地址有两种表示形式:IP地址与域名。每台接到Internet上的计算机、路由器都必须有惟一的IP地址。掌握网络中IP地址的分配问题。

12.开放定址法开放定址法

13.元组或记录元组或记录

14.混合策略混合策略解析:设计概念结构通常有4类方法:自顶向下:即首先定义全局概念结构的框架,然后逐步细化;自底向上:即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;逐步扩张:即首先定义最重要的核心概念,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;混合策略:即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成用白底向上策略设计的各局部概念结构。

15.信息信息是经过加工后的数据

16.自反律自反律解析:Amnstring公理系统的三条推理规则是自反律、增广律和传递律。

17.8KB

18.二叉树二叉树的概念,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(leftsubtree)和“右子树”(rightsubtree)

19.逻辑结构逻辑结构

20.进程多进程,多线索的体系结构:一个或多个线索进程,多个服务器和多个后台进程。线索进程负责监听用户请求,将用户请求链入内存的请求队列中,并将应答队列中执行结果返给相应用户。

21.C

22.D

23.C

24.A解析:视图是从一个或几个基本表中根据用户需要而做成的一个虚表。视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据,视图是只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户。

25.A

26.C解析:聚集是将若干对象和它们之间的联系组合成一个新的对象。

27.C

28.C

29.B

30.C

31.\n【审题关键句】千位+个位与百位+十位,奇数,整除,从大到小排序。

\n【解题思路】

\n本题类似第27套试题,通过审题可以发现主要是对四位数的筛选条件有所不同,体现在两个方面:①分解后重新组合成两位数的方式不同,参考答案的第8、9条语句重新指定两位数的组合方式;②新组台的两位数的奇数的判断及整除判断,参考答案的第10条语句。

\n【参考答案】

\n

\n

32.\n【审题关键句】千位+个位等于百位+十位个数,把所有满足此条件的数依次存入数组,按从小到大的顺序排序。

\n【解题思路】

\n本题类似第9套试题,通过审题可以发现仅有一个不同点,即要求统计的四位数的条件是“个位+千位=百位+十位”,参考答案的第8条语句,修改if条件语句的判断条件即可,对于数据交换的整型变量tmp可以自定义其变量名。

\n【参考答案】

\n

\n

33.\n【审题关键句】计算金额,按产品代码从小到大进行排列,相同的则按金额从小到大排列,结果存入结构数组。

\n【解题思路】

\n本题类似第57套试题,通过审题可以发现主要是排序条件的设置要求有所不同,参考答案的第8行进行修改即可。

\n【参考答案】

\n

\n

34.【审题关键句】计算满足条件的sIX+sIX+sIx-NINE+NINE的SIX和NINE的个数以及满足此条件所有的SIX与NINE的和,S,I,X,N,E各代表一个十进制数字。

\n【解题思路】

\n①定义整型变量S,i,X,n,e,six,nine。

\n②在第一层for循环中,因为S的值不能为0,所以循环变量s从1开始,依次递增直到其值等于10,退出循环。在第二层for循环中,循环变量i从0开始,依次递增直到其值等于10,退出循环。在第三层for循环中,循环变量X从0开始,依次递增直到其值等于10,退出循环。在第四层for循环中,因为n的值不能为0,所以循环变量n从1开始,依次递增直到其值等于10,退出循环。在第五层for循环中,循环变量e从0开始,依次递增直到其值等于10。

\n③设置完所有for循环条件后,在循环体中,由变量S的值乘以l00,变量i的值乘以10,以及变量X组成一个三位数赋给变量six,由变量n的值乘以1000,变量i的值乘以100,变量n的值乘以10,以及变量e组成一个四位数赋给变量nine,再用if条件语句判断,如果三倍的six等于两倍的nine,则计数变量cnt加1,把six与nine的和累加到变量sum,同时在屏幕上,输出six与nine的值。

\n【参考答案】

\n

\n

\n

35.\n【审题关键句】以行为单位,新字符串中每个字符的ASCII码值等于该位置上的原字符ASCII码值加其后面一个字符的ASCII码值,逆序排序。

\n【解题思路】

\n①定义整型循环变量i、j和字符局部变量yuan。

\n②在第一层for循环中,循环变量i从0开始,依次递增直到其值大于或等于maxline,在循环体中,首先把第i行的第一个字符)XX[i][0]赋给变量yuan,在第二层for循环中,循环变量j从0开始,依次递增直到其值等于该行字符串的长度减1,在循环体中,将字符xx[i][j]的ASCII码值与字符)XX[i][j+1]的ASCII码值相加的和保存到字符)xx[i][j]中。当退出第二层for循环后,把第i行的最后一个字符与第一个字符变量yuan的值相加,最后通过strreV函数对i行字符串逆序排序。

\n【参考答案】

\n

\n

36.\n【审题关键句】千位+百位等于十位+个位的数的个数,把所有满足此条件的四位数依次存入数组,然后对数组按从大到小的顺序进行排序。

\n【解题思路】

\n本题类似第9套试题,通过审题可以发现有两个不同点:①要求统计的四位数的条件是“千位+百位=十位+个位”,参考答案的第8条语句修改if语句的判断条件即可。②将统计结果按从大到小的顺序排序,参考答案的第13条语句,修改两数组元素的大小比较符即可。另外,对于数据交换的整型变量tmp可以自定义其变量名。

\n【参考答案】

\n

\n

\n

37.\n【审题关键句】读取正数,统计个数,右移后为奇数的个数及平均值。

\n【解题思路】

\n本题类似第44套试题,通过审题可以发现仅有一个不同点,即参与平均值计算的元素是数组xx[i]右移一位之后为奇数的元素,参考答案的第9条语句。

\n【参考答案】

\n

\n

38.\n【审题关键句】统计一个长度为2的子字符串在另一个字符串中出现的次数。

\n【解题思路】

\n①定义字符指针p,q,并且q指向字符串str。定义计数整型变量cnt,设置其值等于0。

\n②在while循环中调用C语言的字符串库函数strstr,返回子字符串substr在字符串q第一次出现的位置,赋给变量P。用if语句判断,如果p的值为空,则说明在字符串str没有找到子字符串,退出循环。否则,变量cnt加1,再把P的值加2(因为子字符串substr的长度为2)赋给变量q,执行下一次循环。直到字符串中不存在子字符串时,退出循环结束。

\n③最后,返回子字符串substr在字符串str中出现的次数。

\n【参考答案】

\n

39.【审题关键句】所有字符左移一个位置,串中的第一个字符移到最后。

\n【解题思路】

\n定义循环变量i,字符变量first和字符指针变量P,并使P指向字符串S。

\n②把字符串S的第一个字符赋给first变量保存起来。

\n③在for循环语句中,循环变量i从0开始,依次递增直到其值等于或大于(int)strlen(s)一1,把*(p+i+1)的值赋给+(p+i),实现把字符串S中的所有字符左移一个位置,循环结束后,把first的值赋给p[strlen(s).1],即把字符串的首字符移动到字符串的最后位置上。

\n【参考答案】

\n

\n

40.\n【审题关键句】读取正数,统计个数,各位数字之和为偶数的数的个数及平均值。

\n【解题思路】\n\t\t定义整型循环变量i、j,表示各位数字之和的长整型变量he以及存储一个四位数的字符数组num[5]。

\n②循环变量i从0开始,依次递增到4,对字符数组num[5]的每个元素赋初值0。

\n③循环变量i从0开始,依次递增到MAXNUM.1,对每个数组元素xx[i]进行判断,如果xx[i]的值非零,则变量totNum加1,退出循环时,totNm的值就是文件in.dat中存有的四位正整数的个数。

\n④循环变量i从0开始,依次递增到totNum-1,对于每个数组元素xx[i]调用库函数sprintf以4个字符宽度形式输出到字符数组num中,用字符数组num中的每个元素减去0的ASCII码48,就分别得到XX[i]这个四位数每位上的数字,并把这四个数字相加赋给变量j。再对变量j对2求余数进行判断其值是否等于0,如果等于0,则说明j是偶数,变量totCnt加1,并把xx[i]的值累加到变量he。

\n⑤退出循环后,把变量he的类型转换成双精度型再除以totCnt得到符合条件的数的算术平均值totPjz。

\n【参考答案】

\n

\n

41.【

温馨提示

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

评论

0/150

提交评论