计算机三级数据库上机题库
计算机三级数据库技术(上机操作)机试模拟试卷105(题后含答案及解析)

计算机三级数据库技术(上机操作)机试模拟试卷105(题后含答案及解析)全部题型 2. 程序设计题程序设计题1.程序prog1.C的功能是:选出1000至9999范围内的所有素数,且符合下面条件;于位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的整10倍。
计算并输出这些四位自然数的个数cnt以及这些数的和sum。
请编写函数countValue( )实现程序的功能。
最后main( )函数调用函数writeDAT( )把结果cnt和SLRTI输出到out.dat文件中。
【试题程序】#include<stdio.h> int cnt,sum;void writeDAT( );void countValue( ) { } void main( ) { cnt=sum=0:countValue( );printf(”满足条件的自然数的个数=%d\n”,cnt);printf(”满足条件的自然数值的和=%d\n”.sum);writeDAT( );} void writeDAT( ) { FILE*fp;fp=fopen(“out.dat”。
“W”);fprintf(fp,“%dkn%d\n”,cnt,sum);felose(fp);}正确答案:void countValue( ){int i,j; /*定义变量*/int a1,a2,a3,a4;for(i=1000;i<=9999li++) {al=i%10; /*数位分解*/a2=i%100/10;a3=i%1000/100;a4=i/1000; for(j=2,j<iIj++) if(i%j==0) break; if(j==i&&a4+a3==a2+a1&&a4+ a3==(a1—a4)*10) /*判断条件*/{ cnt++;sum+=i; } } }。
全国计算机等级考试上机考试题库三级数据库技术2

第2套 真考题库试题一、单选题((1)~(20)每题1分,(21)~(30)每题2分,共40分)1.下列关于概念数据模型的说法,错误的是()。
A)概念数据模型并不依赖于具体的计算机系统和数据库管理系统B)概念数据模型便于用户理解,是数据库设计人员与用户交流的工具,主要用于数据库设计C)概念数据模型不仅描述了数据的属性特征,而且描述了数据应满足的完整性约束条件D)概念数据模型是现实世界到信息世界的第一层抽象,强调语义表达功能2.在数据库应用系统生命周期中,系统设计完成后就进入到系统实现与部署阶段。
下列关于数据库应用系统实现与部署阶段工作的说法,错误的是()。
A)此阶段会根据数据库逻辑结构和物理结构设计方案以及项目选择的数据库管理系统,编写相关脚本生成数据库结构B)此阶段会将用户原有数据按照新的数据结构导入到新系统中C)此阶段会进行应用系统编码和编码测试,编码测试可以使用白盒测试方法也可以使用黑盒测试方法D)此阶段如果发现系统的功能、性能不满足用户需求,应尽快进行系统升级工作3.存储管理器是数据库管理系统非常重要的组成部分。
下列关于存储管理器的说法,错误的是()。
A)存储管理器负责检查用户是否具有数据访问权限B)为了提高数据访问效率,存储管理器会将部分内存用于数据缓冲,同时使用一定的算法对内存缓冲区中的数据块进行置换C)存储管理器会为编译好的查询语句生成执行计划,并根据执行计划访问相关数据D)存储管理器以事务方式管理用户对数据的访问,以确保数据库并发访问的正确性4.下列叙述中不属于三层B/S结构数据库应用系统特点和操作特征的是()。
A)客户端使用浏览器,浏览器与Web应用服务器之间的通信使用超文本传输协议(HTTP)B)数据库服务器接受应用服务器提出的数据操作请求,对数据库进行相应的操作,并将操作结果返回给应用服务器C)这种结构使客户端和服务器能在不同的系统间通信,但对客户机配置要求较高,且应用软件维护代价也较大D)这种结构不受时空限制,使用者可以在全球任何地方,任何时间请求数据库应用系统提供的各种数据服务5.实体联系模型简称ER模型,是数据库设计常用的一种建模方法。
全国计算机等级考试上机考试题库三级数据库技术1

