全国计算机三级数据库技术上机试题100道
计算机等级三级《数据库技术》考试题库

xx年计算机等级三级《数据库技术》考试题库1.设有关系模式R(A, B, C, D), 其函数依赖集为F={A一>D, B一>D, C一>D}。
如果将R分解为R1(A, B, C)和R2(C, D), 那么该分解是( )。
A)同时保持函数依赖和无损连接的分解B)保持函数依赖但不保持无损连接的分解C)保持无损连接但不保持函数依赖的分解D)既不保持函数依赖也不保持无损连接的分解2.下面关于模式分解的说法, 错误的选项是( )。
A)分解并不总能提高查询效率B)分解通常使得涉及属性少的查询执行效率更高C)分解通常使得简单的更新事务执行效率更高D)分解总是能降低存储空间的要求, 因为它能消除冗余数据3.设有关系表: 职工(职工号, 姓名, 领导职工号), 其中职工号是主码, 领导职工号是外码。
当前表中没有任何数据。
现在依次向该表中插入如下数据(1)(e1, Tom, e2)(2)(e3, Jerry, null)(3)(null, F00, null)(4)(e2, Fake, e2)(5)(el, Ghost, e3)(6)(e4, Wh0, el)那么最终该表中有( )行数据。
A)2B)3C)4D)54.数据库物理设计阶段是根据数据库逻辑设计的结果设计适宜的数据库物理结构。
以下关于数据库物理设计的说法, 错误的选项是( )。
A)物理设计着眼于数据库底层的物理存储与存取, 与和硬件环境及数据库管理系统密切相关B)物理设计时需要合理安排不同的存储介质, 索引文件一般存储在高速磁盘中, 日志文件可以考虑存储在磁带中C)物理设计过程中需要考虑设置合理的数据库管理系统参数和操作系统相关参数D)物理设计过程中需要考虑RAID级别、操作系统的文件管理机制、数据库管理系统支持的索引类型5.三层浏览器/效劳器架构是现在比拟流行的应用系统架构。
以下关于此架构的说法, 错误的选项是( )。
A)表示层使用Web浏览器实现, 位于客户端, 一般无需安装其他程序B)数据层位于数据库效劳器, 由DBMS完成数据存储和数据存取等数据管理功能C)此架构将人机交互、应用业务逻辑和数据管理三类功能别离, 提高了可维护性D)与二层的客户/效劳器架构相比, 此架构在交互性、运行速度方面优势明显6.设有以下关于数据库分析、设计与实现的工作:Ⅰ.用概念数据模型表示数据对象的特征及其相互间的关联关系Ⅱ.进行数据库的备份与恢复等日常维护Ⅲ.在ER图的根底上确定数据库关系模式Ⅳ.调整数据库逻辑模式, 确定文件组织与存取方式, 评估物理模式V.考虑分析DBAS运行过程中备份数据库策略, 如备份时问点和备份周期Ⅵ.事务和应用程序的编码及测试上述工作中, 属于DBAS系统设计阶段工作的是( )。
全国计算机等级考试三级数据库技术试题及答案

全国计算机等级考试三级数据库技术试题及答案(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项写在答题卡相应位置上,答在试卷上不得分。
(1)下列选项中不属于结构化程序设计方法的是A)自顶向下B)逐步求精C)模块化D)可复用(2)两个或两个以上模块之间关联的紧密程度称为A)耦合度B)内聚度C)复杂度D)数据传输特性(3)下列叙述中正确的是A)软件测试应该由程序开发者来完成B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护D)以上三种说法都不对(4)按照“后进先出”原则组织数据的数据结构是A)队列B)栈C)双向链表D)二叉树(5)下列叙述中正确的是A)线性链表是线性表的链式存储结构B)栈与队列是非线性结构C)双向链表是非线性结构D)只有根结点的二叉树是线性结构(6)对如下二叉树进行后序遍历的结果为A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为A)32B)31C)64D)63(8)“商品”与“顾客”两个实体集之间的联系一般是A)一对一B)一对多C)多对一D)多对多(9)在E—R图中,用来表示实体的图形是A)矩形B)椭圆形C)菱形D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMSB)DBMS包含DB和DBSC)DBS包含DB和DBMSD)没有任何关系(11)常见的数据模型有3种,它们是A)网状、关系和语义B)层次、关系和网状C)环状、层次和关系D)字段名、字段类型和记录(12)在以下叙述中,正确的是A)ACCESS只能使用系统菜单创立数据库应用系统B)ACCESS不具备程序设计能力C)ACCESS只具备了模块化程序设计能力D)ACCESS具有面向对象的程序设计能力,并能创立复杂的数据库应用系统(13)不属于Access对象的是A)表B)文件夹C)窗体D)查询(14)表的组成内容包括A)查询和字段B)字段和记录C)记录和窗体D)报表和字段(15)在数据表视图中,不能A)修改字段的类型B)修改字段的名称C)删除一个字段D)删除一条记录(16)数据类型是A)字段的另一种说法B)决定字段能包含哪类数据的设置C)一类数据库应用程序D)一类用来描述Access表向导允许从中选择的字段名称(17)现有一个已经建好的“按雇员姓名查询”窗体,如下图所示。
国家三级(数据库技术)机试模拟试卷100(题后含答案及解析)

