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

下载本文档

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

文档简介

国家三级(网络技术)机试模拟试卷29(共9套)(共9题)国家三级(网络技术)机试模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①首先定义一个循环变量循环i以及用来存放3位数分解之后各位数的变量bw(百位)、sw(十位)和gw(个位)。②通过for循环对100到999的每个数字进行逐个的扫描,循环变量i从100开始,每执行一次循环,i的值加1。⑨在每次执行for循环时,分解当前变量i值的百位上的数字、十位上的数字和个位上的数字,然后利用表达式(gw+sw)%10=bw来判断个位数字与十位数字之和被10除所得余数与百位数字是否相等,同时调用函数isP()判断变量i的值是否是素数,如果以上两个条件同时满足(两个表达式通过&&运算符进行连接),则计数变量cnt值加1、并把其值加到变量sum上,直到循环结束,即可求出从100到999中所有满足条件的素数的个数和它们的和。国家三级(网络技术)机试模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN44.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT44.DAT文件中。例如:9123,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。9812,9-8-1-2<0,则该数不满足条件,忽略。注意:部分源程序已给出。程序中已定义数组:a[300],b[300],己定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:#include<stdio.h>inta[300],b[300],cnt=0;jsValue(){}main(){ihti;readDat();jsValue();writeDat();for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);}readDat(){FILE*fp;inti;fp=fopen("IN44.DAT","r");printf("cnt=%d\n",cnt);for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}writeDat(){FILE*fp;inti;fp=fopen("OUT44.DAT","w");fprintf(fp,"%al\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}标准答案:jsValue(){inti,thou,hun,ten,data,j;for(i=O;i<300;i++){thou=a[i]/1000;/*求四位数的千位数字*/hun=a[i]%1000/100;/*求四位数的百位数字*/ten=a[i]%100/10;/*求四位数的十位数字*/data=a[i]%10;/*求四位数的个位数字*/if(thou-hun-ten-data>O)/*如果千位数减百位数减十位数减个位数大于零*/{b[cut]=a[i];/*则把该数存入数组b中*/cut++;/*统计满足条件的数的个数*/}}for(i=O;i<cnt-1;i++)/*对数组b的4位数按从小到大的顺序进行排序*/for(j=i+l;j<cnt;j++)if(b[i]>b[j]){data=bIi];b[i]-b[j];b[j]=data;}}知识点解析:本题考查的知识点如下:(1)运算符“%”及“/”的使用。(2)循环结构及选择结构的使用。在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%”(取余)和“/”(整除)。将一个4位数整除1000则可得到其千位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。然后按照题意要求将各位依次相减进行判断。最后的排序采用“选择排序法”。国家三级(网络技术)机试模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、函数readData()的功能是实现从文件IN.DAT中读取一篇英文文章存入到字符串数组inBuf中。请编制函数arrangeChar(),该函数的功能是;以行为单位把字符串中所有的非字母字符用空格替换。最后把已处理的字符串仍按行重新存入字符串数组inBuf中。函数writeData()负责把结果输出到文件OUT.DAT中。例如,原文;my.name.is.Lln.T2oNice.to.meet.you结果;mynameisLnToNicetomeetyou原始数据文件存放的格式是;每行的宽度均小于80个字符,含标点符号和空格。注意;部分源程序已给出。请勿改动主函数main()、读函数readData()和写函数writeData()的内容。试题程序;#include#include#include#include#defineLINE50#defineCOL80charinBuf[LINE][COL+1];inttotleLine=0;//文章的总行数intreadData(void);voidwriteData(void);voidarrangeChar(){}voidmain(){system("CLS");if(readData()){print{("IN.DATcan’tbeopen!\n\007");return;}arrangeChar();writeData();}intreadData(void){FILE*fp;inti=0;char*P;if((fp=fopen("IN.DAT","r"))==NULL)return1;while({gets(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标准答案:voidarrangeChar(){inti,j,flag,amount;for(i=0;i’z’||(inBuf[i][j]>’Z’&&inBuf[i][j]<’a’)||inBuf[i][j]<’A’)/*如果遇到某一个非字母符号*/{flag=1;//将标志置1,表明此次处理中遇到了非字母符号inBufEi][j]=’’;}}}}知识点解析:本题主要考查字符串中字符的替代问题。这类题目比较简单,只要找到字符串中非字母字符就可以了。确定非字母字符的方法是,在ASCII码表中,其ASCII码值比"z"大、比"A"小和在"Z"与"a"之间的那些字符都是非字母字符,然后再用空格替代这些非字母字符即可。国家三级(网络技术)机试模拟试卷第4套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①定义字符指针p,q,并且q指向字符串str。定义计数整型变量cnt,设置其值等于0。②在while循环中调用C语言的字符串库函数strstr(),返回子字符串substr在字符串q第一次出现的位置,赋给变量p。用if语句判断,如果p的值为空,则说明在字符串str没有找到子字符串,退出循环。否则,变量cnt加1,再把p的值加2(因为子字符串substr的长度为2)赋给变量q,执行下一次循环。直到字符串中不存在子字符串时,退出循环结束。③最后,返回子字符串substr在字符串str中出现的次数。国家三级(网络技术)机试模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①定义整型循环变量i、j。②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于maxline,实现对文章每行的处理。第二层for循环中,循环变量j从0开始,依次递增直到其值等于strlen(xx[i]),在循环体中,利用if条件语句首先判断xx[i][j]的值是否在小写字符字符’a’~’z’之间,然后,再判断在此范围之内的小写字母,如果是’z’,则该字符转换为’a’,如果字符不是’z’,则将其改写成它的下一个字母。国家三级(网络技术)机试模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS18.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。试题程序:#include〈conio.h>#include〈ctype.h>unsignedcharxx[50][80];intmaxline=0;/*文章的总行数*/intReadDat(void);voidWriteDat(void);voidencryptChar(){}main(){clrscr();if(ReadDat()){printf("数据文件ENS18.IN不能打开!\n\007");return;}encryptChar();WriteDat();}intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen("ENG18.IN","r"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;}voidWriteDat(void){FILE*fp;inti;fp=fopen("PS18.DAT","w");for(i=0;i〈maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}标准答案:voidencryptChar(){inti;char*pf;for(i=0;i〈maxline;i++){pf=xx[i];while(*pf!=0){if((*pf*11%256>=’0’&&*pf*11%256〈=’9’)||*pf*11%256〈=32){pf++;continue;}/*如果计算后的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变*/*pf=*pf*11%256;/*否则按给定的替代关系进行替代*/pf++;}}}知识点解析:本题主要考查用指针变量来控制字符数组,由于要对已有二维字符数组的所有元素逐个处理,因此,需要定义一个字符指针变量来控制原二维数组的各行,当前行如果确定下来,用指针的移动就可以依次扫描该行的所有字符元素,每得到一个字符就对它行条件判断,根据题意,条件用“if(*pf*11%256>=’0’&&*pf*11%256<=’9’)||*pf*11%256<=32)”语句来实现,如果该字符不满足上述条件,就用一个新的字符来替代,新的字符是当前字符乘以11的结果再去与256求余数。处理完毕后,指针去取下一个字符。如果该字符满足所给条件,将不做任何操作,指针直接下移,去取下一个字符,对下一个字符进行处理。国家三级(网络技术)机试模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有300个四位整型数,函数ReadData()负责将IN.DAT中的数读到数组inBuf[]中。请编写函数findValue(),其功能是;求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数count,再求出所有满足此条件的四位数平均值averagel,以及所有不满足此条件的四位数平均值average2,最后调用函数WriteData()把结果count、averagel、average2输出到OUT.DAT文件中。注意;部分源程序已给出。程序中已定义数组;inBuf[NUM],已定义变量;count,averagel,average2。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序;#include#defineNUM300intinBuf[NUM],count=0;doubleaverage1=0,average2=0;voidReadData();voidWriteData();voidfindValue(){}voidmain(){ReadData();findValue();WriteData();printf("count=%d\naverag1=%7.21f\naverag2=%7.21f\n",count,average1,average2);}voidReadData(){FILE*fp;inti;fp=fopen("IN.DAT","r");for(i=0;i标准答案:voidfindValue(){inti,j,k,d[4],temp,count_no=0;for(i=0;i知识点解析:本题主要考查数位分解及数据平均值的求法。程序步骤;1.将数值送入temp中。2.数位分解;由temp%10得到个位数;(temp/10)%10得到十位数……如此可得到各位上的数值。3.按照题目所给的条件选出数据。4.对选出的数据求平均值;由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数来取平均的话,变量不能存储那么大的数据而导致溢出。本题的程序采用的方法是;N个数的平均值=[前(N-1)个数的平均值*(N-1)+第N个数]/N,采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。国家三级(网络技术)机试模拟试卷第8套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函数ReadData()负责将IN.DAT中的数据读到数组inBuf[]中。请编制函数replaceChar(),该函数的功能是;以行为单位把字符串中的所有大写字母改成该字母的下一个字母,字母Z成字母A。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存人字符串数组inBuf[]中,函数WriteData()负责将inBuf[]中的数据输出到文件0UT.DAT中并且在屏幕上打出。例如;S字符串中原有的内容为;my.name.is.Lin.TaoNice.to.meet.you则调用该函数后,结果为;my.name.is.Min.UaoOice.to.meet.you原始数据文件存放的格式是;每行的宽度均小于80个字符,含标点符号和空格。注意;部分源程序已给出。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序;#include#include#include#include#defineLINE70#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={open("OUT.DAT","w");for(i=0;i标准答案:voidreplaceChar(){inti,j;for(i=0;i=’A’&&inBuf[i][j]<=’Z’)//如果字符在’A’~’Z’之间{if(inBuf[i][j]==’Z’)inBuf[i][j]=’A’;//如果是字符’Z’,则用’A’来代替elseinBuf[i][j]=(char)((int)inBuf[i][j]+1);//其他情况则用其后面的字符代替}}知识点解析:本题主要考查字符与其对应的ASCII码之间的转换及对ASCII码进行操作。程序步骤;1.依据条件选择inBuf[i][j],将其进行类型强制转换成整型(也即所对应的ASCII码值)。2.将ASCII码值加1或减1以将该字符的ASCII码值换成其下一位的ASCII码值,将计算所得结果再转换成字符型存储到inBuf[i][j]中。国家三级(网络技术)机试模拟试卷第9套一、程序设计题(本题共1题,每题1.0分,共1分。)1、在文件IN3.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果比输出到文件OUT3.DAT中。例如:处理前90125099601270258088处理后50998088702560129012注意:部分源程序已给出。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:#include<stdio.h>%include<string.h>%include<conio.h>intaa[200],bb[10];voidjsSort(){main(){readDat();jsSort();writeDat();}readDat(){FILE*in;inti;in=fop

温馨提示

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

评论

0/150

提交评论