计算机三级 上机题
- 格式:doc
- 大小:155.00 KB
- 文档页数:17
计算机等级考试三级――网络技术上机试题答案i==(int)sqrt(i)*(int)sqrt(i) //I是完全平方数2、int jsSort(){int i,j,k=0;DATA swap;for(i=0;i<200;i++)if(aa[i].x1>(aa[i].x2+aa[i].x3)) bb[k++]=aa[i];for(i=0;i<k-1;i++) //排序部分for(j=i+1;j<k;j++)if((bb[i].x1+bb[i].x3)<(bb[j].x1+bb[j].x3)){ swap=bb[i];bb[i]=bb[j];bb[j]=swap;}return k;} 6、注:这时也是采用冒泡法进行排序。
与前面的冒泡法在写法上有所不同请注意区分。
void SortDat(){ int i,j; PRO swap;for(i=0;i<MAX-1;i++)for(j=0;j<MAX-1-i;j++){ if(strcmp(sell[j].dm,sell[j+1].dm)<0){swap=sell[j];sell[j]=sell[j+1];sell[j+1]=swap;}if(strcmp(sell[j].dm,sell[j+1].dm)==0&&sell[j].je<sell[j+1].je){ swap=sell[j];sell[j]=sell[j+1];sell[j+1]=swap;}}}void SortDat(){ int i,j;PRO t;for(i=0;i<MAX;i++)for(j=i+1;j<MAX;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)if(sell[i].je<sell[j].je){t=sell[i];sell[i]=sell[j];sell[j]=t;}}9、jsvalue(){ int a1=1,a2=1,a12,sn,k=2; sn=a1+a2;while(1){ a12=a1+2*a2;if(sn<100&&sn+a12>=100) b[0]=k;if(sn<1000&&sn+a12>=1000) b[1]=k;if(sn<10000&&sn+a12>=10000) {b[2]=k;break;}sn=sn+a12; a1=a2; a2=a12;k++;}} 10、注:在该题中主要是控制好每一个字符的走动,由于最后要用到原来的最后一个字符故先将其存入一个字符变量中。
第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子句的叙述中不正确的是()。
第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模型,是数据库设计常用的一种建模方法。
第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.计算机内部的信息表示是采用哪种进制的?A. 十六进制B. 八进制C. 二进制D. 十进制答案:C2.以下哪个设备被称为计算机的"大脑"?A. 鼠标B. 主板C. 显卡D. CPU答案:D3.在计算机网络中,TCP/IP协议中的IP指的是什么?A. 软件B. 硬件C. 地址D. 数据答案:C二、多选题1.以下哪些设备可以作为计算机的外部设备?A. 打印机B. 键盘C. 鼠标D. 显示器答案:A、B、C、D2.计算机硬件的基本组成部分包括以下哪些?A. CPUB. 内存C. 主板D. 声卡答案:A、B、C三、判断题1.计算机内部的运算是通过软件实现的。
A. 是B. 否答案:B2.二进制数系统只有两个数码,0和1。
A. 是B. 否答案:A四、简答题1.请简要解释计算机操作系统的作用和功能。
操作系统是计算机系统中最重要的软件之一,它的作用是管理和控制计算机的硬件和软件资源,为用户提供一个方便、高效、可靠的操作环境。
操作系统的功能包括但不限于以下几个方面:- 进程管理:调度和管理计算机上的进程,实现多任务处理。
- 内存管理:控制内存的分配和回收,以及内存的保护和共享。
- 文件管理:管理文件的存储、读取和修改,提供对文件的访问接口。
- 设备管理:管理计算机的各种输入输出设备,如打印机、硬盘、键盘等。
- 用户接口:提供用户与计算机系统进行交互的接口,如图形界面或命令行界面。
- 安全性和保护:保护计算机系统的安全,防止非法访问和病毒攻击。
操作系统的作用是使计算机系统能够高效地运行各种应用程序,提供良好的用户体验。
五、应用题1.请编写一个简单的Python程序,实现两个数字相加的功能。
```pythonnum1 = int(input("请输入第一个数字:"))num2 = int(input("请输入第二个数字:"))result = num1 + num2print("两个数字的和为:", result)```在运行程序时,用户需输入两个数字,程序会将两个数字相加并输出结果。
计算机三级网络技术机试(上机操作)模拟试卷119(题后含答案及解析)题型有:1. 选择题 3. 综合题 4. 应用题选择题1.下列关于宽带城域网技术的描述中,错误的是()。
A.宽带城域网保证QoS的主要技术有RSVP、DiffServ和MPLSB.宽带城域网带内网络管理是指利用网络管理协议SNMP建立网络管理系统C.宽带城域网能够为用户提供带宽保证,实现流量工程D.宽带城域网可以利用NAT技术解决IP地址资源不足的问题正确答案:B2.下列关于接入技术特征的描述中,错误的是()。
A.远距离无线宽带接入网采用802.15.4标准B.Cable Modem利用频分复用的方法,将信道分为上行信道和下行信道C.光纤传输系统的中继距离可达100km以上D.ADSL技术具有非对称带宽特性正确答案:A3.下列关于RPR技术的描述中,错误的是()。
A.RPR环能够在50ms内实现自愈B.RPR环中每一个结点都执行DPT公平算法C.RPR环将沿顺时针方向传输的光纤环叫做外环D.RPR的内环与外环都可以传输数据分组与控制分组正确答案:B4.ITU标准OC-12的传输速率为()。
A.51.84MbpsB.155.52MbpsC.622.08MbpsD.1.244Gbps正确答案:C5.下列关于路由器技术指标的描述中,错误的是()。
A.吞吐量是指路由器的包转发能力B.背板能力决定了路由器的吞吐量C.语音、视频业务对延时抖动要求较高D.突发处理能力是以最小帧间隔值来衡量的正确答案:D6.一台接入层交换机具有16个100/1000Mbps全双工下联端口,它的上联端口带宽至少应为()。
A.0.8GbpsB.1.6GbpsC.2.4GbpsD.3.2Gbps正确答案:B7.若服务器系统可用性达到99.999%,那么每年的停机时间必须小于等于()。
A.5分钟B.10分钟C.53分钟D.106分钟正确答案:A8.网络地址191.22.168.0子网掩码是()。
计算机等级考试三级网络技术上机模拟试题【一】第1题在数据文件in.dat中有200个正整数,且每个数都在1000至9999之间。
函数readDat()是读取这200个数存放到数组aa中。
请编制函数isSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列,将排序后的前10个数存入数组bb中。
最后调用函数writeDat()把结果bb输出到文件out.dat中。
例:处理前60125099901270258088处理后 90126012702580885099注意:部分源程序存在test.c文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
第2题函数ReadDat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数CharConvA(),其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的ASCII值右移4位二进制位,高位补0后加倒数第二个字符的ASCII值,得到最后一个新的值,倒数第二个字符的ASCII值右移4位二进制位,高位补0后加倒数第三个字符的ASCII值,得到倒数第二个新的值,以此类推一直处理到第二个字符。
注意:第一个新的值与上述处理不同,第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的值。
得到的新值分别存放在原字符串对应的位置上,之后把已处理的结果仍按行重新存入数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件out.dat中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按字符处理。
注意:部分源程序存放在test.c文件中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
整理的三级上机类型题,希望对大家有用(1)2008-06-05 09:01函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按行优先把所有的小写字母替换成它前面的字母其它不变,a换成z,例如:Aabm.() 输出Azal.() 最后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。
部分源程序已给出,原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>unsigned char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void)void WriteDat(void)void encryptChar(){}void main(){clrscr();if(ReadDat()){printf("数据文件ENG.IN不能打开!\n\007");return;}encryptChar();WriteDat();}int ReadDat(void){FILE *fp;int i=0;unsigned char *p;if((fp=fopen("eng.in","r"))==NULL) return 1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],'\n');if(p)*p=0;i++;}maxline=i;fclose(fp);return 0;}void WriteDat(void){FILE *fp;int i;fp=fopen("ps10.dat","w");for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}解:void encryptChar(){int i,j;for (i=0;i<50;i++)for (j=0;j<80;j++)if (xx[i][j]=='a') xx[i][j]='z';else (xx[i][j]>='b'&&xx[i][j]<='z') xx[i][j]-=1;}2、函数ReadDat()的功能是实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrChar JR();该函数的功能是:以行为单位把字符串中的所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCTT值,得到新的字符仍存入原字符串对应的位置上。
1、下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。
要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。
请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat 中。
例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123A yz。
注:该题的思路比较明显,先判断是否是'z'或'Z',若是则转成相应的'a'或'A',否则再判断是不是字母(已除'z'或'Z')。
void chg(char *s){int i,j,k;k=strlen(s);for(i=0;i {if(s[i]=='z'//s[i]=='Z' )s[i]-=25;elseif(isalpha(s[i]))s[i]+=1;}}2、现有一个10个人100行的选票数据文件IN.DA T,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。
给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。
请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。
把结果yy输出到文件OUT.DA T中。
/*注:题目要求将那些选了不超过5人的选票视为无效票,即一张选票中如果‘1’不超过5个则为无效选票。
该题先用for()循环对100行选票进行循环,在循环内先进行用for()循环数出这张选票中选中的人数(count)再用if()判断,如果选中人数小于等于5则continue 即判断下一张选票,否则用内嵌的for()对行内的数据进行判断,注意如果数据为‘1’时才对对应的人增加1。
第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 星辰恩请编写一个函数( []),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组传回。
最后调用函数()读取10组数据,分别得出结果且把结果输出到文件中。
部分源程序存在文件1中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数()和写函数()的内容。
( m){i;(2<)(m % 0) 0;1;}( []){ 0;(1>0)((m)) { []; ;}}。
题目2已知数据文件中存有200个四位数,并已调用读函数()把这些数存入数组a中,请考生编制一函数(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数,并把这些四位数按从大到小的顺序存入数组b中。
最后( )函数调用写函数()把结果以与数组b中符合条件的四位数输出到文件中。
(){ ;(0<){ [i]/1000; [i]/100%10;[i]%100/10; [i]%10;(20202020) b[][i];}(0<1)(1<)(b[i]<b[j]) { [i]; b[i][j]; b[j];}}***************************************************************************** *★题目3(字符型题)函数( )实现从文件中读取一篇英文文章存入到字符串数组中;请编制函数( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组中。
最后()函数调用函数()把结果输出到文件5中(){ ;[80];(0<)(([i])-1>=0){ 0;(,0,80);([i][j]'o'){;(1<([i]))[][i][s];(0<)([i][s]'o')[][i][s];([i]);};}}。
第4套 真考题库试题一、单选题((1)~(20)每题1分,(21)~(30)每题2分,共40分)1.在数据模型三个要素中,表述客观世界中数据对象之间关联的是()。
A)数据操作B)数据结构C)数据视图D)完整性约束2.数据库系统的三级模式结构从数据库系统管理角度考虑数据的组织与存储。
下列不属于数据库三级模式结构的是()。
A)逻辑模式B)物理模式C)外模式D)应用模式3.在信息系统的需求分析中,目前广为使用的结构化分析与功能建模方法主要有DFD、IDEF0等。
其中,DFD建模方法也被称为过程建模和功能建模方法,其核心是()。
A)数据B)软件C)数据流D)分析过程4.设有关系模式R(A,B,C,D),存在函数依赖集:{A→B,C→D},则R最高可属于()。
A)1NFB)2NFC)3NFD)BCNF5.数据库设计主要包括概念设计、逻辑设计和物理设计三个步骤。
设有下列活动:Ⅰ.设计ER图Ⅱ.将ER图转换为关系模式Ⅲ.定义数据的约束条件Ⅳ.用SQL语句描述事务活动上述活动中,属于逻辑设计所包含活动的是()。
A)仅Ⅰ、Ⅱ和ⅢB)仅Ⅱ、Ⅲ和ⅣC)仅Ⅱ和ⅢD)仅Ⅱ和Ⅳ6.从功能上讲,数据库应用系统设计包括四个层次。
下列层次中包含索引设计的是()。
A)表示层B)业务逻辑层C)数据访问层D)数据持久层7.在数据库应用系统生命周期中,当逻辑设计阶段完成后进入到物理设计阶段。
下列不属于物理设计阶段活动的是()。
A)确定关系表的文件组织形式B)进行关系规范化设计C)创建必要的索引D)设置存储分配参数8.查询处理器和存储管理器是数据库管理系统中的核心模块。
下列关于查询处理器和存储管理器的说法,错误的是()。
A)查询处理器中的DML编译器会对用户提交的DML语句进行优化,并将其转换成能够执行的底层数据库操作指令B)存储管理器中的查询执行引擎会根据编译器产生的指令完成具体数据库数据访问功能C)存储管理器中的缓冲区管理器负责将从磁盘读出的数据块放入内存缓冲区,同时也负责对缓冲区中的数据块进行维护D)查询处理器中的DDL编译器编译或解释用户提交的DDL语句,并将生成的元数据存储在数据库的数据字典中9.下列简化UML关系图中,最不恰当的是()。
全国计算机等级考试三级C语言上机100题几点说明:**********************************☆题目1请编写一个函数jsValue(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入175则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include<conio.h>#include<stdio.h>voidreadwriteDat();intisP(intm){inti;for(i=2;i<m;i++)if(m%i==0)return0;return1;}voidnum(intm,intk,intxx[]){ints=0;for(m=m+1;k>0;m++)if(isP(m)){xx[s++]=m;k--;}}main(){intm,n,xx[1000];clrscr();printf("\nPleaseentertwointegers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d",xx[m]);printf("\n");readwriteDat();}voidreadwriteDat(){intm,n,xx[1000],i;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}*********************************☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
xx年3月计算机三级上机题库及答案1.数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,那么将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数t。
最后main()函数调用写函数writeDat( )把结果t以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义数组: a[200], b[200], 已定义变量: t请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
-------------------------PROG1.C#include#define MAX 200int a[MAX], b[MAX], t = 0;void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000; hun=a[I]%1000/100;ten=a[I]%100/10; data=a[I]%10;ab=10*thou+ten; cd=10*data+hun;if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0){b[t]=a[I];t++;}}for(I=0;Ifor(j=I+1;jif(b[I]{data=b[I]; b[I]=b[j];b[j]=data;}}void readDat(){ int i ;FILE *fp ;fp = fopen("in.dat", "r") ;for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;fclose(fp) ;}void main(){ int i ;readDat() ;jsVal() ;printf("满足条件的数=%d\n", t) ;for(i = 0 ; i < t ; i++) printf("%d ", b[i]) ;printf("\n") ;writeDat() ;system("pause");}writeDat(){ FILE *fp ;int i ;fp = fopen("out.dat", "w") ;fprintf(fp, "%d\n", t) ;for(i = 0 ; i < t ; i++) fprintf(fp, "%d\n", b[i]) ; fclose(fp) ;}IN.DAT7153 8129 5795 2896 3019 7747 7607 8145 7090 4140 8626 7905 3735 9620 8714 9496 3640 5249 7671 5925 4687 2982 9387 6478 2638 2793 8298 8246 5892 9861 9110 2269 6951 9800 2439 5339 1064 9994 6762 5752 1001 1030 7989 2845 2958 3820 3010 9486 9798 4014 2783 1604 1628 6466 4101 4128 7127 3262 6332 2076 1860 5834 4580 9057 2614 7852 3789 2897 9194 6317 6276 4285 5610 6945 9137 8348 5434 9162 4303 6779 5025 5137 4630 3535 4048 2697 2438 9791 3903 3650 4899 1557 4745 2573 6288 5421 1563 9385 6545 5061 3905 1074 7840 4596 7537 5961 8327 2104 1055 83171282 5368 6571 5440 8274 1919 6789 4542 3570 15007044 9288 5302 7577 4018 4619 4922 2076 3297 58981699 9276 4439 2729 8725 7507 2729 6736 2566 32277901 2973 2353 4805 2546 3406 4824 2060 8645 58867549 9279 3310 5429 6344 4100 9604 1146 9234 62023477 1492 4800 2194 9937 1304 3454 5477 9230 53824064 8472 8262 6724 7219 9968 3398 4952 4130 69531791 4229 5432 8147 5409 4275 5091 2278 6192 48986808 8866 3705 3025 2929 1503 5298 2233 5483 3635OUT.DAT492888866862632622.数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数, 同时两个新数的十位数字均不为零,那么将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数t。
第一套:销售记录-产品名称从小到大,名称相同按金额从小到大void SortDat(){int i,j;PRO temp;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;}}第二套:销售记录-产品名称从大到小,名称相同按金额从大到小void SortDat(){int i,j;PRO temp;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;}}第三套:销售记录-按产品代码从小到大,代码相同按金额从小到大void SortDat(){int i,j;P RO temp;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if (strcmp(sell[i].dm,sell[j].dm)>0){temp=sell[i];sell [i]=sell[j];sell[j]=temp;}else if(strcmp(sell[i].dm,sell[j].dm)==0)if(sell[i].je>sell[j].je){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}第四套:销售记录-按金额从大到小,金额相同按产品代码从大到小void SortDat(){int i,j;PRO temp;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(sell[i].je<sell[j].je){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}else if (sell[i].je==sell[j].je)if (strcmp(sell[i].dm,sell[j].dm)<0){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}第五套:销售记录-按产品名称从大到小,名称相同按金额从小到大void SortDat(){int i,j;PRO temp;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;}}第六套:销售记录-按金额从大到小,金额相同按产品名称从小到大void SortDat(){int i,j;PRO temp;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(sell[i].je<sell[j].je){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}else if(sell[i].je==sell[j].je)if(strcmp(sell[i].mc,sell[j].mc)>0){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}第七套:销售记录-按产品代码从大到小,代码相同按金额从大到小void SortDat(){int i,j;P RO temp;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(strcmp(sell[i].dm,sell[j].dm)<0){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}else if(strcmp(sell[i].dm,sell[j].dm)==0)if(sell[i].je<sell[j].je){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}第八套:销售记录-按产品名称从小到大,名称相同按金额从大到小void SortDat(){ int i,j;PRO temp;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;}}第九套:销售记录-按金额从小到大,金额相同按产品代码从大到小void SortDat(){int i,j;PRO temp;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if (sell[i].je>sell[j].je){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}else if (sell[i].je==sell[j].je)if (strcmp(sell[i].dm,sell[j].dm)<0){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}第十套:销售记录-按金额从小到大,金额相同按产品代码从小到大void SortDat(){int i,j;PRO temp;for(i=0;i<99;i++)for(j=i+1;j<100;j++){if (sell[i].je>sell[j].je){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}else if (sell[i].je==sell[j].je)if (strcmp(sell[i].dm,sell[j].dm)>0){temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}}第十一套:数位分解-300-四位数千位数加个位数等于百位数加十位数,四位数从小到大void jsValue(){int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4+a1==a3+a2){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第十二套:数位分解-200-各位上的数均是奇数,统计cnt,把四位数按从大到小的顺序存入bvoid jsVal(){int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4%2!=0 && a3%2!=0 && a2%2!=0 && a1%2!=0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第十三套:数位分解-300存入a中,千位数加百位数等于十位数加个位数cnt,b中四位数从大到小void jsValue(){int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if (a4+a3==a2+a1){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第十四套:数位分解-两个文件中分别存100-两位数,存入a,b中,按条件:如果a,b中相同下标位置的数必须符合一个是偶数,一个是奇数,则a中的数左移八位再加上b中对应位置的数,然后将新数存入c中,按从小到大void jsVal(){int i,j;int temp;for (i = 0;i <= MAX - 1;i++)if (((a[i] % 2 == 0) && (b[i] % 2 != 0)) || ((a[i] % 2 != 0) && (b[i] % 2 == 0))){c[i] = (a[i]<<8) + b[i];cnt++;}for (i = 0;i < MAX - 1;i++)for (j = 0;j < MAX - i - 1; j++)if (c[j] > c[j+1]){temp = c[j];c[j] = c[j + 1];c[j+1] = temp;}}第十五套:数位分解-300四位数,存入a,千位数减百位数减十位数减个位数大于零cnt,存入b中,从小到大,void jsValue(){int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4-a3-a2-a1>0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第十六套:数位分解-5000以下四位数,条件:千位数与百位数之和等于十位数与个位数之和,且千位数与百位数之和等于个位数与千位数之差的10倍,cnt,sumvoid countValue(){int i;int a1,a2,a3,a4;for(i=5000;i>=1000;i--){a4=i/1000;a3=i%1000/100;a2=i%100/10;a1=i%10;if(a4+a3==a2+a1 && a4+a3==(a1-a4)*10){cnt++;sum+=i;}}}第十七套:数位分解-200四位数,存入a中,条件:四位数各位上的数字均为0,2,4,6,8,统计cnt,四位数从大到小存入bvoid jsVal(){int i,j;i nt a1,a2,a3,a4;int temp;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4%2==0 && a3%2==0 && a2%2==0 && a1%2==0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第十八套:数位分解-300四位数,存入a中,求个位数减千位数减百位数减十位数大于零cnt,存入b ,按从大到小void jsValue(){int i,j;i nt a1,a2,a3,a4;int temp;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a1-a3-a2-a4>0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第十九套:数位分解-200个四位数,存入a,千位数减百位数减十位数减个位数,如果得数大于等于零,且四位数是奇数,cnt,存入b,按从小到大void jsVal(){int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if((a4-a3-a2-a1>=0) && a1%2!=0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第二十套:数位分解-200个四位数,存入a,千位数大于等于百位数,百位数大于等于十位数,十位数大于等于个位数,并且四位数是奇数,cnt,从小到大存入bvoid jsVal( ){int i,j;i nt a1,a2,a3,a4;int temp;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if((a4>=a3)&&(a3>=a2)&&(a2>=a1)&&a1%2!=0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第二十一套:数位分解-200个四位数,存入a,千位数加个位数等于百位数加十位数,四位数是奇数,cnt,从小到大存入bvoid jsVal( ){int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if ((a4+a1==a3+a2) && a1%2==1){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第二十二套:数位分解-200个四位数存入a,千位数加十位数等于百位数加个位数,四位数是偶数,cnt,按从小到大存入bvoid jsVal( ){ int i,j;int a1,a2,a3,a4;int temp;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if((a4+a2==a3+a1) && a[i]%2!=1){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第二十三套:数位分解后求平均值-300个四位数存入a,千位数加百位数等于十位数加个位数,cnt,满足四位数的平均值pjz1,不满足的pjz2void jsValue( ){int i,n=0;int a1,a2,a3,a4;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4+a3==a2+a1){cnt++;pjz1+=a[i];}else{n++;pjz2+=a[i];}}pjz1/=cnt;pjz2/=n;}第二十四套:数位分解后平均值-300个四位数存入a,个位数减千位数减百位数减十位数大于零,cnt,满足条件pjz1,不满足pjz2void jsValue(){int i,thou,hun,ten,data,n=0;for(i=0;i<300;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if(data-thou-hun-ten>0){cnt++;pjz1+=a[i];}else{n++;pjz2+=a[i];}}pjz1/=cnt;pjz2/=n;}第二十五套:数位分解平均值-300个四位数存入a,千位数加个位数等于百位数加十位数,cnt,满足均值pjz1,不满足均值pjz2void jsValue(){ int i,n=0;int a1,a2,a3,a4;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4+a1==a3+a2){cnt++;pjz1+=a[i];}else{n++;pjz2+=a[i];}}pjz1/=cnt;pjz2/=n;}第二十六套:数位分解平均值-300个四位数存入a,千位数减百位数减十位数减个位数大于零,cnt,满足平均值pjz1,不满足pjz2void jsValue(){ int i,n=0;int a1,a2,a3,a4;for(i=0;i<300;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;if(a4-a3-a2-a1>0){cnt++;pjz1+=a[i];}else{n++;pjz2+=a[i];}}pjz1/=cnt;pjz2/=n;第二十七套:数位分解重组排序-200个四位数存入a,千位数和十位数组合新2位数ab(新数十位数是原四位数的千位数,个位数是原四位数十位数),个位数和百位数组新2位数cd(新十位数的十位数是原四位数个位数,个位数是原百位数),如果ab-cd>=0且ab-cd<=10且两个数都为奇数,新十位数都不为零,从大到小入b,且计算cntvoid jsVal(){int i,j;int a1,a2,a3,a4;int temp;int ab,cd;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;ab=10*a4+a2;cd=10*a1+a3;if ((ab-cd)>=0 && (ab-cd)<=10 && ab%2==1 && cd%2==1 && a4!=0 && a1!=0) {b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第二十八套:数位分解重组排序-200个四位数存入a,千位数和个位数组成新2位数(十位数是原千位数,个位数是原个位数),百位数和十位数组成新2位数(十位数是原百位数,个位数是原十位数),两个2位数都是奇数且至少有一个数能被5整除,且两个数都不为零,从大到小存入b,cntvoid jsVal(){int i,j;int a1,a2,a3,a4;int temp;int ab,cd;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;ab=10*a4+a1;cd=10*a3+a2;if (ab%2==1 && cd%2==1 && (ab%5==0 || cd%5==0)&& a4!=0 && a3!=0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第二十九套:数位分解重组排序-200个四位数存a中,千位数和十位数重新组合成一个新的2位数ab(十位数是原千位数,个位数是原十位数),个位数和百位数组成cd(十位数是原个位数,个位数是原百位数),如果ab-cd>=0且ab-cd<=20且两个数均为偶数,同时两个新十位数均不为零,按从大到小存入b中,cntvoid jsVal( ){int i,j;int a1,a2,a3,a4;int temp;int ab,cd;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;ab=10*a4+a2;cd=10*a1+a3;if((ab-cd>=10)&&(ab-cd<=20)&&(ab%2==0)&&(cd%2==0)&&a4!=0&&a1!=0) {b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第三十套:数位分解重组排序-200个四位数存入a,千位数和十位数重新组合一个新数(十位数是原千位数,个位数是原十位数)个位数和百位数重合一个新数(十位数是原个位数,个位数是原百位数)如果新的两个十位数均为素数且新十位数均不为零,四位数从大到小排序存入b,cntvoid jsVal(){int i,j;int a1,a2,a3,a4;int temp;int ab,cd;for(i=0;i<200;i++){a4=a[i]/1000;a3=a[i]%1000/100;a2=a[i]%100/10;a1=a[i]%10;ab=10*a4+a2;cd=10*a1+a3;if(isprime(ab)&&isprime(cd)&&a4!=0&&a1!=0){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}第三十一套:数位分解重组排序-两个数据文件分别存有100个两位数,存入a,b中,依次对数组a,b中的数按条件重组成一个新数存入c中,对c 中的数从小到大排序。
9.找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。
int i;for(i=2;i<90;i++)if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10) ){sum+=i;cnt++;}29.计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数...的值sum。
int j,f=1;int x;for(x=800;x>=500;x--){for(j=2;j<x;j++){if(x%j==0)break;}if(j==x){cnt++;sum+=x*f;f=-f;}}62.选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。
计算并输出上述这些素数的个数cnt以及这些素数值的和sum。
int i,g,s,b;for(i=100;i<1000;i++)if(isPrime(i)){g=i%10;s=i/10%10;b=i/100;if((g+s)%10==b){cnt++;sum+=i;}}5.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
其中:金额=单价*数量计算得出。
函数ReadDat()是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,int i,j;PRO t;for(i=0;i<100;i++)for(j=i+1;j<100;j++)if(sell[i].je<sell[j].je){t=sell[i];sell[i]=sell[j];sell[j]=t;}elseif(sell[i].je==sell[j].je&&strcmp(sell[i].dm,sel l[j].dm)<0){t=sell[i];sell[i]=sell[j];sell[j]=t;}}54.按产品代码从小到大进行排列,若产品代码相等,则按金额从小到大进行排列。
if(strcmp(sell[i].dm,sell[j].dm)>0)elseif(strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].j e>sell[j].je)16.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。
例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。
8129,8+9<>1+2,则该数不满足条件计算平均值pjz2。
int i,q,b,g,s;for(i=0;i<300;i++){q=a[i]/1000;b=a[i]/100%10;s=a[i]/10%10;g=a[i]%10;if(q+g==b+s){cnt++;pjz1+=a[i];}else{pjz2+=a[i];}}pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);22.求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,int i,j,g,s,bb,q,t;for(i=0;i<300;i++){q=a[i]/1000;bb=a[i]/100%10;s=a[i]/10%10;g=a[i]%10;if(g-s-bb-q>0){b[cnt++]=a[i];}}for(i=0;i<cnt;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}30.int i,g,s,b,q;for(i=1000;i<5000;i++){q=i/1000;b=i/100%10;s=i/10%10;g=i%10;if(q+b==g+s&&q+b==10*(g-q)){cnt++;sum+=i;}}72.数组a存有200个四位数:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
int i,j,g,s,bb,q,t;for(i=0;i<200;i++){q=a[i]/1000;bb=a[i]/100%10;s=a[i]/10%10;g=a[i]%10;if(q%2==0&&bb%2==0&&s%2==0&& g%2==0){b[cnt++]=a[i];}}for(i=0;i<cnt;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}98.在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。
函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到文件out.dat中。
int i,n=0,j;data t;for(i=0;i<200;i++){if(aa[i].x1>aa[i].x2+aa[i].x3)bb[n++]=aa[i];}for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3){t=bb[i];bb[i]=bb[j];bb[j]=t;}return n;56.要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,{int i,j,n=0;data t;for(i=0;i<200;i++)if(aa[i].x2>aa[i].x1+aa[i].x3){bb[n++]=aa[i];}for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(bb[i].x2+bb[i].x3<bb[j].x2+bb[j].x3){t=bb[i];bb[i]=bb[j];bb[j]=t;}return n;}23.已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
int i;for(i=0;i<200;i++){if(xx[i]>0){totNum++;if((xx[i]>>1)%2==0){totCnt++;totPjz+=xx[i];}}}totPjz=totPjz/totCnt;34.求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,其结果以从小到大的顺序放在数组a中,并通过形式参数n传递这些数的个数。
int i,cnt=0;for(i=1;i<1000;i++){if(i%7==0&&i%11!=0||i%7!=0&&i%11==0)a[cnt++]=i;}*n=cnt;26.请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为奇数的元素值的算术平均值pj(保留2位小数)。
read_dat(xx);sum=cnt1=cnt2=n=0;for(m=0;m<200;m++){if(xx[m]%2)cnt1++;elsecnt2++;if(m%2){n++;sum+=xx[m];}}pj=1.0*sum/n;32. 奇数个数,偶数个数,xx下标为偶数的元素值的算术平均数cnt1=cnt2=sum=pj=0;for(i=0;i<200;i++){if(xx[i]%2==1)cnt1++;elsecnt2++;if(i%2==0){pj+=xx[i];sum++;}}pj/=sum;21. in.dat中存有300个四位数:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,int i,j,t;for(i=0;i<300;i++){if(isP(a[i])){b[cnt++]=a[i];}}for(i=0;i<cnt;i++)for(j=i+1;j<cnt;j++)if(b[i]>b[j]){t=b[i];b[i]=b[j];b[j]=t;}35.请编制程序prog1.c,从文件IN.DA T中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的所有整数的算术平均值pj(保留2位小数)。