2023年12月29日发(作者:)

2022年广东省东莞市全国计算机等级考试数据库技术真题(含答案)
学校:________ 班级:________ 姓名:________ 考号:________
一、1.选择题(10题)
1. 储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是( )。
A.一对一的联系 B.一对多的联系 C.多对一的联系 D.多对多的联系
2. 操作系统的发展过程是( )
A.设备驱动程序组成的原始操作系统,管理程序,操作系统
B.原始操作系统,操作系统,管理程序
C.管理程序,原始操作系统,操作系统
D.管理程序,操作系统,原始操作系统
3. 用下列4种排序方法,对一个已排好序(由小到大)的序列进行排序(由小到大),哪种方法最好?
A.冒泡排序 B.直接选择排序 C.直接插入排序 D.归并排序
4. 单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,要将q插入结点p的后面,正确的操作应该是
A.q↑.link:=p↑.link;p↑.link:=q;
B.q:=p↑.link;p↑.link:=q↑.link;
C.q↑.link:=p;p↑.link:=q;
D.q:=P↑.link;p:=q↑link;
5. 解决内存碎片的通常的手法,是把所有的空闲区合并成一片连续区域,这一过程称为 ________。
A.合并 B.内存回收 C.紧凑 D.碎片整理
6. 在下列线性表中,限定仅在表的一端进行插入和删除运算的线性表是
A.队列 B.栈 C.串 D.数组
7. 在数据库的三级模式结构中,外模式有
A.1个 B.2个 C.3个 D.任意多个
8. 用高级语言编写的程序
A.只能在某种计算机上运行 B.无需经过编译或解释,即可被计算机直接执行 C.具有通用性和可移植性 D.几乎不占用内存空间
9. 限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖的是 ______。
A.4NF B.2NF C.3NF
10.下列问题基于以下的叙述:关系模式R(B,C,M,T,A,C),根据语义有如下函数依赖集:F={B→C,(M,T)→B,(M,C)→T,
(M,A)→T,(A,B)→C}。
关系模式R的码是
A.(M,T) B.(M,C) C.(M,A) D.(A,B)
二、填空题(10题)
11. 有关键码值为15,25,40的三个结点。按所有可能的插入顺序去构造二叉排序树,能构造出______棵不同的二叉排序树。
12.运行IP协议的Intemet可以为其高层用户提供___________的、面向无连接的、尽最大努力的数据报投递服务。
13.在 【】 数据库系统中,每一个结点都是一个独立的数据库系统
14. SQL SERVER 2000与COMMERCE SERVER 2000集成,支持完整的点击流和______数据分析。
15. 一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用______机制来解决的。
16.用户检索POP3邮件服务器的过程可以分成3个阶段:___________、事务处理阶段、更新阶段。
17. 数据模型可分为概念数据模型和【 】模型。
18.顶级域的划分模式为组织模式和___________。
19.队列是限制插入只能在表的一端进行的线性表,其特点是 【】
20. 电子邮件程序向邮件服务器发送邮件时,使用的协议是______。
三、单选题(10题)
21.在SQL Server 2008的系统数据库中,为调度信息和作业历史提供存储区域的是
22.把电路中的所有元件如晶体管、电阻、二极管等都集成在一个芯片上的元件称为( )
stor ated Circuit er Tube
23. 某单道批处理系统中有四个作业JOB1、JOB2、JOB3和JOB4,它们到达“输入井”的时刻和需要的运行时间如下表所示:
假设9:30开始进行作业调度,按照最高响应比作业优先算法,首先被调
度的作业是
1 2 3 4
24.下列关于SQL Server数据库服务器登录账户的说法中,错误的是__________。
A.登录账户的来源可以是Windows用户,也可以是非Windows用户
B.所有的Windows用户都自动是SQL Server的合法账户
C.在Windows身份验证模式下,不允许非Windows身份的用户登录到SQL Server服务器
是SQL Server提供的一个具有系统管理员权限的默认登录账户
25.下列SQL Server提供的系统角色中,具有数据库服务器上全部操作权限的角色是__________。
_owner tor _datawriter in
26.关于水平分割说法错误的是:( )
A.根据行的使用特点进行分割
B.分割之后所有表的结构都相同。
C.而存储的数据不同。使用并(Union)操作。
D.使用连接(Join)操作
27. 对具有相同关键字的关系模式,如果他们的处理主要是查询操作,且常在一起,可将这列关系模式进行什么操作?
A.模式评价 B.优化模式 C.合并 D.分解
28.E-R图是数据库设计的工具之一,它适用于建立数据的( )
A.中继器 B.桥接器 C.路由器 D.网关
29.在SQL Sever中创建用户数据库,其主要数据文件的大小必须大于__________。
数据库的大小 数据库的大小 数据库的大小
D.3 MB
30.下列关于时钟的叙述中,哪一条是不正确的?( )
A.A.时钟中断可以屏蔽
B.时钟是操作系统运行的必要机制
C.时钟可以分成硬件时钟和软件时钟
D.利用时钟中断可以实现进程的轮转运行
四、C语言程序设计题(10题)
31.
函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符串数组XX中,请编制函数ConvertCharD,其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z,其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。最后main函数调用函数WriteDat把结果xx输出到文件out.dat中。例:原文:Adb.Bcdza
abck.LLhj结果:Aca.Bbcyzzabj.LLgi原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在test.c文件中。
请勿改动主函数main、读函数ReadDat0和输出函数WriteDat的内容。
32. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat把这些数存入数组a中,请考生编制一函数jsVal,其功能是:从数组a
中依次取出一个四位数,对每一个四位数作如下处理:把个位数字和千位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成数:一个是奇数,另一个为偶数,并且至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数存入数组b中,并计算满足上述条件的四位数的个数cnt,而后对数组b进行降序排序。最后main函数调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到out.dat文件中。
例如:一个四位数为4512,依题意组成的第一个新数为24,第二个新数为51,其中51能被17整除,这两个新数的十位数字不为零,则4512这个四位数满足题意所规定条件。
33. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat0把这些数存入数组a中,请考生编制一函数jsVal,其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。
注意:部分源程序存在test.C文件中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。
34. 编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asd asasdfg asd as zx67 asdmklo”,子字符串为”as”,函数返回值是6。
函数ReadWrite实现从文件in.dat中读取两个字符串,并调用函数findStr,最后把结果输出到文件out.dat中。
注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数findStr的花括号中
填入你编写的若干语句。
35. 将文件in.dat中的200个整数读至数组XX中。请编制jsValue函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组XX下标为奇数的元素值的算术平均值pj。
结果cnt1,cnt2,pj输出到out.dat中。注意:部分源程序存在test.c文件中。请勿改动数据文件in.dat中的任何数据、主函数main、读函数read_dat和输出函数writeDat的内容。
36. 已知在in.dat中存有若干个(个数<200)四位数字的正整数,函数
ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,其功能要求:
1.求出该文件中共有多少个正整数totNum;
2.求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz。最后main函数调用函数 WriteDat把所求的结果输出到文件out.dat中。
注意:部分源程序存放在test.c文件中。
请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。
37. 函数readDat是从文件in.dat中读取20行数据存放到字符串数组XX中(每行字符串长度均小于80)。请编制函数isSort,其函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组XX中,最后调用函数writeDat把结果)XX输出到文件0ut.dat中。
条件:字符串从中间一分为二,左边部分按字符的ASCII值降序排序,右边部分不作处理,排序后,左边部分与右边部分按例子所示进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
38. 已知数据文件in.dat中存有200个四位数,并已调用读函数readDat把这些数存入数组a中,请考生编制一函数jsVal,其功能是:把个位数字和千位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另~个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成的数均是偶数并且至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main函数调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。
39. 程序test.c的功能是:计算100以内满足以下条件的所有整数i的个数cnt以及这些i之和sum。条件:i,i+4,i+10都是素数,同时i+10小于100。请考生编写函数countvalue实现程序要求,最后调用函数wfiteDAT把结果cnt和sum输出到文件out.dat中。(数值l不是素数)
40. 函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符串数组XX中,请编制函数ConvertCharA,其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a,大写字母和其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组XX中。最后main函数凋用函数WriteDat把结果XX输出到文件0ut.dat中。
五、设计与应用题(2题)
41.某教务管理系统使用SQL Server 2008数据库管理系统,数据库软硬件配置信息如下:Ⅰ.数据库运行在两路Intel Xeon E5-2609 2.4GHz
CPU(每路CPU4核心),128GB内存、2块300GB15000转SAS硬盘(RAID l)的服务器上;Ⅰ.服务器操作系统为Windows 2003 32位企业版,安装SP2补丁;Ⅰ.数据库为SQL Server 2008 Enterprise(32位),数据库中总数据量近130GB。近一个学期以来,用户反映系统运行缓慢,经程序员定位,确定为数据库服务器响应缓慢,需要进行调优。(10分)
42.设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。其中,商品号代表一类商品,商品号、单价、销售数量和销售单价均为整型。请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量x(销售单价一单价)。要求商品号和年份为输入参数,总毛利用输出参数返回。(10分)
六、单选题[1分](2题)
43.数据库性能优化是数据库应用系统上线后最常见的运行维护任务之一。下列有关数据库性能优化的说法,错误的是( )。
A.数据库性能优化和数据库的外部环境有很大关系,如果外部环境出现瓶颈,单独对数据库进行调整很难取得较好效果
B.在数据库性能优化期间可能对原有符合范式的关系转为不符合范式的关系
C.物化视图将会预先计算并保存耗时操作的结果,可大幅度提高查询效率,但是物化视图必须人工手动刷新
D.存储过程在执行期间不需要重新编译,可以在一定程度上提高运行效率,但是其与数据库管理系统绑定,更换数据库管理系统时需要重新编写
44.下列关于SQL Server 2008身份验证模式的说法,错误的是( )。
A.在“Windows身份验证模式”下,不允许sa登录到SQL Server服务器
B.在“Windows身份验证模式”下,所有Windows用户都自动具有登录到SQL Server服务器的权限
C.不管是哪种身份验证模式,Windows中的Administrator无需授权就可登录到SQL Server服务器
D.安装好SQL Server之后,可以根据需要随时更改身份验证模式
参考答案
1.D解析:如果对于实体集A中的每一个实体,实体集B中n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也
有m个实体(m≥0)与之联系,则称实体集A与实体集B是多对多联系,记为m:n。
2.A早期是二进制编码,就是一般所谓的机器语言,其后出现最早的操作系统,因此发展过程为设备驱动程序组成的原始操作系统、管理程序、操作系统
3.C解析:直接插入排序的基本算法是:当插入第i(i>=1) 个对象时,前面的V[0],V[1],…,V[i-1) 已经排好序,这时,用V[i]的关键码与V[i-1],[i-2]...的关键码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的对象则向后移。
由此可知,直接插入排序法的关键码比较次数与对象的初始排列有关,准确地说,就是与可以取的值有关。在本题中,序列已经排好了序,所以其i的取值达到了最大,就是序列中元素的个数,其实也就是根本无须比较和交换,所以这种方法是最经济的。
4.A解析:单向链表插入运算的关键步骤为:q↑.link:=p↑.link;p↑.link:=q;
5.C解析:解决内存碎片的通常的手法,是把所有的空闲区合并成一片连续区域,这一过程称为紧凑。
6.B解析:栈是限定仅在表的一端进行插入和删除运算的线性表。队列是限定所有的插入都在表的一端进行,所有的删除都在表的另一端进行的线性表。串是由零个或多个字符组成的有限序列。掌握链表指针和栈、队列、串、数组的区别。
7.D解析:数据库的三级模式结构是指数据库系统是由外模式,模式和
内模式三级抽象模式构成。模式也称逻辑模式或概念模式,模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,一个数据库只有一个模式;外模式也称子模式、用户模式,可以描述某个特定的用户组所使用的那一部分数据库,一个数据库可以有多个外模式;内模式也称物理模式,是数据库内部的表示方法,厂个数据库只有一个内模式。因此本题正确答案为选项D。
8.C解析:机器语言和汇编语言都是面向机器的语言,而高级语言则是面向问题的语言。高级语言与具体的计算机硬件无关,其描述方法接近于人们对求解过程或问题的表达方式,容易理解、掌握和记忆,而且通用性和可移植性好。因此本题正确答案为选项C。
9.A解析:2NF就是不允许关系模式的属性之间有这样的函数依赖X→Y,其中X是码的真子集,Y是非主属性。3NF不允许关系模式的属性之间有这样的非平凡函数依赖X→Y,其中X不包含码,Y是非主属性。4NF是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。
10.C解析:码也称为关键字,是表中若干属性的属性组,其值唯一标识表的一个元组,由函数据依赖的关系可以看出R的码为(M,A)。
11.5或五5或五 解析:二叉排序树是将线性表中的结点信息(或结点中的关键码值和结点地址)组织成二叉树形式,以达到与二分法检索相同的检索效率,而又具有链表那样的插入、删除、运算的灵活性。
二叉树的特点:每个结点的左子树中所有的结点的关键码值都小于该结点的关键码值,而右子树中所有结点的关键码值都大于该结点的关键码值。
对于插入排序所形成的二叉树的总数目为:C(2n,n)/(n+1)=C(6,3)/4=5,其中n为关键码的个数。
12.不可靠 【解析】互联网应该屏蔽低层网络的差异,为用户提供通用的服务。具体地讲,运行IP协议的互联层可以为其高层用户提供如F 3种服务: (1)不可靠的数据投递服务;(2)面向无连接的传输服务;(3)尽最大努力投递服务。
13.分布式一个分布式数据库系统包含一个节点的集合,这些节点通过某种类型的网络连接在一起,每一个节点是一个独立的数据库系统节点
或网页WEB或网页
15.游标或Cursor游标或Cursor 解析:一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用游标机制来解决的。与游标有关的SQL语句包括:游标定义语句、游标打开语句、游标推进语句和游标关闭语句。
16.认证阶段 【解析】用户检索POP3邮件服务器的过程可以分成3个阶段:认证阶段、事务处理阶段、更新阶段。
17.结构数据结构数据 解析:数据模型可分为概念数据模型和结构数据模型
18.地理模式 【解析】顶级域的划分采用了两种模式,即组织模式和地理模式。
19.先进先出队列是先进先出的线性表,只能在一段进行插入,另一端进行删除操作
20.简单邮件传输协议或SMTP简单邮件传输协议或SMTP 解析:在电
子邮件程序向邮件服务器发送邮件时,使用的是简单邮件传输协议(SMTP);而在电子邮件程序从邮件服务器读取邮件时,可以使用邮局协议(POP3)或交互式邮件存取协议(IMAP),它取决于邮件服务器支持的协议类型。
21.D
22.B
23.B解析:响应比定义为系统对作业的响应时间与作业运行时间的比值。最高响应比作业优先算法优先选择响应比最高的作业。对JOB1,JOB2、JOB3和JOB4的响应比分别为60/80=0.75、40/20=2、10/40=0.25和0/35=0,因此首先被调度的作业是JOB2,正确答案为选项B。
24.B
25.D
26.D
27.C解析:对具有相同关键字的关系模式,如果他们的处理主要是查询操作,且常在一起,可将这列关系模式进行合并。掌握关系数据库的逻辑结构设计过程,如何正确运用模式评价、优化模式、分解。
28.A
29.B
30.D
31.n【审题关键句】以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,大小写不变,其他字符不变。
n【解题思路】
n①定义整型循环变量i、j。
n②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于maxline,实现对文章每行的处理。第二层for循环中,循环变量J从0开始,依次递增直到其值大于或等于strlen(xx[i]),在循环体中,利用if
条件语句判断如果xx[i][j]的值为字符’a’,则把xx[i][j]的值设置为字符’2’。否则如果XX[i][D]的值在小写字符’at与’2’之间,则把xx[i][j]的值减1,把其值变成其前一个字符的ASCII码。
n【参考答案】
nn
32.n【审题关键句】个位+于位与百位+十位,奇数,偶数,整除,从大到小排序。
n【解题思路】
n本题类似第24套试题,通过审题可以发现主要是对四位数的筛选条件有所不同,体现在两个方面:①分解后重新组合成十位数的方式不同,参考答案的第8、9条语句重新指定两位数的组合方式;②新组合的两位数的奇偶性判断及整除判断,参考答案的第10条语句。
n本题第10条语句中各条件表达式之间的关系有些复杂,大致思路是:①首先判断新组合的两位数的十位不为0,即表达式“gwbw”;②再判断新组合的第一个两位数为偶数,第二个两位数为奇数,且两个两位数中至少有一个能被17整除的情况,两个整除关系表达式式要用或运算符(11)连接,且用括号括起来先计算或运算,再与奇偶性判断表达式进行与运算;③最后,在判断新组合的第一个两位数为奇数,第二个两位数为偶数,且两个两位数中至少有一个能被17整除的情况(各表达式之间的连接关系同第2步)。完成以上3部分的表达式设计后,再通过与运算将3部分表达式连接起来。
n【参考答案】
nn
33.n【审题关键句】大于后连续5个数,奇数,从小到大排序。
n【解题思路】本题类似第35套试题,通过审题可以发现主要有两个不同点:①判断数值为奇数,可通过a[i]%2进行判断,参考答案的第4条语句;②要求进行比较的元素大于后连续5个数,因此在设置判断条件时,作为比较的两个数之间应该是大于关系,参考答案的第4条语句。
n【参考答案】
nn
34.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
35.n【审题关键句】读入数值,奇数个数,偶数个数,数组下标为奇数的平均值。
n【解题思路】
n本题类似第42套试题,通过审题可以发现仅有一个不同点,即本题是计算数组下标为奇数的元素的平均值,参考答案的第6条语句。
n【参考答案】
nn
36.n【审题关键句】读取正数,统计个数,右移后为奇数的个数及平均值。
n【解题思路】
n本题类似第44套试题,通过审题可以发现仅有一个不同点,即参与平均值计算的元素是数组xx[i]右移一位之后为奇数的元素,参考答案的第9条语句。
n【参考答案】
nn
37.n【审题关键句】以行为单位从字符串左边部分降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理。
n【解题思路】
n①定义循环变量i、j、k和整型变量len、p。
n②第一层for循环中,循环变量i从0开始,依次递增直到其值等于20,实现对20行数据的逐行处理。在循环体中,对于i行首先调用函数strlen(xx[i])求得第i行字符串的长度,并把其值赋给变量len,再用1en除以2,得到第i行字符串长度的一半,赋给变量P。在第二层for循环中,循环变量J从0开始,依次递过来增直到其值等于(p-1),在第三层for循环中,循环变量k从J+1开始,依次递过来增直到其值等于P,比较字符xx[i][j]ASCII码值与xx[i][k]ASCII码值的大小,如果字符xx[i]啪的ASCII码值小于xx[i][k]的ASCII码值,则两者进行互换实现对第i行字符串左半部分的字符串按降序排列。
n③用变量len的值对2求余数,如果余数为1,则调用函数字符串拷贝函数strcpy,把从字符串xx[i]+P+1开始直到字符串xx[i]的结尾的子字符拷贝到字符串变量str中,再调用字符串连接函数stmcat把字符串xx[i]的中间字符连接到字符串变量str的后面,再调用字符串连接函数stmcat把字符串xx[i]的左半部分的子字符串连接到变量str的后面;如果余数不等于1,则调用字符串拷贝函数strcpy,把从字符串xx[i]+P开始直到字符串xx[i]的结尾的子字符拷贝到字符串变量str中,再调用字符串连接函数stmcat把字符串xx[i]的左半部分的子字符串连接到变量str的后面,实现字符串xx[i]左右部分子字符串的交换。
n④调用字符串拷贝函数strcpy,把字符串变量str的值拷贝到字符串xx[i],实现把排序后的结果仍按行重新存入字符串数组XX中。
n【参考答案】
n
n
38.n【审题关键句】个位+千位与百位+十位,偶数,整除,从大到小排序。
n【解题思路】
n本题类似第24套试题,通过审题可以发现主要是对四位数的筛选条件有所不同,体现在两个方面:①分解后重新组合成两位数的方式不同,参考答案的第8、9条语句重新指定两位数的组合方式:②新组合的两位数的偶数的判断及整除判断,参考答案的第10条语句。注意,两个整除关系表达式要用或运算符(||)连接,且用括号括起来先进行整除运算(因为或运算级别比与运算级别低,因此要括起来),再与奇偶性判断表达式进行与()运算。
n【参考答案】
nnn
39.n【审题关键句】100以内(含l00)满足i、i+4、i+10都是素数的整数的个数以及这些i之和。
n【解题思路】
n①首先定义循环变量i,然后将i的值赋初值为3,每循环一次则将i的值加1,直到i<90。
n②在for循环中,每执行一次循环则调用函数isPrime(该函数具体的算法已经在源程序中给出,直接用即可),对i、 i+4、i+10是否同时是素数进行判断,如果这三个数同时为素数,则计数变量cnt值加1,同将
时将变量i的值累加到sum上。
n【参考答案】
nn
40.n【审题关键句】以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,大小写不变,其他字符不变。
n【解题思路】
n①定义整型循环变量i、i。
n②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于maxline,实现对文章每行的处理。第二层for循环中,循环变量j从0开始,依次递增直到其值等于strlen(xx[i]),在循环体中,利用if条件语句首先判断)xx[i][j]的值是否在小写字符字符’a’~’z’之间,然后,再判断在此范围之内的小写字母,如果是z,则该字符转换为a,如果字符不是z,则将其改写成它的下一个字母。
n【参考答案】
nnn
41.【解题思路】数据库性能优化的基本原则就是通过尽可能少的磁盘访问获得所需要的数据。SQL SERVER性能优化一般从数据库设计、应用程序编码、硬件优化、数据库索引、SQL语句、事务处理几个方面人手考虑问题。(1)分析阶段:在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求吸引了我们大部分的注
意力,但必须注意的是,性能往往是很重要的非功能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能有各种需求量化的指标。(2)设计阶段:例如数据库逻辑设计规范化;合理的冗余;主键的设计;外键的设计;字段的设计;数据库物理存储和环境的设计;数据库的物理存储、操作系统环境及网络环境的设计,皆使得我们的系统在将来能适应较多用户的并发操作和较大的数据处理量。这里需要注意文件组的作用,适用文件组可以有效的把I/O操作分散到不同的物理硬盘,提高并发能力。(3)系统设计:整个系统的设计,特别是系统结构的设计对性能具有很大的影响。对于一般的OLTP系统,可以选择C/S结构、三层的C/S结构等,不同的系统结构其性能的关键也有所不同。系统设计阶段应归纳某些业务逻辑在数据库编程阶段实现,数据库编程包括数据库存储过程、触发器和函数。用数据库编程实现业务逻辑的好处是减少网络流量并能更充分利用数据库的预编译和缓存功能;索引设计阶段可以根据功能和性能的需求进行初步的索引设计,这里需要根据预计的数据量和查询来设计索引,可能与将来实际使用时有所区别。(4)编码阶段:编码阶段首先需要所有程序员具备优化意识,也就是在实现功能的同时具备考虑优化性能的思想。数据库是能进行集合运算的工具,所谓集合运算实际是批量运算,即是尽量减少在客户端进行大数据量的循环操作,而用SQL语句或者存储过程代替。这个阶段主要是注意在SQL语句等方面的优化,如:尽量少做重复的工作,用SELECT后跟需要的字段代替SELECT*语句,注意事务和锁,注意I临时表和表变量的用法,慎用游标和触发器,尽量使用
索引等。(5)硬件优化:RAID(独立磁盘冗余阵列)是由多个磁盘驱动器(一个阵列)组成的磁盘系统。通过将磁盘阵列当作一个磁盘来对待,基于硬件的RAID允许用户管理多个磁盘。使用基于硬件的RAID与基于操作系统的RAID相比较可知,基于硬件的RAID能够提供更佳的性能,如果使用基于操作系统的RAID,那么它将占据其他系统需求的CPU周期,通过使用基于硬件的RAID,用户在不关闭系统的情况下能够替换发生故障的驱动器。利用数据库分区技术,可均匀地把数据分布在系统的磁盘中,平衡I/0访问,避免I/0瓶颈等。(6)事务处理调优:数据库的日常运行过程中,可能面临多个用户同时对数据库的并发操作而带来的数据不一致的问题,如:丢失更新、脏读和不可重复读等。并发控制的主要方法是封锁,锁的含义即是在一段时间内禁止用户做某些操作以避免产生数据不一致。对于事务性能的调优,要考虑到事务使用的锁的个数(在所有其他条件相同的情况下,使用的锁个数越少,性能越好)、锁的类型(读锁对性能更有利)以及事务持有锁的时间长短(持有时间越短,性能越好)等情形。【参考答案】根据SQL Server 2008数据库的特性以及题目中的条件,综合给出以下的调优方案。(1)表结构优化:重新优化数据库设计结构,规范数据库逻辑设计;设计主键和外键;设计合适大小的字段。(2)硬件优化:购买一块同样大小的硬盘,将硬盘做成RAID5,用以提高数据库读写速度;增加服务器CPU个数;扩大服务器的内存。(3)索引优化:采用对经常作为条件查询的列设计索引,在查询中经常用到的列上建立非聚簇索引,在频繁进行范围查询、排序、分组的列上建立聚簇索引,对于有频繁进行删除、插入操作的表
不要建立过多的索引。(4)采用视图:合理使用视图和分区视图,在需要更新和删除操作不多、查询操作频繁的表上建立索引视图。(5)SQL语句优化:选择运算应尽可能先做,并在对同一个表进行多个选择运算时,选择影响较大的语句放在前面,较弱的选择条件写在后面,这样就可以先根据较严格的条件得出数据较少的信息,再在这些信息中根据后面较弱的条件得到满足条件的信息。应避免使用相关子查询,把子查询转换成联结来实现。字段提取按照“需多少,提多少’’的原则,避免“SELECT*”,“SELECT*”需要数据库返回相应表的所有列信息,这对于一个列较多的表无疑是一项费时的操作,采用存储过程,使用存储过程提高数据处理速度。
42.存储过程是由PL/SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调用即可。使用存储过程具有以下优点:其已经编译和优化过了,所以运行效率高,提供了在服务器端快速执行SQL语句的有效途径;存储过程降低了客户端和服务器之间的通信量;方便实施企业规则,当企业规则发生变化时只要修改存储过程,而无需修改其他应用程序。创建存储过程:create procedure过程名@[参数名][类型],@[参数名][类型]/*过程首部*/AsDeclare/*as下面对应的
PRODUCT@商品号int,@年份int,@毛利int outputASDECLARE@某
商品销售量int,@某商品进价int,@某商品销售单价int/*中间变量定义:*/BEGINSelect@某商品进价=单价from商品表where@商品号=商品号Select@某商品销售单价=销售单价,@某商品销售量=count(*)from销售表where@商品号=商品号and销售时间=@年份IF@某商品进价is NULL THEN/木判断该商品是否存在*/ROLLBACK;RETURN;END IFIF@某商品销售单价is NULL THEN/*判断该两晶是否可卖*/ROLLBACK;RETURN;END IFSET@毛利=(@某商品销售单价-@某商品进价)*@某商品销售量GO
43.C数据库性能优化和数据库的外部环境有很大关系,例如在网络带宽过窄的情况下导致数据库速度访问缓慢时,则单独对数据库本身优化无法取得很好的效果;物化视图是预先计算并保存表连接或聚集等耗时较多的操作结果,这样,在执行查询时大大提高了读取速度。物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性,物化视图需要占用存储空间,当基表发生变化时,物化视图可以手动刷新也可以定时自动刷新;存储过程是相当于加载到数据库上的模块,因此再次运行时不用重新编译,但其与数据库管理系统绑定,因此如果在更改数据库管理系统时,需要重新绑定存储过程。在数据库性能优化期间有可能改动原有的符合范式。
44.B在“Windows身份验证模式”下,所有Windows用户登陆到SQL
Server服务器都无需再提供用户名和密码,但SQL Server会从用户登录到Windows时提供的用户名和密码查找当前用户的信息,判断其是否
是SQL Server的合法用户,不是,则拒绝登录。