三级数据库上机试题与答案(完整版)
- 格式:doc
- 大小:211.50 KB
- 文档页数:60
全国计算机等级考试三级数据库技术试题及答案(考试时间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(题后含答案及解析)题型有: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];/*返回所求的值*/} 解析:类型:序列计算。
第5套 真考题库试题一、单选题((1)~(20)每题1分,(21)~(30)每题2分,共40分)(1)在数据库系统中,下列映像关系用于提供数据与应用程序间的物理独立性的是()。
A)外模式/模式B)模式/内模式C)外模式/内模式D)逻辑模式/内模式(2)关于数据库视图,下列说法正确的是()。
A)视图一定能提高数据的操作性能B)定义视图的语句可以是任何数据操作语句C)视图可以提供一定程度的数据独立性D)视图的数据一般是物理存储的(3)许多大中型企业出于多种原因建立了数据仓库,以下()不是建立数据仓库的合理理由。
A)将企业的各种应用系统集中在一起B)充分利用企业信息系统生成的各种数据C)解决企业业务应用和数据分析应用的性能冲突D)以面向主题、集成的方式合理的组织数据(4)关于数据库应用系统的设计,有下列说法:Ⅰ.数据库应用系统设计需要考虑数据组织与存储、数据访问与处理、应用设计等几个方面Ⅱ.数据库概念设计阶段,采用自上而下的ER设计时,首先设计局部ER图,然后合并各局部ER图得到全局ER图Ⅲ.在数据库逻辑设计阶段,将关系模式转换为具体DBMS平台支持的关系表Ⅳ.在数据库物理设计阶段,一般需要设计视图和关系模式的完整性约束上述说法正确的是()。
A)Ⅰ、Ⅲ和ⅣB)ⅠC)Ⅱ和ⅢD)Ⅱ和Ⅳ(5)关于数据库应用系统的需求分析工作,下列说法正确的是()。
A)通过需求分析过程,需要确定出整个应用系统的目标、任务和系统的范围说明。
B)在需求分析阶段,系统需求分析员要与用户充分沟通,并做出各类用户视图。
C)数据需求分析的主要工作是要辨识出数据处理中的数据处理流程D)数据操作响应时间、系统吞吐量、最大并发用户数都是性能需求分析的重要指标(6)根据数据库应用系统生命周期模型,完成数据库关系模式设计的阶段是()。
A)需求分析B)概念设计C)逻辑设计D)物理设计(7)在SELECT语句中,以下有关ORDER BY子句的叙述中不正确的是()。
第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.在完成数据库的物理设计之后,就进入数据库系统的实施阶段。
全国计算机三级考试数据库技术上机练习题及答案(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支持的三种数据库备份方式是__________ 、和__________ 。
计算机三级数据库技术(上机操作)机试模拟试卷36(题后含答案及解析)全部题型 2. 程序设计题程序设计题1.已知数据文件in.dat中存有300个四位数,并已调用读函数readl)at( )把这些数存入数组a中,请编写函数jsValue( ),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,冉把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。
最后nmin( )函数调用写函数writeDat( )把数组b中的数输出到文件out.dat中。
例如:7153,7+1=5+3,则该数满足条件存人数组b中,且个数cnt=cht+1。
8129,8+11=2+9,则该数不满足条件.忽略。
【试题程序】#include<stdio.h> int at3003.br3001,cnt=0;void readDat( );void writeDat( );jsValue( ) { } main( ) { int i;readDat( );jsValue( );writeDat( );printf(“cnt=%d\n”,cnt);for(i=0;i<ent;i++) printf(“b[%d]=%d\n”.i’b[i]);} void readDat( ) { FILE*fp; int i;fp=fopen(“in.dat”,“r”); for(i=0;i<300;i++) fscanf(fp,“%d,”,&a[i]);felose(fp); } void writeDat( ){FILE*fp;int i;fp=fopen(“out.dat”,“W”);fprintf(fp,“%d\n”,cnt); for(i=0;i<cnt;i++) fprintf(fp.”%d\n”,b[i]);fclose(fp);} 正确答案:jsValue( ){ int i,j;/*定义变量*/int a1,a2,a3,a4; int temp;for(i=0;i<300;i++) {a1=a[i]%10;/*数位分解*/a2=a[i]%100/10; a3=a[i]%1000/100;a4=a[i]/1000;if(a4+a3==a2+a1) /*判断条件*/b[cnt++]=a[i];} for(i=0;i<cnt 一1;i++) /*选择法排序*/for(j=i+1;j<cnt;j++) if(b[i]<b[j]) {temp=b[i]; b[i]=brj]; b[j]=temp; }}。
计算机三级《数据库技术》训练题及答案一、选择题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)数据结构化:数据库系统采用数据模型来表示和存储数据,使数据具有较好的结构化程度。
第3套真考题库试题一、单选题((1)~(20)每题1分,(21)~(30)每题2分,共40分)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,Foo,null)(4)(e2,Fake,e2)(5)(e1,Ghost,e3)(6)(e4,Who,e1)则最终该表中有()行数据。
A)2B)3C)4D)54.数据库物理设计阶段是根据数据库逻辑设计的结果设计合适的数据库物理结构。
下列关于数据库物理设计的说法,错误的是()。
A)物理设计着眼于数据库底层的物理存储与存取,与操作系统和硬件环境及数据库管理系统密切相关B)物理设计时需要合理安排不同的存储介质,索引文件一般存储在高速磁盘中,日志文件可以考虑存储在磁带中C)物理设计过程中需要考虑设置合理的数据库管理系统参数和操作系统相关参数D)物理设计过程中需要考虑RAID级别、操作系统的文件管理机制、数据库管理系统支持的索引类型5.三层浏览器/服务器架构是现在比较流行的应用系统架构。
下列关于此架构的说法,错误的是()。
A)表示层使用Web浏览器实现,位于客户端,一般无需安装其他程序B)数据层位于数据库服务器,由DBMS完成数据存储和数据存取等数据管理功能C)此架构将人机交互、应用业务逻辑和数据管理三类功能分离,提高了可维护性D)与二层的客户/服务器架构相比,此架构在交互性、运行速度方面优势明显6.设有下列关于数据库分析、设计与实现的工作:Ⅰ.用概念数据模型表示数据对象的特征及其相互间的关联关系Ⅱ.进行数据库的备份与恢复等日常维护Ⅲ.在ER图的基础上确定数据库关系模式Ⅳ.调整数据库逻辑模式,确定文件组织与存取方式,评估物理模式Ⅴ.考虑分析DBAS运行过程中备份数据库策略,如备份时间点和备份周期Ⅵ.事务和应用程序的编码及测试上述工作中,属于DBAS系统设计阶段工作的是()。
全国计算机三级考试《数据库》测试题及答案全国计算机三级考试《数据库》测试题及答案1.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修COMPUTER课程的女学生姓名,将涉及到关系(d )A.SB.SC,CC.S,SCD.S,C,SC2.SQL语言中,实现数据检索的语句是(a )A.SELECTB.INDERTC.UPDATED.DELETE3.下列SQL语句中,修改表结构的是(a )A.ALTERB.CREATEC.UPDATED.INSERT4.SQL语言具有两种使用方式,分别称为交互式SQL和(c )A.提示式SQLB.多用户SQLC.嵌入式SQLD.解释式SQL5.检索所有比王华年龄大的学生姓名、年龄和性别。
正确的SELECT语句是(a )A.SELECT SN,AGE,SEX FROM SSHERE AGE (SELECT AGE FROM S)WHERE SN=王华)B.SELECT SN,AGE,SEXFROM SWHERE SN=王华C.SELECT SN,ACE,SEX FROM SWHERE AGE (SELECT ACEWHERE SN=王华)D.SELECT SN,ACE,SEX FROM SWHERE ACE 王华AGE6.检索选修课程C2的学生中成绩最高的学生的学号。
正确的SeLECT的语句是(d )A.SELECT S# FORM SCWHERE C#= C2 AND GRADE =(SELECT GRADE FORM SC)WHERE C#= C2)B.SELECT S#FORM SCWHERE C#= C2 AND GRADE IN(SELECT CRADE FORM SC) WHERE C#= C2C.SELECT S# FORM SCWHERE C#= C2 AND GRADE NOT IN(SELECT GRADE FORM SCWHERE C#= C2D.SELECT S# FORM SCWHERE C#= C2 AND CRANDE =ALL(SELECT GRADE FORM SCWHERE C#= C2)7.检索学生姓名及其所选修课程的课程号和成绩。
1.已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
【参考答案】void SortDat(){int i,j;PRO xy;for( i=0; i<99; i++ )for( j=i+1; j<100; j++ ){if(strcmp(sell[i].mc,sell[j].mc)>0) /*按产品名称从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}2.已知在文件IN2.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】void SortDat(){int i,j;PRO xy;for(i=0;i<MAX-1;i++)for(j=i+1;j<MAX;j++){if ( strcmp(sell[i].mc,sell[j].mc)<0 ) /*按产品名称从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】void SortDat(){int i,j;PRO xy;for( i=0; i<99; i++ )for( j=i+1; j<100; j++ ){if(strcmp(sell[i].dm,sell[j].dm)<0) /*按产品代码从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(strcmp(sell[i].dm,sell[j].dm)==0) /*若产品代码相同*/if(sell[i].je<sell[j].je) /*则按金额从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }}}4.已知在文件IN4.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++){if(strcmp(sell[i].mc,sell[j].mc)<0) /*按产品名称从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/if(sell[i].je<sell[j].je) /*则按金额从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }}}5.已知在文件IN5.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相等, 则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】void SortDat(){int i,j;PRO xy;for(i=0;i<MAX-1;i++)for(j=i+1;j<MAX;j++){if(sell[i].je<sell[j].je) /*按金额从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy;}else if(sell[i].je==sell[j].je) /*若金额相同*/if(strcmp(sell[i].dm,sell[j].dm)>0) /*则按代码从小到大进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }}}6.已知在文件IN6.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列, 若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】void SortDat(){int i,j;PRO xy;for(i=0;i<MAX-1;i++)for(j=i+1;j<MAX;j++){if(strcmp(sell[i].dm,sell[j].dm)>0) /*按代码从小到大进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(strcmp(sell[i].dm,sell[j].dm)==0) /*若代码相同*/if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }}}7.已知在文件IN7.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++){if(sell[i].je<sell[j].je) /*按金额从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(sell[i].je==sell[j].je) /*若金额相同*/if(strcmp(sell[i].dm,sell[j].dm)<0) /*则按代码从大到小进行排列*/{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }}}8.已知在文件IN8.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。