第1套真考题库试题一、单选题((1)~(20)每题1分,(21)~(30)每题2分,共40分)1.数据库系统的三级模式结构和二层映像功能提供了数据的逻辑独立性和物理独立性。
下列提供逻辑独立性的是()。
A)外模式/模式映像B)模式/内模式映像C)内模式/外模式映像D)模式/模式映像2.浏览器/服务器架构是现阶段非常流行的数据库应用系统架构。
在此架构中,应用服务器起到了非常重要的作用。
下列关于应用服务器的说法,错误的是()。
A)应用服务器一般运行程序代码,实现面向具体应用领域的业务规则,数据库服务器承担数据存储、管理等功能B)应用服务器会根据用户请求连接相应的数据库,获取数据并进行处理,将结果返回给用户C)应用服务器一般需具有数据访问和数据存储等功能,在数据库服务器出现问题时可以继续向用户提供服务D)应用服务器一般提供了集群、失效恢复、负载均衡等公共服务,可以大幅度提高系统性能和可靠性3.关系模型是数据库系统最常用的一种数据模型。
下列关于关系模型的说法,错误的是()。
A)关系模型中的关系是一个二维表,表中的一行对应关系中的一个元组B)按照一定的规则可以将ER模型转换为关系模型中的关系模式C)关系模型是建立在集合论的基础上的,关系模型中数据存取对用户是透明的D)关系模型中的关系模式描述关系的动态结构,其内容随用户对数据库的操作而变化4.在数据库应用系统的需求分析阶段,设有如下工作:Ⅰ.分析与描述目标系统需要完成的功能Ⅱ.分析与描述目标系统对响应时间、存储容量的要求Ⅲ.分析与描述目标系统涉及的数据范围、数据的属性特征及数据之间的关系Ⅳ.分析与描述每项功能活动需要的输入数据、业务规则及输出数据Ⅴ.分析与描述目标系统的总体结构、功能活动及各功能活动之间的关系以上属于系统功能建模内容的是()。
A)仅Ⅰ、Ⅳ和ⅤB)仅Ⅱ、Ⅳ和ⅤC)仅Ⅰ、Ⅱ和ⅢD)仅Ⅲ、Ⅳ和Ⅴ5.在概念模型中,属性用于描述事物的特征或性质。
关于属性有下列说法:Ⅰ.一个实体集中的属性名要唯一Ⅱ.属性一般用名词或名词短语命名Ⅲ.一个属性的值可以取自不同的域Ⅳ.实体集的标识属性能够唯一识别实体集中每一个实体Ⅴ.标识属性的取值不能重复,但可以为空以上说法正确的是()。
全国计算机等级考试上机考试题库三级数据库技术9

第9套新增真考试题一、单选题((1)~(20)每题1分,(21)~(30)每题2分,共40分)1.下列不属于数据库应用系统物理设计阶段活动的是()。
A)数据库物理结构设计B)数据库事务详细设计C)应用程序详细设计D)数据库备份与恢复设计2.在一个ER图中,包含三个实体集,两个二元一对多联系,两个二元多对多联系,则将该ER图转化为关系模型后,得到的关系模式个数是()。
A)4个B)5个C)6个D)7个3.DFD建模方法由四种基本元素组成,其中用来描述数据的提供者或使用者的是()。
A)数据流B)处理C)数据存储D)外部项4.从功能角度数据库应用系统可以划分为四个层次,其中负责与DBMS交互以获取应用系统所需数据的是()。
A)表示层B)业务逻辑层C)数据访问层D)数据持久层5.现有商品表(商品号,商品名,商品价格,商品描述),销售表(顾客号,商品号,销售数量,销售日期)。
关于性能优化有以下做法:Ⅰ.因为很少用到商品描述属性,可以将其单独存储Ⅱ.因为经常按照商品名查询商品的销售数量,可以在销售表中添加商品名属性Ⅲ.因为经常执行商品表和销售表之间的连接操作,可以将它们组织成聚集文件Ⅳ.因为经常按照商品号对销售表执行分组操作,可以将销售表组织成散列文件以上做法中,正确的是()。
A)仅Ⅰ和Ⅱ和ⅢB)仅Ⅰ、Ⅱ和ⅣC)仅Ⅱ、Ⅲ和ⅣD)全部都是6.已知有关系:学生(学号,姓名,年龄),对该关系有如下查询操作:SELECT学号FROM学生WHERE姓名LIKE′张%′AND年龄!=15为了加快该查询的执行效率,应该()。
A)在学号列上建索引B)在姓名列上建索引C)在年龄列上建索引D)在学号和年龄列上建索引7.已知有关系R(A,B,C),其中A是主码,现有如下创建索引的SQL 语句:CREATE CLUSTERED INDEX idx1 ONR(B)则下列说法中正确的是()。
A)idx1既是聚集索引,也是主索引B)idx1是聚集索引,但不是主索引C)idx1是主索引,但不是聚集索引D)idx1既不是聚集索引,也不是主索引8.在完成数据库的物理设计之后,就进入数据库系统的实施阶段。
全国计算机三级大数据库技术上机精彩试题100道

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的千位数字和十位数字相等。
全国计算机三级考试数据库技术上机练习题及答案

