国家三级(网络技术)机试模拟试卷2(共9题)_第1页
国家三级(网络技术)机试模拟试卷2(共9题)_第2页
国家三级(网络技术)机试模拟试卷2(共9题)_第3页
国家三级(网络技术)机试模拟试卷2(共9题)_第4页
国家三级(网络技术)机试模拟试卷2(共9题)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家三级(网络技术)机试模拟试卷2(共9套)(共9题)国家三级(网络技术)机试模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:通过审题可以发现主要有3个不同点:①要求进行比较的元素大于连续前5个数,因此在设置for循环条件语句时,应该从第6个元素开始,即数组下标i的值等于5,参考答案的第2条语句;②当前元素连续大于前5个数时,前5个元素的数组下标表示也有所不同,判断表达式也不一样,参考答案的第4条语句:③统计结果按从大到小的方式进行排序,即参考答案的第9条语句。国家三级(网络技术)机试模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN85.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组9中,请编制一函数jsVal(),其功能是:如果一个4位数的千位数字上的值加十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT85.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){}voidreadDat(){inti;FILE*fp;fp=fopen("IN85.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}main(){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=fopen("OUT85.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}标准答案:voidjsVal(){inti,thou,hun,ten,data,j;for(i=0;i<200;i++){thou=a[i]/1000;/*求四位数的千位数字*/hun=a[i]%1000/100;/*求四位数的百位数字*/ten=a[i]%100/10;/*求四位数的十位数字*/data=a[i]%10;/*求四位数的个位数字*/if(thou+ten==hun+data&&a[i]%2!=1){/*如果千位数加十位数等于百位数加上个位数,并且此数是偶数*/b[cnt]=a[i];/*则将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数*/}}for(i=0;i<cnt-1;i++)/*将数组b中的数按小到大的顺序排列*/for(j=i+l;j<cnt;j++)if(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}}知识点解析:本题考查的知识点如下:(1)运算符“%”及“/”的使用。(2)选择结构中多个条件的布尔运算。(3)数据的排序。在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%”(取余)和“/”(整除),拆分方法略。题中给出的两个条件必须同时满足,所以两条件之间用“与”运算。将符合条件的数先存入数组b中,再对b中的数据进行排序。排序使用“选择排序法”。国家三级(网络技术)机试模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有200个四位整型数,函数ReadData()负责将IN.DAT中的数读到数组inBuf[]中。请编写函数findValue(),其功能是;把千位数字和十位数字重新组合成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),新组成的两个两位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新两位数字均不为0。求出满足条件的数,用count记录下符合条件的数的个数,并按照从大到小的顺序存人数组outBuf[]中。函数WriteData()负责将outBuf[]中的数输出到文件OUT.DAT中并且在屏幕上显示出来。程序中已定义数组;inBuf[200],outBuf[200]9已定义变量;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,ab,cd;for(i=0;icd&&ab%2==0&&ab%5==0&&cd%2!=0&&ab!=0&&>cdl!=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、文件IN.DAT中存有200个四位整型数,函数readData()负责将IN.DAT中的数读到数组inBuf[]中。请编写函数findValue(),其功能是;把个位数字和千位数字重新组合成一个新的两位数ab(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的千位数字),以及把百位数和十位数组成另一个新的两位数cd(新两位数的十位数字是原四位数的百位数字,新两位数的个位数字是原四位数的十位数字),新组成的两个两位数必须有一个是奇数,另一个为偶数且两个两位数中至少有一个数能被17整除,同时两个新数的十位数字均不为0。求出满足条件的数,用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();print{("count=%d\n",count);for(i=0;i标准答案:voidfindValue(){inti,j,k,d[4],temp,ab,cd;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.对选出的数据进行排序。国家三级(网络技术)机试模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN60.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab<cd,ab必须是奇数且不能被5整除,cd必须是偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果ont及数组b中符合条件的4位数输出到OUT60.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidjsVal(){}voidreadDat(){inti;FILErfp;fp=fopen("IN60.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&aIi]);fclose(fp);}main(){inti;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d\n",b[i]);printf("\n");writeDat();}writeDat(){FILE*fp;inti;fp=fopen("OUT60.DAT","w");fprintf(fp,"%dkn",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}标准答案:voidjsVal(){inti,thou,hun,ten,data,j;intab,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;/*把千位数和十位数重新组合成一个新的十位数ab*/cd=10*data+hun;/*把个位数和百位数组成另一个新的十位数cd*/if((ab-cd<0)&&(ab%2==l)&&(ab%5!=0)&&(cd%2==0)&&ab!=0&&cd!=0){/*如果ab<cd,ab是奇数且不能被5整除,cd是偶数,同时两个数字均不为零*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数*/}}for(i=0;i<cnt-1;i++)/*将数组b中的4位数按从大到小的顺序*/for(j=i+l;j<cnt;j++)if(b[i]<b[j]){data=b[i];b[i]=b[j];b[j]=data;}}知识点解析:本题考查的知识点如下:(1)将4位数各位上的数拆分为独立的数字。(2)循环结构的使用。(3)判断结构中多个条件的布尔运算。在本题中,首先要将4位数各位上的数字拆分为独立的数字。这要借助运算符“%”(取余)与“/”(整除)。将一个4位数整除1000则可得到其干位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。求得各位上的数字后,就可以重新组合进行比较。各条件必须同时满足,所以用“与”运算。题中要求将符合条件的数按从大到小的顺序存入数组b,可以先将符合条件的数存入数组b,再对数组b进行排序。排序使用“选择排序法”。国家三级(网络技术)机试模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①定义整型变量i、j和长整型he,并把其初始值设置为0。②用for循环语句对数组xx进行扫描,如果当前数组元素xx[i]非零,则全局变量totNum加1。③在for循环语句中,循环变量i从0开始递增到totNum-1,对数组xx中的每个元素xx[i]右移一位,把这个值赋给整型变量j,再对j的值对2求余数,如果余数等于0,则变量totCnt加1,并把数组元素xx[i]累加到变量he。④退出循环时,把变量he的数据类型转换成双精度型再除以变量totCnt的值,就得到算术平均值totPjz。国家三级(网络技术)机试模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、编写函数intFib_Res(intn),其功能是求Fibonacci数列F(n)中大于n的最小的一个数的值,结果由函数返回,其中Fibonacci数列F(n)的定义为;F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)函数WriteData()负责把结果输出到OUT.DAT文件中。例如;当n=1000时,函数值为1597。注意;部分源程序已给出。请勿改动主函数main()和写函数WriteData()的内容。试题程序;#include#defineDATA1000intSol;voidWriteData();intFibRes(intn){}voidmain(){intn;n=DATA;sol=Fib_Res(n);printf("n=%d,f=%d\n",n,sol);WriteData();}voidWriteData(){FILE*OUt;out=fopen("OUT.DAT","w");fprintf(out,"f=%d\n",sol);fclose(out);}标准答案:intFib_Res(intn){intf1=0,f2=1,fn;//定义fn存储Fibonacci数,初始化数列的前两项f1、f2fn=f1+f2;//计算后一项Fibonacci数while(fn<=n)//如果当前的Fibonacci数不大于n,则继续计算下一个Fibonacci数{f1=f2;f2=fn;fn=f1+f2;}returnfn;}知识点解析:本题主要考查递归算法。根据已知数列可知;在Fibonacci数列中,从第3项开始,每一项都可以拆分为前两项之和。本题要求找到该数列中“大于n的最小的一个数”,因此可以借助一个while循环来依次求数列中的数,直到某一项的值大于n,那么这一项就是“大于n的最小的一个数”。国家三级(网络技术)机试模拟试卷第8套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制函数moveChar(char*s),其功能是;把S字符串中偶数位的字符左移到其相邻的偶数位上,偶数位的第一个字符移到最后一个偶数位上。奇数位的字符右移到与其相邻的奇数位上,奇数位的最后一个字符移到第一个奇数位上。函数readWriteData()负责读人文件IN.DAT中的数据,并把结果输出到OUT.DAT文件中。例如;S字符串中原有内容为abcdefg,则调用该函数后,结果为gdafcbe。注意;部分源程序已给出。请勿改动主函数main()和输出函数readWriteData()的内容。试题程序;#include#include#include#defineN81voidreadWriteData();voidmoveChar(char*s){}voidmain(){charinput[N];inti;for(i=0;i标准答案:voidmoveChar(char*s){chartemp[2];inti,len;len=strlen(s);//求出字符串S的长度temp[0]=*(s+1);//保存偶数位的首位if(len%2==0){temp[i]=*(s+len-1-1);//将奇数位的最后一位保存for(i=len-1;i>1;i-=2)*(s+i-1)=*(s+i-1-2);//奇数位右移*s=temp[1];//将奇数位的最后一位放到奇数队列的首位for(i=2;i1;i-=2)*(x+i-1)=*(s+i-1-2);//奇数位右移*s=temp[1];//将奇数位的最后一位放到奇数队列的首位for(i=2;i知识点解析:本题主要考查利用指针对字符串中字符进行移动。基本步骤是;1.分别将偶数位的头一位和奇数位的最后一位保存;2.利用指针,分别对数组中的奇数位和偶数位进行赋值移动;3.将保存起来的值放到移动后的留下的位置处。国家三级(网络技术)机试模拟试卷第9套一、程序设计题(本题共1题,每题1.0分,共1分。)1、现有一个10个人的100行选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人选中的情况,第二位表示第2个选中的情况,以此类推;内容均为字符0或1,0表示此人未被选中,1表示此人被选中。若一张选票人数大于5个人时被认为无效。给定函数Rdata()的功能是把选票数据读人到字符串组string中。请编写CountRs()函数。其功能是实现;统计每个人的选票数并把票数依次存人result[0]到result[9],把结果result输出到OUT.DAT中。注意;部分源程序已经给出。请勿改动主函数main()和输出函数Wdata()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论