版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家三级(网络技术)机试模拟试卷34(共9套)(共9题)国家三级(网络技术)机试模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知在文件IN.DAT中存有若干个(个数<200)四位数字的整数,函数ReadData()负责读取这若干个整数并存人数组inBuf[]中。请编制函数findValue(),其功能要求;(1)求出这个文件中共有多少个正整数totleNum;(2)求这些数右移一位后,产生的新数是奇数的数的个数totleCnt,以及满足此条件的这些数(右移前的值)的算术平均值totleAverage。函数WriteData()负责把所求的结果输出到文件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;for(i=0;i0)totleNum++;//如果是正数,就将计数器totleNum加1if((inBuf[i]/2)%2!=0)//如果右移一位后产生的数是奇数{totleCnt++;//将计数器totleCnt加1//求满足条件的数的平均值,totleAverage*(totleCnt-1)是前totleCnt-1个数的总和totleAverage=(totleAverage*(totleCnt-1)+inBuf[i])/totleCnt;}}}知识点解析:本题主要考查数据移位、奇偶判断及平均值求法。1.数据移位;数据左移一位相当于将数据乘以2,数据右移一位相当于将数据除以2。2.奇偶判断;如果一个数对2求余结果为0,则该数为偶数;否则,为奇数。3.求平均值;由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数来取平均的话,变量不能存储那么大的数据而导致溢出。本题的程序采用的方法是;N个数的平均值=[前(N-1)个数的平均值*(N-1)+第N个数]/N,采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。国家三级(网络技术)机试模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①定义循环变量i、表示奇数个数的变量odd并设置其值为0。②采用for循环语句,对数组xx中每个数组元素xx[i]对2求余数,如果余数为1,则说明数组元素xx[i]的值为奇数,则变量odd的值加1,并把数组元素xx[i]的值累加到变量avel,否则,说明数组元数xx[i]的值为偶数,则变量even的值加1,并把数组元素xx[i]的值累加到变量ave2。③退出for循环语句后,用变量avel除以奇数的个数odd,得到所有奇数的平均值赋给avel,用变量ave2除以偶数的个数even,得到所有偶数的平均值赋给ave2。④利用for循环语句,对数组xx中每个数组元素xx[i]对2求余数,如果余数等于0,则说明数组元素xx[i]的值为偶数,这时把表达式xx[i]-ave2的平方值累加到变量totfc。退出循环后,用变量totfc的值除以偶数的个数even,得到所有偶数的方差赋给变量totfc。国家三级(网络技术)机试模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、补充函数,要求实现如下功能;寻找并输出11~999之间的数m,它满足m,m2,m3均为回文数(回文数是指各位数字左右对称的整数),例如12321,505,1458541等。满足上述条件的数如m=11时,m2=121,m3=1331都是回文数。请编写jsValue(longm)实现此功能。如果是回文数,则函数返回1,不是则返回0。最后,把结果输出到文件out.dat中。注意;部分源程序已经给出。请勿改动主函数Main()中的内容。试题程序;#include#include#includeintjsValue(longn){}main(){longm;FILE*out;out=fopen("out.dat","w");for(m=11;m<1000;m++)if(jsValue(m)&&jsValue(m*m)&&jsValue(m*m*m)){printf(“m=%41d,m*m=%61d,m*m*m=%81d\n",m,m*m,m*m*m);fprintf(out,"m=%41d,m*m=%61d,m*m*m=%81d\n",m,m*m,m*m*m);}fclose(out);}标准答案:intjsValue(longn){inti,strl,half;charxy[20];Itoa(n,xy,10);strl=strlen(xy);half=strl/2;for(i=0;i=half)return1;elsereturn0;}知识点解析:本题将长整型n转换成为字符串存入数组xx中,取出字符串的长度,循环到字符串的中部,依次比较相对位置字符,如果碰到某一对不相同就跳出循环,此时如果i>=half,证明循环自然结束,返回1,n是回文数,否则循环是强制跳出,证明至少有一对字符不相同所以返回0,n不是回文数。国家三级(网络技术)机试模拟试卷第4套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:通过审题可以发现主要是对四位数的筛选条件有所不同,要求判断两个新组合的数都为素数,参考答案的第10条语句,修改该条件语句符合题目的要求,其中,判断十位数是否为素数可以调用函数isprime()进行判断,素数判断的具体算法已经在源程序中给出,不需要掌握。国家三级(网络技术)机试模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有200个销售记录,每个记录均由产品代码ID(字符型4位)、产品名称name(字符型10位)、单价price(整型)、数量amount(整型)、金额value(长整型)几部分组成。其中;金额=单价×数量,函数readData()负责将IN.DAT中的数据读到结构数组sell[]中。请编制函数sortData(),将各个记录按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,并将排列后的结果存放到sell[]中。函数writeData()负责将sell[]中的数据输出到文件OUT.DAT中。注意;部分源程序已给出。请勿改动主函数main()、读函数readData()和写函数writeData()的内容。试题程序;#include#include#include#include#defineMAX200typedefstruct{charID[5];//产品代码charname[11];//产品名称intprice;//单价intamount;//数量longvalue;//金额}PRODUCT;PRODUCTsell[MAX];voidreadData();voidwriteData();voidsortData(){}voidreadData(){FILE*fp;charstr[80],ch[11];inti;fp=fopen("IN.DAT","r");for(i=0;i标准答案:voidsortData(){PRODUCTtemp;inti,j;memset(&temp,0,sizeof(temp));for(i=0;isell[j].value||(sell[i].value==sell[j].value&&strcmp(sell[i].ID,sell[j].ID)>0)){memcpy(&temp,&sell[i],sizeof(temp));/*将以&.sell[i]为起始地址、大小为sizeof(temp)的内存中的内容复制到以temp为起始地址的内存中*/memcpy(&sell[i],&sell[j],sizeof(temp));memcpy(sell[j],&temp,sizeof(temp));}}知识点解析:本题考查的主要是结构数组排序的问题。所谓结构数组排序就是以结构某一元素为依据对结构数组进行排序。本题排序的思想是;将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,最终达到从小到大排序的目的。但是由于结构不像变量那样可以通过简单的赋值来交换变量(如果要赋值的话需要对结构里的所有元素进行赋值替换,比较麻烦),所以在进行两个相邻结构交换时,要用到内存拷贝函数memcpy()来对内存的内容整体进行操作。国家三级(网络技术)机试模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序,要求:将文件IN92.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的数的算术平均值pj(保留两位小数),结果max,cnt,pj输出到out92.dat中。部分程序、读函数read_dat(intxx[200])及输出格式已给出。试题程序:#include<conio.h>#include<stdio.h>#defineN200voidread_dat(intxx[N]){inti,j;FILE*fp;fp=fopen("IN92.DAT","r");for(i=0;i<20;i++){for(j=0;j<10;j++>{fscanf(fp,"%d,",&xx[i*10+j]);printf("%d",xx[i*10+j]);}printf("\n");}fclose(fp);}voidmain(){inti,k,cnt,xx[N],max;floatpj;FILE*fw;longj=0;clrscr();fw=fopen("out92.dat","w");read_dat(xx);printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);fclose(fw);}标准答案:voidmain(){inti,k,cnt,xx[N],max;floatpj;FILE*fw;longj=0;clrscr();fw=fopen("out92.dat","N");read_dat(xx);max=xx[0];for(i=1,k=0;i<N;i++){if(xx[i]>max)max=xx[i];/*求出数组xx中最大数max*/if(xx[i]%3==0||xx[i]%7==0){j+=xx[i];/*求出数组xx中值能被3整除或能被7整除的数的总和*/k++;}}for(i=0,cnt=0;i<N;i++)if(xx[i]==max)cnt++;/*求出数组xx中最大数max的个数*/Pj=(float)(j*100/k)/100;/*求出数组xx中值能被3整除或能被7整除的数的平均值*/printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);fclose(fw);}[解析]本题考查的知识点如下:(1)运算符“%”的使用。(2)判断结构中多个条件的布尔运算。首先,要找出数组中最大的元素。先定义第1个元素为最大的元素,然后依次和后面的元素比较,若后面的数中有大于第1个元素的,则将这个数定义为最大的元素。再和后面的数进行比较。一个数a除以b取余所得的数为0,则a能被b整除。根据题意可知,被3整除和被7整除两个条件满足一个即可,所以两个条件之间用“或”运算。在本题中,要求算术平均值保留两位小数。使用的方法是:将和乘以100除以个数强制类型转换后再除以100。为了保证和有效,我们定义了一个长整型变量来记录和。因为个数也为整型,运算符“/”在这里的含义是整除,而我们要保留小数,所以要使用强制类型转换将和乘以100的结果转换为浮点类型,这样就可以实现保留两位小数。知识点解析:暂无解析国家三级(网络技术)机试模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①首先定义一个循环变量i,以及分别用来存放四位数分解之后各位数的变量qw(千位)、bw(百位)、sw(十位)和gw(个位)。②通过for循环依次对数组中的每个四位数进行分解,循环初值为1000,终值为5000,每循环一次,循环变量i的值加1。每分解一个四位数,根据题目要求,判断其“千位+百位=十位+个位”的条件是否满足,同时判断“(千位+百位)=(个位-千位)*10”的条件是否满足,两个条件之间用&&运算符进行连接。当同时满足以上两个判断条件时,计数变量cnt的值加1,同时将该四位数累加到求和变量sum中,最终得到满足条件的四位自然数个数cnt及它们的和sum。本题中cnt和sum变量在源程序中已经定义,在该子程序中就不需要再重新定义了。国家三级(网络技术)机试模拟试卷第8套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①首先定义一个循环变量i,以及分别用来存放四位数分解之后各位数的变量qw(千位)、bw(百位)、sw(十位)和gw(个位)。②通过for循环依次对数组中的每个四位数进行分解,每分解一个四位数,则根据题目要求,判断其“个位-百位-十位-千位>0”的条件是否满足,当满足条件时,则将a[i]的值累加到变量pjz1中,同时计数变量cnt的值加1;如果不满足判断条件,则将四位数累加到变量pjz2中。当for循环结束之后,就能等到所有满足条件的四位数之和pjz1和个数,以及所有不满足条件的四位数之和pjz2。③最后将变量pjz1的值除以变量cnt的值,得到所有满足条件的四位数的平均值并赋给变量pjz1,将变量pjz2的值除以300减去变量cnt的差,得到所有不满足条件的四位数的平均值并赋给变量pjz2。本题中,pjz1、pjz2和cnt三个变量在源程序中已经定义,在该子程序中就不需要再重新定义了。国家三级(网络技术)机试模拟试卷第9套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT53.DAT中。请勿改动主函数main()、读函数readDat()和写函数wiltedat()的内容。试题程序:#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){}voidreadDat(){{inti;FILE*fp;fp=fopen("in53.dat","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d",b[i]);printf("\n");writeDat();}writeDat(){FILE*fp;inti;fp=f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司物流配送改进方案
- 公司应付账款管理方案
- 2026年社区基础设施创新报告
- 2026年预制菜预制菜用品包装创新报告
- 2025湖北省人才发展集团有限公司社会招聘3人笔试历年参考题库附带答案详解
- 2025湖北恩施州巴东高峡旅行社有限公司招聘8人笔试历年参考题库附带答案详解
- 2025浙江衢州市常山县农村投资集团有限公司招录2人笔试历年参考题库附带答案详解
- 2025浙江省湖州市安吉县交通投资发展集团有限公司及下属子公司面向社会公开招聘工作人员笔试历年参考题库附带答案详解
- 2025浙江湖州南浔城市投资发展集团有限公司环保板块公开招聘3人笔试历年参考题库附带答案详解
- 2025浙江椒江农场招聘编制外工作人员1人笔试历年参考题库附带答案详解
- 2026年北京市石景山区初三一模数学试卷(含答案)
- 湖北省鄂东南联盟2025-2026学年高一下学期期中考试语文试卷(含答案)
- 2025年征信报告模板样板个人版模版信用报告详细版(可修改编辑)
- 社会体育指导员工作规范课件
- 人教版 七年级下册 历史 期中测试(一)
- 手机保护壳工业分析与模具设计说明书-毕业论文
- 八年级数学-张美玲-海伦公式
- 2022年浙江杭州市中考英语试卷真题及答案详解(含作文范文)
- 高考议论文写作指导课件
- 金蝉使用说明书
- GB/T 2423.16-2022环境试验第2部分:试验方法试验J和导则:长霉
评论
0/150
提交评论