全国计算机三级考试数据库技术上机练习题及答案(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部分组成。
计算机三级数据库上机100题答案(未来教育)

;1 nruter )LLUN==))"r","TAD.NI"(nepof=pf((fi /*量变器数计*/ ;j,i tni ;pf* ELIF { )diov(taDdaeR tni 】案答考参【 。差方的数奇出算计据数的存保前之和式公的出给已中 目题据根后最�)和的数偶及数奇、数个数偶、数个数奇(据数的要需出得断判环循过通后然 �中xx组数入读次依数的中件文将)(fnacsf数函库的言语C用使先首�为路思题解的题本
/*中xx组数入放据数型整取读次依*/
;0 nruter ;)pf(esolcf } /*出退则�束结取读件文*/ ;kaerb ))pf(foef(fi ;)"n\",pf(fnacsf ;)]j+01*i[xx&,",d%",pf(fnacsf )++j;01<j;0=j(rof { )++i;001<i;0=i(rof
分其对的件条足满 �断判的)ENIN�ENIN � XIS�XIS�XIS(件条设题行进合组的数位4及 数位3个一每于对�数位4和位3的有所到历遍以可构结环循的套嵌过通�路思题解题本 。等相字数位十和字数位千的ENIN�字数位百的ENIN于等字数位
前的序完排将何如3题问�序排)列排序升行进小大的数位4始原照按则�等相位3后果如�列 排序降行进小大的位3后的数个每照按( 件条的求要目题照按何如2题问�较比行进位3后的 数位4取何如1题问�题问个3决解要主需题本。题问序排数位4于属题此 】路思题解【 。算运术算余求及以�式达表辑逻和句语断判fi�法 算序排的素元组数�括包要主点识知的查考。序排的数整位4对查考题本 】析分点考【 套一第
/*字数位百求*/ ;001/i=3a { /*数的件条合符找寻内围范该在*/ )++i;0001<i;101=i(rof /*字数的位每数位3储存量变义定*/ ;1a,2a,3a tni ;flah tni /*量变制控环循义定*/ ;j,i tni { )(eulaVtnuoc diov 】案答考参【 。数素个一是数该定 判以可就半一的数该于大数的后环循果如�数素是不则�除整被可个一有果如�数个这除去 数的2/1数该到2从取次依�为法方的断判。中值和到加数该将并�1加数个则是果如�数素
计算机三级数据库技术(上机操作)机试模拟试卷64(题后含答案及解析)

计算机三级数据库技术(上机操作)机试模拟试卷64(题后含答案及解析)全部题型 2. 程序设计题程序设计题1.编写函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。
例如,假定输入的字符串为”asd asasdfg asdas zx67 asd mklo”。
子字符串为”as”,函数返回值是6。
函数ReadWrite( )实现从数据文件in.dat中读取两个字符串,并调用函数findStr( ),最后把结果输出到文件out.dat中。
【试题程序】#include<stdio.h> #include<string.h>void ReadWrite( );int findStr(char*str.char*substr){}main( ){ char str[81],substr[3]; int n;printf(“输入原字符串:”);gets(str);printf(“输入子字符串:”); gets(substr); puts(str);puts(substr); n=findStr(str,substr); printf(“n=%d\n”,n); ReadWrite( );}void ReadWrite( ){ char str[81],substr[3],oh! int n,len,i=0; FILE*rf,*wf! rf=fopen(“in.dat”。
“r”); wf=fopen(“out.dat”,“W”); while(i<5){ fgets(str,80,rf); fgets(substr,10,rf); len=strlen(substr)一1; ch=substr[1en],if(oh==\n||ch==0xla) substr[1en]=0; n=findStr(str,substr);fprintf(wf。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:部分程序已经给出。请勿改动主函数main()和输出数据函数rwdata()的内容。
#include <conio.h>
#include <stdio.h>
void rwdata();
void primenum(int m, int k, int array[])
}
fclose(readfile);
fclose(writefile);
}
【知识点播】素数的定义:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。
【题目分析】分析题目可知,题中需要解决的问题就是Primenum函数的功能问题(rwdata函数功能题中已经给出),而Primenum函数的功能是求在指定数m之后的k个素数,因此本题的关键在于如何判断一个数是素数,之后就可以通过一个for循环来求得在m之后的k个素数了。
for (i=0; i<10; i++)
{fscanf(readfile, "%d %d", &m, &n);
primenum(m, n, array);
for (m=0; m<n; m++)
fprintf(writefile, "%d ", array[m]);
fprintf(writefile, "\n");
【答案】
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 编写程序有以下几个步骤:
第1步:首先分解出数组中两个元素的后三位,这里采用在两次循环中求出正整数original[i]和original[j]对1000的余数的方法;
{
}
main()
{int m, n, array[1000];
printf("\nPlease enter two integers:");
scanf("%d%d", &m, &n);
primenum(m, n, array);
for (m=0; m<n; m++)
printf("%d ", array[m]);
#include <conio.h>
int original[200], result[10];
void numascend()
{
}
void RData()
{FILE *in;
int i;
in = fopen("IN.dat", "r");
for (i=0; i<200; i++)
fscanf(in, "%d,", &original[i]);
if (i > half)
{array[n] = value;
n++;
}
if (n >= k)
break;
value++;
}
}
【容错分析】判断一个数m(大于1)是否素数的简单的算法:枚举2到m/2之间的整数,看能否被m整除,如果能整除,就不是素数,否则是素数。
2.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。函数RData()读取这200个数存放到数组original中。请编写函数numAscend(),其功能是:要求按每个数的后3位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行降序排列。最后调用函数WData(),把结果result输出到文件OUT.dat中。
fclose(in);
}
void WData()
{FILE *out;
int i;
out = fopen("OUT.dat", "w");
for (i=0; i<10; i++)
{printf(" %d", result[i]);
fprintf(out, "%d\n", result[i]);
}
fclose(out);
例如,处理前:6012 5099 9012 7025 8088
处理后:9012 6012 7025 8088 5099
注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。
#include <stdio.h>
#include <string.h>
printf("\n");
rwdata();
}
void rwdata()
{int m, n, array[1000], i;
FILE *readfile, *writefile;
readfile = fopen("in.dat", "r");
writefile = fopen("out.dat", "w");
1.调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。最后把结果输出到文件OUT.dat中。
}
void main()
{RData();
numascend();
WData();
}
【题目分析】首先我们来看看题中要求我们解决的问题有哪些。①按original数组中各元素数字的后3位数的大小进行升序排列,如果数值相等,则按原先的数值进行降序排列;②取出排序后的original数组中的前10个数依次存入result数组中。
【解题思路】根据素数的定义,本题采用的算法是:首先定义一个变量Value,并把m之后的数逐个赋值给该变量;然后用2~value/2数除value,如果value能被2~value/2之中的任何一个整数整除,则value不是素数,结束循环;如果value不能被2~value/2之间的任一整数整除,则退出循环,然后判断循环变量i是否大于value/2,如果大于,则value是素数,并将value值赋给array[n],然后n++;再判断n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循环,否则value加1,根据以上算法继续进行。