国家三级(数据库技术)机试模拟试卷100(题后含答案及解析)题型有:1. 程序设计题程序设计题1.编写函数jsValue,它的功能是:求Hofstadter数列中的第m项H(m)(m <1000),结果由函数返回。
其中数列H(n)的定义为:H(1)=H(2)=1 H(n)=H(n-H(n-1))+H(n-H(n-2))(n>2) 最后调用函数writeDat( )读取50个数据m,分别得出结果且把结果输出到文件out.dat中。
例如:当t=997时,函数值为605。
部分源程序已给出。
请勿改动主函数main( )和写函数writeDat( )的内容。
#include<stdio. h>int jsValue(int m) { main ( ) { int m; m=300; printf (“m=%d, k-%d\n”, m, jsValue (m)); writeDat ( ); writeDat ( ) { FILE *in, *out; int i,m,s; in= fopen ( “in. dar” , “r” ); out=f open ( “out. dar” , “w” ); for (i=0; i<50; i++) {fscanf (in, “%d”, &m);s=jsValue (m);printf( “%d\n”, s );fprintf (out, “%d\n” , s ); } fclose (in);fclose (out);正确答案:int jsVelue(int m) { if (m<0) return -1;/*参数错误,正常运行不会出现*/ if(m==1 || m==2) return 1;/*初值H[1]:H[2]=1*/ else return jsValue (m-jsValue (m-1)) +jsValue (m-jsValue (m-2));/*调用jsValue递归计算H[k]*/ } /*解法二,递推*/ int jsValue(int m) { int H[1000],i;H[1]=1;H[2]=1;/*初值H[1]=H[2]=1*/ for (i=3;i<=m;i++) { H[i] = H[i-H[i-1)] +H[i-H[i-2]];/*H(k)(k<i)的值都己计算完成,直接使用*/ } return H[m];/*返回所求的值*/} 解析:类型:序列计算。
全国计算机三级考试数据库技术上机练习题及答案

全国计算机三级考试数据库技术上机练习题及答案(1)1.调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。
请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。
最后把结果输出到文件OUT.dat中。
例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。
注意:部分程序已经给出。
请勿改动主函数main()和输出数据函数rwdata()的内容。
【答案】void primenum(int m, int k, int array[]){ int value = m+1;int half, n = 0, i;while(1){ half = value/2;for (i=2; i<=half; i++)if (value%i == 0)break;if (i > half){ array[n] = value;n++;}if (n >= k)break;value++;}}2.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。
函数RData()读取这200个数存放到数组original 中。
请编写函数numAscend(),其功能是:要求按每个数的后3位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行降序排列。
最后调用函数WData(),把结果result输出到文件OUT.dat中。
例如,处理前:6012 5099 9012 7025 8088处理后:9012 6012 7025 8088 5099【答案】void numascend(){ int i, j, data;for (i=0; i<199; i++)for (j=i+1; j<200; j++){ if (original[i]%1000 > original[j]%1000){ data = original[i];original[i] = original[j];original[j] = data;}else if (original[i]%1000 == original[j]%1000){ if (original[i] < original[j]){ data = original[i];original[i] = original[j];original[j] = data;}}}for (i=0; i<10; i++)result[i] = original[i];}3.已知文件IN.dat中存有100个产品销售记录,每个产品销售记录由产品代码code(字符型4位)、产品名称name(字符型10位)、单价uprice(整型)、数量amount(整型)、金额sum(长整型)5部分组成。
计算机三级《数据库技术》测试题含答案

