




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家三级(网络技术)机试模拟试卷10(共9套)(共9题)国家三级(网络技术)机试模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知在文件IN.DAT中存有若干个(个数<200)四位数字的整数,函数ReadData()负责将这若干个整数存人数组inBuf[]中。请编制函数findValue(),其功能要求;(1)求出这文件中共有多少个正整数totleNum;(2)求出这些数中的各数位数字之和是奇数的个数totleCnt,以及满足此条件的这些数的算术平均值totleAverage,最后调用函数WriteData()把结果outBuf[]输出到文件OUT.DAT中。注意;部分源程序已给出。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序;#include#include#defineMAX200intinBuf[MAX];inttotleNum=0;/*文件IN.DAT中共有多少个正整数*/inttotleCnt=0;/*符合条件的正整数的个数*/doubletotleAverage=0.0;//平均值intReadData(void);voidWriteData(void);voidfindValue(void){}voidmain(){inti;system("CLS");for(i=0;i标准答案:voidfindValue(void){inti,j,k,temp,d[4];for(i=0;i0)//如果当前数大于零totleNum++;//则将总个数加1for(j=0;j<4;j++){temp=inBuf[i];//将要进行分解的数据存入temp中for(k=0;k知识点解析:本题主要考查数位分解及数据平均值的求法。本程序的步骤是;1.将数值送入temp中。2.数位分解,由temp%10得到个位数;(temp/10)%10得到十位数,依此类推,可得到各位上的数值。3.按照题目所给的条件筛选出数据。4.对选出的数据求平均值,由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数来取平均的话,变量不能存储那么大的数据而导致溢出。本程序采用的方法是;N个数的平均值=[前(N-1)个数的平均值*(N-1)+第N个数]/N,采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。国家三级(网络技术)机试模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:通过审题可以发现主要有两个不同点:①判断数值为奇数,可通过a[i]%2进行判断,参考答案的第4条语句;②要求进行比较的元素大于后连续5个数,因此在设置判断条件时,作为比较的两个数之间应该是大于关系,参考答案的第4条语句。国家三级(网络技术)机试模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有200个四位整型数,函数ReadData()负责将IN.DAT中的数读到数组inBuf[]中。请编写函数findValue(),其功能是;把千位数字和十位数字重新组合成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数和百位数组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),新组成的两个两位数ab-cd≥10且ab-cd≤20且两个数均为偶数,同时两个新数十位数字均不为零。求出满足条件的数,用count记录下符合条件的数的个数并按照从大到小的顺序存人数组outBuf[]中。函数WriteData()负责将outBuf[]中的数输出到文件OUT.DAT中并且在屏幕上显示出来。注意;部分源程序已给出。程序中已定义数组;inBuf[200],outBuf[200],已定义变量;count。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序;#include#defineNUM200intinBuf[NUM],outBuf[NUM],count=0;voidReadData();voidWriteData();voidfindValue(){}voidmain(){inti;ReadData();findValue();WriteData();printf("count=%d\n",count);for(i=0;i标准答案:voidfindValue(){inti,j,k,d[4],temp,minus,ab,cd;for(i=0;i[10&&minus<=20&&(ab%2+cd%2)==0&&d[0]!=0&&d[3]!=0{outBuf[count]=inBuf[i];count++;}}for(i=0;i知识点解析:本题主要考查数位分解及排序。数位分解就是将n位数上各个数位上的数值单独分离出来。解决此问题的方法是;将n位数对10求余可以将个位上的数值分离出来。将这个n位数除以10以后得到一个n-1位数,则此时n位数原来的+位就变成了n-1位数的个位,再将此n-1位数对10求余便可得到原n位数的十位。依此类推,按照同样的方法便可将n位数各个数位上的数值分离出来。程序步骤;1.将数值送入temp中。2.由temp%10得到个位数;(temp/10)%10得到十位数……如此可得到各位上的数值。3.按照题目所给的条件选出数据。4.对选出的数据进行排序,排序的思想是(以从小到大为例);将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。国家三级(网络技术)机试模拟试卷第4套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:根据题意,本程序涉及10个候选人共100条记录,其中,100条记录的选票文件采用二维数组存储其数据,第一维表示100条记录,第二维表示每条记录中10个候选人的选中情况。可以通过两个for循环对100条记录逐个比对,在第一层for循环中,对100条记录的每条记录情况进行扫描,在第二层for循环语句中,判断数组元素xx[i][j]的值是否等于字符1,如果等于字符1,说明第j个人得了一票,则数组元素yy[j]加1。①先定义两个循环变量i和j。②指定第一个for循环的循环条件,循环变量i从0开始,等于100时结束,每循环一次,变量i的值加1。③在for循环中首先判断记录值不等于1111111111的记录,然后计算10个候选人的得票数,可以通过一个for循环,对满足条件的记录中的每个数字再次比对,当数字等于1时,将第i个人的票数加1。注意,本程序中由于只有数值1才会被计算到最后的结果中,因此,可以省去判断记录全为0时记录无效的情况,因为,即使将0参与到计算中,其计算结果也还是0,不会影响到最终结果,只需判断记录为全1时无效即可。国家三级(网络技术)机试模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函数ReadData()负责将IN.DAT中的数据读到数组inBuf[][]中。请编制函数replaceChar(),该函数的功能是按照指定规则对字符进行替换。变换后的值仍存人数组inBuf[][]中。函数WriteData()负责将inBuf[][]中的数据输出到文件OUT.DAT中,并且在屏幕上输出。替换规则为;先对字符的ASCII码值按公式y=a*llmod256进行运算(a为某一字符的ASCII码值,y为变换后的ASCII码值),如果原字符是小写字母或计算后y的值小于等于32,则字符保持不变,否则用Y对应的字符代替。注意;部分源程序已给出。原始数据文件存放的格式是;每行的宽度均小于80个字符。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序;#include#include#include#include#defineLINE50#defineCOL80charinBuf[LINE][COL+1];inttotleLine=0;//文章的总行数intReadData(void);voidWriteData(void);voidreplaceChar(){}voidmain(){system("CLS");if(ReadData()){printf("IN.DATcan’tbeopen!\n\007");return;}replaceChar();WriteData();}intReadData(void){FILE*fp;inti=0;char*P;if((fp=fopen("IN.DAT","r"))==NULL)return1;while(fgets(inBuf[i],COL+1,fp)!=NULL){P=strchr(inBuf[i],’\n’);if(p)*P=’\0’;i++;}totleLine=i;fclose(fp);return0;}voidWriteData(void){FILE*fp;inti;fp=fopen("OUT.DAT","w");for(i=0;i标准答案:voidreplaceChar(){inti,j,str;chary;for(i=0;i=‘a’&&inBuf[i][j]<=‘z’))continue;//若符合条件,不进行转换elseinBuf[i][j]=y;//否则进行转换}}}知识点解析:本题考查的主要是字符与其对应的ASCII码之间的转换及对ASCII码进行操作。首先计算出每行字符串的长度,再根据替换规则进行相应的替换。国家三级(网络技术)机试模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中;金额一单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存人结构数组sell中。请编制SortDat(),其功能要求;按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存人结构数组sell中,最后调用函数WriteDat()把结构输出到文件OUT6.DAT中。注意;部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。试题程序;#include#include#include#include#defineMAX100typedefstruct{chardm[5];//产品代码charmc[11];//产品名称intdj;//单价intsl;//数量longje;//金额}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){}voidmain(){memset(sell,0,sizeof(sell));ReadDat();SortDat();WriteDat();}voidReadDat(){FILE*fp;charstr[80],chEll];inti;fp=fopen("IN.DAT","r");for(i=0;i<100;i++){fgets(str,80,fp);memcpy(sell[i].dm,str,4);memcpy(sell[i].me,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,4);ch[4]=0;sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;}fclose(fp);}voidWriteDat(void){FILE*fp;inti;fp=fopen("OUT2.DAT","w");for(i=0;i<100;i++){printf("%s%s%4d%5d%51d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,"%s%s%4d%5d%51d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fclose(fp);}标准答案:inti,j;PROxy;for(i=0;i知识点解析:本题主要考查数组的排序操作。算法思路;1.结点与后面的所有j结点比较,若符合条件则交换i、j结点位置。2.然后后移i结点,执行步骤1直到i结点是倒数第二结点为止。国家三级(网络技术)机试模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①定义循环变量i、j和字符变量tmp。②在for循环语句中,循环变量i从0开始,依次递增直到其值等于文章最大行数maxline。在循环体中,首先把第i行字符串的最后一个字符赋给字符tmp,通过表达式“strlen(xx[i])-1”可以得到第i行最后一个字符的数组下标值;然后再继续通过一个for循环从文章第i行字符串的最后一个字符开始,每循环一次循环变量减1,字符xx[i][j]的ASCII码的二制位右移4位与其前一个字符xx[i][j-1]的ASCII码之和赋给字符xx[i][j],直到第i行字符串的第二个字符为结束;最后,将第i行字符串的最后一个字符的ASCII码值与第i行字符串的第一个字符的ASCII码值之和赋给第一个字符。国家三级(网络技术)机试模拟试卷第8套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN87.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数jsValue(),具功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt,pjz1,pjz2,输出到out87.dat文件中。例如:6712,6+2=7+1,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条什,计算平均值pjz2。注意:部分源程序已给出。程序中已定义数组:a[300],b[300],已定义变量:cnt,pjz1,pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:#includeinta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;voidjsValue(){}main(){inti;readDat();jsValue();writeDat();printf("cnt=%d\n满足条件的平均值pjz1=%7.21f\n不满足条件的平均值pjz2=%7.21f\n",cnt,pjz1,pjz2);}readDat(){FILE*fp;inti;fp=fopen("in87.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}writeDat(){FILE*fp;inti;fp=fopen("out87.dar","w");fprintf(fp,"%d\n%7.21f\n%7.21f\n",cnt,pjz1,pjz2);f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东营幼儿园环保活动方案
- 个私协会活动方案
- 中介公司庆典活动方案
- 中关村灵境沙龙活动方案
- 中医授衔活动方案
- 中医论坛举行活动方案
- 中华民俗活动方案
- 中国传统节日活动方案
- 中国太保筹资活动方案
- 中国春节活动方案
- AQ/T 2077-2020 页岩气井独立式带压作业机起下管柱作业安全技术规范(正式版)
- 【8物(沪科版)】合肥市第四十五中学2023-2024学年八年级下学期期末物理试题
- 区域代理商合同模板
- 国家开放大学(浙江)地域文化(本)作业1-5
- HG/T 2520-2023 工业亚磷酸 (正式版)
- 会所会员管理制度
- DZ/T 0462.8-2023 矿产资源“三率”指标要求 第8部分:硫铁矿、磷、硼、天然碱、钠硝石(正式版)
- 广东省广州市海珠区2024年七年级下册数学期末试卷附答案
- 湖南省长沙市芙蓉区2022-2023学年一年级下学期期末测试数学试卷
- JT-T 1495-2024 公路水运危险性较大工程专项施工方案编制审查规程
- 肝动脉化疗栓塞术及护理
评论
0/150
提交评论