计算机三级《数据库技术》测试题含答案计算机三级《数据库技术》测试题含答案一、选择题1.以下关于数据库备份的说法中,正确的选项是__________。
A.对系统数据库和用户数据库都应采用定期备份的策略B.对系统数据库和用户数据库都应采用修改后即备份的策略C.对系统数据库应采用修改后即备份的策略,对用户数据库应采用定期备份的策略D.对系统数据库应采用定期备份的策略,对用户数据库应采用修改后即备份的策略2.以下关于SQL Server备份设备的说法中,正确的选项是__________。
A.备份没备可以是磁盘上的一个文件B.备份设备是一个逻辑设备,它只能建立在磁盘上C.备份设备是一台物理存在的有特定要求的`设备D.一个备份设备只能用于一个数据库的一次备份3.以下关于差异备份的说法中,正确的选项是__________。
A.差异备份备份的是从上次备份到当前时间数据库变化的内容B.差异备份备份的是从上次完好备份到当前时间数据库变化的内容C.差异备份仅备份数据,不备份日志D.两次完好备份之间进展的各差异备份的备份时间都是一样的4.以下关于日志备份的说法中,错误的选项是__________ 。
A.日志备份仅备份日志,不备份数据B.日志备份的执行效率通常比差异备份和完好备份高C.日志备份的时间间隔通常比差异备份短D.第一次对数据库进展的备份可以是日志备份5.设有如下备份操作:现从备份中对数据库进展恢复,正确的恢复顺序为。
A.完好备份1,日志备份1,日志备份2,差异备份1,日志备份3,日志备份4B.完好备份1,差异备份1,日志备份3,日志备份4C.完好备份1,差异备份1D.完好备份1,日志备份4二、填空题1.SQL Server 2023支持的三种恢复形式是__________、__________和 __________。
2.对于数据库备份,SQL Server 2023支持的三种数据库备份方式是__________ 、和__________ 。
全国计算机三级《数据库技术》练习题及答案

全国计算机三级《数据库技术》练习题及答案1.以下属于非容器类控件的是(b)A.FormbelC.pageD.Container2.不可以作为文本框控件数据的是(d)A.数值型字段B.内存变量C.字符型字段D.备注型字段3.视图设计器中比查询设计器中多出的选项卡是(d)A.字段B.排序依据C.联接D.更新条件4.在"添加表和视图"窗口,"其他"按钮的作用是让用户选择(c)A.数据库表B.视图C.不属数据库的表D.查询5.视图不能单独存在,它必须依赖于(b)A.视图B.数据库C.数据表D.查询6.默认查询的输出形式是(d)A.数据表B.图形C.报表D.浏览7.实现多查询的数据可以是(c)A.远程视图B.数据库C.数据表D.本地视图8.有关@…SAY…GET…语句中的校验子句表达正确的选项是(c)A.RANGE子句是非强制校验,如果输入的数据超过或等于给定上、下限,那么提示出错B.VALID子句是强制校验,如果输入的数据使条件表达式为真或数值表达式的值不等于零,那么报警并提示出错C.RANGE非强制校验,只有当的变量发生了变化,并按了回车键才予以校验,在给定的初值超过上限或下限时,如果是用光标键移出当前区,那么不会提示无效。
D.VALID强制校验,在初值使条件表达式为假或使数值表达式为零时,只要按下回车键,就实施校验,并提示正确的数据范围9.下面语句()的格式是正确的。
BA.@10,10,20,20CLEARB.@10,10C.@10.10,D.CLEARFROM10,10TO20,2010.有关自定义函数的表达,正确的选项是(c)A.自定义函数的调用与标准函数不一样,要用DO命令B.自定义函数的最后完毕语句可以是RETURN或RETRYC.自定义函数的RETURN语句必须送返一个值,这个值作为函数返回值D.调用时,自定义函数名后的括号中一定写上形式参数11.下面有关命令SETDEVICETOPRINTER的表达正确的选项是(c)A.该命令的功能是开关打印设备B.该命令的功能是将打印机联机C.该命令的功能是设置@…SAY命令的输出定向为打印机D.该命令的功能是设置"?"或"??"命令的输出定向为打印机12.有关SCAN循环构造,表达正确的选项是(b)A.SCAN循环构造中的LOOP语句,可将程序流程直接指向循环开始语句SCAN,首先判断EOF()函数的真假B.在使用SCAN循环构造时,必须翻开某一个数据库C.SCAN循环构造的循环体中必须写有SKIP语句D.SCAN循构造,如果省略了子句、FOR和WHILE条件子句,那么直接退出循环13.有关FOR循环构造,表达正确的选项是(c)A.对于FOR循环构造,循环的次数是的B.FOR循环构造中,可以使用EXIT语句,但不能使用LOOP语句C.FOR循环构造中,不能人为地修改循环控制变量,否那么会导致循环次数出错D.FOR循环构造中,可以使用LOOP语句,但不能使用EXIT语句14.有关@…SAY…GET…语句中的功能符和格式符的使用正确的选项是(d)A.PICTURE指定的功能符是位对位进展格式控制,即一对一格式化,功能符使用时不用字符定界符B.FUNCTION子句指定的格式符能控制所有位的格式,即整体格式化,格式符使用时要用字符定界符C.FUNCTION子句既可以使用格式符也可以使用功能符,格式符前面必须加符号@二者之间用空格分开D.PICTURE子句既可以使用格式符也可以使用功能符,功能符前面必须加符号@。
全国计算机等级三级数据库上机题库100题
{
temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
}
}
for(i=0;i<10;i++) /*将排序后的前10个数存入数组bb中*/
bb[i]=aa[i];
}
7. 函数ReadDat( )的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD( ),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat( )把结果xx输出到文件OUT7.DAT中。
/*如果4位数各位上的数字均是奇数*/
{
b[cnt]=a[i]; /*将满足条件的数存入数组b中*/
cnt++; /*统计满足条件的数的个数*/
}
}
for(i=0;i<cnt-1;i++) /*将数组b中的数按从大到小的顺序排列*/
for(j=i+1;j<cnt;j++)
{
a4=a[i]/1000; /*求4位数的千位数字*/
a3=a[i]%1000/100; /*求4位数的百位数字*/
a2=a[i] %100/10; /*求4位数的十位数字*/
a1=a[i] %10; /*求4位数的个位数字*/
if(a4%2!=0 && a3%2!=0 && a2%2!=0 && a1%2!=0)
【答案】
void jsVal()
计算机三级《数据库技术》训练题及答案
计算机三级《数据库技术》训练题及答案一、选择题1. 以下哪一个不是数据库管理系统(DBMS)的主要功能?A. 数据定义B. 数据操纵C. 数据查询D. 数据加密答案:D2. 数据库系统的核心是?A. 数据模型B. 数据库管理系统C. 数据字典D. 数据库设计答案:B3. 以下哪种数据库模型属于非关系模型?A. 层次模型B. 关系模型C. 网状模型D. 星型模型答案:C4. 以下关于SQL语言的描述,错误的是?A. SQL语言是一种过程性语言B. SQL语言是一种非过程性语言C. SQL语言支持事务处理D. SQL语言支持数据定义、数据操纵和数据查询答案:A5. 以下哪个SQL语句用于创建视图?A. CREATE TABLEB. CREATE VIEWC. CREATE INDEXD. CREATE PROCEDURE答案:B二、填空题6. 数据库系统的三级模式结构包括外模式、概念模式和______。
答案:内模式7. 在关系数据库中,完整性约束主要包括实体完整性、______和用户定义的完整性。
答案:参照完整性8. SQL语言中,用于删除数据的命令是______。
答案:DELETE9. 数据库管理系统通常基于某种数据模型,目前广泛使用的数据模型是______。
答案:关系模型10. 在数据库设计中,将现实世界中的事物抽象为数据库中的表的过程称为______。
答案:数据建模三、判断题11. 数据库系统只能支持关系数据库。
答案:错误12. 数据库管理系统具有自动备份和恢复功能。
答案:正确13. SQL语言是一种完全的过程性语言。
答案:错误14. 数据库系统中的视图实质上是一个虚表。
答案:正确15. 在关系数据库中,主键可以重复,但候选键可以不唯一。
答案:错误四、简答题16. 简述数据库系统的特点。
答案:数据库系统的特点如下:(1)数据结构化:数据库系统采用数据模型来表示和存储数据,使数据具有较好的结构化程度。
2022年3月全国计算机三级数据库技术真题
2022年3月全国计算机三级数据库技术真题(考试时间120分钟,满分100分)一、选择题(每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)现代计算机系统工作原理的核心之一是"存储程序",最早提出这一设计思想的是()A)艾兰图灵B)戈登摩尔C)冯诺依曼D)比尔盖茨(2)总线用于在计算机部件之间建立可共享连接的信息传输通道。
() 不属于I/O总线。
(3)下列关于局域网的叙述中,哪一条是正确的()A)地理覆范围大B)误码率高C)数据传输速率低D)不包含OSI参考模型的所有层(4)从邮件服务器读取邮件所采用的协议是()。
A)SMTPB)POP3C)MIMED)EMAIL(5)为加强网络之间的安全设置了一项功能,它可以控制和监测网络之间的信息交换和访问,这一功能是()。
A)消息认证B)访问控制C)文件保护D)防火墙(6)通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统,并借助SaaS、PaaA、IaaS、MSP等商业模式把该计算能力分布到终端用户手中,这种应用模式称为()。
A)云计算B)过程控制C)计算机辅助系统D)人工智能(7)下列关于数据结构基本概念的叙述中,哪一条是不正确的()A)数据是采用计算机能够识别、存储和处理的方式,对现实世界的事物进行的描述B)数据元素(或称结点、记录等)是数据的基本单位C)一个数据元素至少由两个数据项组成D)数据项是有独立含义的数据最小单位(8)下列与数据的逻辑结构有关的叙述中,哪一条是不正确的()A)数据的逻辑结构抽象地反映数据元素间的逻辑关系B)数据的逻辑结构分为线性结构和非线性结构C)树形结构是典型的非线性结构D)数据运算的具体实现在数据的逻辑结构上进行(9)双链表的每个结点包括两个指针域。
其中rlink指向结点的后继,llink指向结点的前驱。
最新计算机三级数据库上机考试试题
最新计算机三级数据库上机考试试题数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。
下文为大家搜集整理的是计算机三级数据库技术考试题,希望能帮助大家好好复习,早日通过考试!第一题大于m的k个素数int i,j,num;int half;num=0;for(i=m+1;num{half=i/2;for(j=2;j<=half;j++)if(i%j==0)break;if(j>half){xx[num]=i;num++;}}%%%%%%%%%%%%%%第二题各位数字是0,2,4,或8 //15题个十百千满足一定条件int i,j,t;int thou,hun,ten,data;for(i=0;i{thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if((thou%2==0)&&(hun%2==0)&&(ten%2==0)&&(data%2 ==0)){b[cnt]=a[i];cnt++;}}for(i=0;ifor(j=i+1;j{if(b[i]{t=b[i];b[i]=b[j];b[j]=t;}}%%%%%%%%%15 27题千位-百位-十位-个位大于0 的个数并进行排序%%%%%%%28题重新组合两个十位数ab=thou*10+ten,cd=data*10+hun%%29题同 28相似 48题千位+百位==十位+个位然后满足条件排序% 49 类似再加上统计平均值 51题类似组合数满足素数条件 52题类似条件多 59题 68题 69题% 53题 54题此类型的`题 72题 76题条件比较复杂 77题 78题80题 81题85题 86题 87题 89题int i,j,t;int thou,hun,ten,data;for(i=0;i{thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if((thou<=hun)&&(hun<=ten)&&(ten<=data)&&(a[i]%2== 0)){b[cnt]=a[i];cnt++;}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){t=b[i];b[i]=b[j];b[j]=t;}%%%%%第三题小写字母o问题int i,j,k,m;int len;for(i=0;i{char pp[80]={0}; %%%%%%%%赋初值切记切记len=strlen(xx[i]);j=len-1;while((j>=0)&&(xx[i][j]!='o'))j--;if(j<0)continue;for(k=j+1,m=0;kpp[m]=xx[i][k];for(k=0;k{if(xx[i][k]!='o'){pp[m]=xx[i][k];m++;}}strcpy(xx[i],pp); %%%%%%%处理结果} %%%%%%%%%%%%%%%%%%%第四题单词倒排int i,j;int len;for(i=0;ifor(j=0;j{if (isalpha(xx[i][j])||xx[i][j]==' ');elsexx[i][j]=' ';}for(i=0;i{char tt[80]={0};char pp[80]={0};int k,m;k=0;len=strlen(xx[i]);j=len-1;while(1){while((isalpha(xx[i][j]))&&(j>=0)){for(m=k;m>=0;m--)pp[m+1]=pp[m];pp[0]=xx[i][j];k++;j--;}strcat(tt,pp);strcpy(pp,"");k=0;if (j<0)break;while((!isalpha(xx[i][j]))&&(j>=0)){for(m=k;m>=0;m--) ///注意m>=0写法一定要正确pp[m+1]=pp[m];pp[0]=xx[i][j];k++;j--;}strcat(tt,pp);strcpy(pp,"");k=0;if (j<0)break;}strcpy(xx[i],tt);}%%%%%%%%%%%%%第五题后三位升序,如相等原值降序int i,j,t;for(i=0;i<200-1;i++)for(j=i+1;j<200;j++){if(aa[i]%1000>aa[j]%1000){t=aa[i];aa[i]=aa[j];aa[j]=t;}else if((aa[i]%1000==aa[j]%1000)&&(aa[i]{t=aa[i];aa[i]=aa[j];aa[j]=t;}}for(i=0;i<10;i++)bb[i]=aa[i];%%%%%%%%%%%第7题销售记录代码大--小金额大--小12题 13题%%%%%%%%%% 31 题 32 题类似 38题 42题 47题 61题 99题int i,j;PRO t;for(i=0;ifor(j=i+1;j{if(strcmp(sell[i].dm,sell[j].dm)<0) ///////都不用“=”{t=sell[i];sell[i]=sell[j];sell[j]=t;}else if((strcmp(sell[i].dm,sell[j].dm)==0)&&(sell[i].je{t=sell[i];sell[i]=sell[j];sell[j]=t;}}%%%%%%%%%%第 8 题字符加密小于等于 32,大于130不变第18题 36题 37题 56题 62题一定要看请加密函数 *13%256%%%%%%%%%%%%%%% 74 题很奇怪的现象用 int 不对原字符数组是什么就定义为什么徐超补充做题时就定义为unsigned char% 96题 97 题 98题int i,j;unsigned char t; //////注意变量的类型切记切记 int 不对for(i=0;ifor(j=0;j{t=xx[i][j]*11%256;if(t<=32||t>130);elsexx[i][j]=t;}//////////int i,j;unsigned char t;for(i=0;ifor(j=0;j{t=xx[i][j]<<4;if(t<=32||t>100);elsexx[i][j]+=t;}%%第9 题字符数组每一行按降序排列三重循环 88 题int i,j,k;int len;char t;for(i=0;i{len=strlen(xx[i]);for(j=0;jfor(k=j+1;kif(xx[i][j]>xx[i][k]){t=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=t;}}%%%%%%%%%%%%%%%第 10题字符数组小写加1 大写不变 73 题小写减一,其余不变int i,j;for(i=0;ifor(j=0;j{if(xx[i][j]>='a'&&xx[i][j]<'z')xx[i][j]++;else if (xx[i][j]=='z')xx[i][j]='a';}【2016最新计算机三级数据库上机考试试题】。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.【考点分析】本题考查对4位整数的排序。
考查的知识点主要包括:数组元素的排序算法,if判断语句和逻辑表达式,以及求余算术运算。
【解题思路】此题属于4位数排序问题。
本题需主要解决3个问题:问题1如何取4位数的后3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果后3位相等,则按照原始4位数的大小进行升序排列)排序;问题3如何将排完序的前10个数存到数组bb中去。
本题的解题思路为:使用双循环对数组按条件进行排序,然后将排完序的前10个数存到数组bb中。
对于问题1可以通过算术运算的取余运算实现(aa[i]%1000);问题2通过包含if判断语句的起泡排序法就可以实现。
【参考答案】void jsSort(){int i,j; /*定义循环控制变量*/int temp; /*定义数据交换时的暂存变量*/for(i=0;i<199;i++) /*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000<aa[j]%1000) /*按照每个数的后3位大小进行降序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}else if(aa[i]%1000==aa[j]%1000) /*如果后3位数相等*/if(aa[i]>aa[j]) /*则要按原4位数的值进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++) /*将排序后的前10个数存入数组b中*/bb[i]=aa[i];}【易错提示】取4位数后三位的算法,if判断语句中逻辑表达式的比较运算符。
2.【考点分析】本题主要考查的知识点包括:C语言循环结构,if判断语句和逻辑表达式,以及分解多位整数的算术运算。
【解题思路】分析题干,本题除给出条件"SIX+SIX+SIX = NINE+NINE"之外,还可得出2个隐含的条件:条件1:SIX和NINE分别是3位和4位的正整数;条件2:SIX的十位数字等于NINE的百位数字,NINE的千位数字和十位数字相等。
本题解题思路:通过嵌套的循环结构可以遍历到所有的3位和4位数,对于每一个3位数及4位数的组合进行题设条件(SIX+SIX+SIX = NINE+NINE)的判断,满足条件的对其分解得到各数位的数字,再进一步判断各位数字是否满足本题隐含的条件(条件1及条件2),如果满足则个数加1,并将该3位数及4位数添加到和值中。
【参考答案】void countValue(){int i,j;int s2;int n2,n3,n4;for(i=100;i<1000;i++)for(j=1000;j<10000;j++){if(i*3==j*2){s2=i%100/10;n4=j/1000;n3=j%1000/100;n2=j%100/10;if(s2==n3&&n2==n4){cnt++;sum+=i+j;}}}}}【易错提示】隐含条件未被分析出或分析错误,整数数位分解的算术方法使用错误。
3.【考点分析】本题考查的知识点包括:C语言中文件读函数,if条件判断结构,对多个整数求平均值和方差的算法等。
【解题思路】此题属于数学类问题。
分析题干要求,得出解本题主要需解决3个问题:问题1如何实现从已打开的文件中依次读取数据到数组的操作,问题2如何分离并统计出奇数和偶数的个数及和值,并计算平均值;问题3如何计算奇数的方差。
本题的解题思路为:首先使用C语言的库函数fscanf()将文件中的数依次读入数组xx中,然后通过循环判断得出需要的数据(奇数个数、偶数个数、奇数及偶数的和);最后根据题目中已给出的公式和之前保存的数据计算出奇数的方差。
【参考答案】int ReadDat(void){FILE *fp;int i,j; /*计数器变量*/if((fp=fopen("IN.DAT","r"))==NULL) return 1;for(i=0;i<100;i++) /*依次读取整型数据放入数组xx中*/{for(j=0;j<10;j++)fscanf(fp,"%d,",&xx[i*10+j]);fscanf(fp,"\n");if(feof(fp))break; /*文件读取结束,则退出*/}fclose(fp);return 0;}void Compute(void){int i; /*定义循环控制变量*/int tt[MAX];/*定义数组保存奇数*/for(i=0;i<1000;i++)if(xx[i]%2!=0){odd++; /*计算出xx中奇数的个数odd*/ave1+=xx[i];/*求奇数的和*/tt[odd-1]=xx[i]; /*将奇数存入数组tt中*/else{even++;/*计算出xx中偶数的个数even*/ave2+=xx[i];/*求偶数的和*/}ave1/=odd;/*求奇数的平均值*/ave2/=even;/*求偶数的平均值*/for(i=0;i<odd;i++)totfc+=(tt[i]-ave1)*(tt[i]-ave1)/odd;/*求所有奇数的方差*/}【易错提示】文件操作函数fscanf()和feof()的用法,if判断语句中逻辑表达式,对方差计算公式运用错误。
4.【考点分析】本题考查对一定范围内整数的筛选。
考查的知识点主要包括:多位整数的分解算法,完全平方数判断方法,if判断语句和逻辑表达式。
【解题思路】此题属于数学类问题。
分析题干,本题需注意2个关键点:关键点1判断该数是否是完全平方数;关键点2判断该数是否有两位数数字相同。
本题的解题思路为:通过循环控制,依次判断100至999数是否满足关键点1(是否为完全平方数)。
如果是,则将该数分解出各位数数字,并判断是否有两位数数字相同,如果存在,则个数加1,并将该数存入数组中。
【参考答案】int jsValue(int bb[]){int i,j; /*定义循环控制变量*/int cnt=0; /*定义计数器变量*/int a3,a2,a1; /*定义变量存储三位数每位的数字*/for(i=100;i<=999;i++) /*在该范围中找符合条件的数*/for(j=10;j<=sqrt(i);j++)if(i==j*j) /*如果该数是完全平方数*/{a3=i/100; /*求该数的百位数字*/a2=i%100/10; /*求该数的十位数字*/a1=i%10; /*求该数的个位数字*/if(a3==a2 || a3==a1 || a2==a1) /*有两位数字相同*/{bb[cnt]=i; /*则把该数存入数组bb中*/cnt++;} /*统计满足条件的数的个数*/}return cnt; /*返回满足该条件的整数的个数*/}【易错提示】完全平方数的判断方法错误,分解整数各个数位的方法错误,if判断语句中表达式。
5.【考点分析】本题考查对一定范围内整数的筛选。
考查的知识点主要包括:多位整数的分解算法,素数的判断算法,if判断语句和逻辑表达式。
【解题思路】此题属于数学类问题。
分析题干要求,归纳出本题的2个关键点:关键点1判断该数是否为素数;关键点2判断是否满足条件:个位数字和十位数字之和被10除所得余数等于百位数字。
本题思路为:通过循环语句,依次求出所有3位数的各位数数字,并判断是否满足关键点2(个位数字和十位数字之和被10除所得余数等于百位数字),如果满足则判断该数是否为素数,如果是则个数加1,并将该数加到和值中。
判断的方法为:依次取从2到该数1/2的数去除这个数,如果有一个可被整除,则不是素数,如果循环后的数大于该数的一半就可以判定该数是一个素数。
【参考答案】void countValue(){int i,j; /*定义循环控制变量*/int half;int a3,a2,a1; /*定义变量存储3位数每位的数字*/for(i=101;i<1000;i++) /*在该范围内寻找符合条件的数*/{a3=i/100; /*求百位数字*/a2=i%100/10; /*求十位数字*/a1=i%10; /*求个位数字*/if(a3==(a2+a1)%10) /*如果个位数字与十位数字之和被10除所得余数恰是百位数字*/{half=i/2;for(j=2;j<=half;j++) /*进一步判断该数是否为素数*/if(i%j==0) break; /*如果不是素数,则跳出循环,接着判断下一个数*/if(j>half) /*如果是素数*/{cnt++; /*计算这些素数的个数cnt*/sum+=i; /*计算这些素数值的和sum*/}}}}【易错提示】素数的判断算法使用错误,分解整数各个数位的方法错误,if判断语句中逻辑表达式错误。
6.【考点分析】本题考查结构体数组的排序。
考查的知识点主要包括:结构体成员运算,字符串比较符,数组排序。
【解题思路】此题属于销售记录排序类题型。
此类题型主要考查对结构体数组的排序。
解题时,应注意3个关键点:关键点1如何按产品名称从小到大排序;关键点2如果产品名称相同;关键点3如何按金额从小到大排列。
数组排序可以用起泡法实现,起泡法的思路是:将较小的值像空气泡一样逐渐"上浮"到数组的顶部,而较大的数值逐渐"下沉"到数组的底部。
具体为第1趟用第1个记录和第2个记录进行比较,如果不符合要求,就进行交换,第2个记录和第3个记录比较,直到倒数第2个记录和最后1个记录比较完成;第2趟用第2个记录和第3个记录比较,然后第3个和第4个比较,依此类推。
本题在双循环中进行每次记录比较时,首先用字符串比较函数strcmp比较两个产品的名称,如果返回的值大于0,则这两个产品进行数据交换;如果返回值等于0,再比较两个产品的金额,如果前一个产品的金额大于后一个产品的金额,则这两个产品进行数据交换。
【参考答案】void SortDat(){int i,j; /*定义循环控制变量*/PRO temp; /*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/ for(i=0;i<99;i++) /*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0) /*按产品名称从小到大进行排列*/{temp=sell[i];sell [i]=sell[j];sell[j]=temp;}else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}模板一销售记录排序【模板速记】记忆口诀:一定义二循环三比较。