版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家三级(网络技术)机试模拟试卷22(共9套)(共9题)国家三级(网络技术)机试模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①定义整型循环变量i、j和字符局部变量yuan。②在第一层for循环中,循环变量i从0开始,依次递增直到其值大于或等于maxline,在循环体中,首先把第i行的第一个字符xx[i][0]赋给变量yuan,在第二层for循环中,循环变量j从0开始,依次递增直到其值等于该行字符串的长度减1,在循环体中,将字符xx[i]啪的ASCII码值与字符xx[i][j+1]的ASCII码值相加的和保存到字符xx[i][j]中。当退出第二层for循环后,把第i行的最后一个字符与第一个字符变量yuan的值相加,最后通过strrev()函数对i行字符串逆序排序。国家三级(网络技术)机试模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①首先定义两个循环整型变量i,j和存放ASCII码值的中间变量val。②通过两个for循环完成对字符串的替换。第一个for循环的循环变量i的初值为0,当i值等于文章中最大行数值maxline时停止循环,每循环一次,i的值加1;第二层for循环中,循环变量j的初值为0,表示从第i行的第1个字符开始计算,当j值等于该行中字符串长度的数值时停止循环,每循环一次,j的值加1。③循环体中,根据题意重新计算每个字符XX[i][j]的ASCII码值,当新取得的ASCII码值大于32且小于等于130时,则用新的ASCII码值所对应的字符替代原来的字符,新ASCII码值不在此范围内的字符则保持原字符不变。国家三级(网络技术)机试模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、标准答案:知识点解析:①首先定义循环变量i,然后将i的值赋初值为3,每循环一次则将i的值加1,直到i<90。②在for循环中,每执行一次循环则调用函数isPrime()(该函数具体的算法已经在源程序中给出,直接调用即可),对i、i+4、i+10是否同时是素数进行判断,如果这三个数同时为素数,则计数变量cnt值加1,同将时将变量i的值累加到sum上。国家三级(网络技术)机试模拟试卷第4套一、程序设计题(本题共1题,每题1.0分,共1分。)1、在文件IN.DAT中有200个四位正整数。函数ReadData()功能是读取这200个数存放到数组inBuf[]中。请编制函数select(),其功能是;要求按每个数的后3位的大小进行升序排列,如果出现后3位为相等的数,则对这些数按原始四位数进行升序排列。将排序后的前10个数存人到数组outBuf[]中,最后调用函数WriteData()把原始结果outBuf[]输出到文件OUT.DAT中。例如;处理前3234423422341234处理后1234223432344234注意;部分源程序已给出。请勿改动主函数main()、读函数ReadData()和写函数Writedata()的内容。试题程序;#include#include#include#defineINCOUNT200#defineOUTCOUNT10intinBuf[INCOUNT],outBuf[OUTCOUNT];voidReadData();voidWriteData();voidselect(){}voidmain(){ReadData();select();WriteData();}voidReadData(){FILE*in;int1;in=fopen("IN.DAT","r");for(i=0;i标准答案:voidselect(){inti,j,c[2],temp;for(i=0;iinBuf[j])){temp=inBuf[i];inBuf[i]=inBuf[j];inBuf[j]=temp;}}}for(i=0;i知识点解析:本题主要考查数位分解及排序。分解四位数后3位的方法是将此四位数inBuf[i][j]对1000求余,所得余数即为该数据的后3位。本题排序的思想是,将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。国家三级(网络技术)机试模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、函数ReadDat()的功能是实现从文件ENG62.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS62.DAT中。替代关系:f(p)=p*13mod256(p是数组xx中某一个字符的ASCII值,f(b)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。注意:部分源程序已给出。原始数据文件的存放格式是每行的宽度均小于80个字符。请勿改动函数main()、读函数ReadDat()和写函数WriteDa()的内容。#include<conio.h>#include<stdio.h>#include<string.h>#include<ctype.h>unsignedcharxx[50][80];intmaxline=0;intReadDat(void);voidWriteDat(void);voidencryChar(){}voidmain(){clrscr();if{ReadDat()){printf("数据文件ENG62.IN不能打开!\n\007");return;}encryChar();WriteDat();}intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen("ENG62.IN","r"))==NULL)return1;while(fgets(xx[ii,80,fp)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;}voidWriteDat(){FILE*fp;inti;fp=fopen("ps62.dat","w");for(i=0;i<maxtine;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}标准答案:voidencryChar(){inti;char*pf;for(i=O;i{while(*pr!=0){if(((*pf*13%256)%2==O)||(*pf*13%256<=32))/*如果计算后的值小于等于32或其ASCII值是偶数*/{pf++;/*则该字符不变,去取下一个字符*/continue;/*退出此次循环*/}*pf=*pf*13%256;/*否则将新字符替代原字符*/pf++;/*去取下一个字符*/}}}知识点解析:本题考查的知识点如下:(1)字符对应的ASCII码。(2)判断结构中多个条件的“或”运算。(3)退出一次循环。在C语言中,字符可参与任何整数运算。实际上,是字符的ASCII码参与了运算。所以可以直接用字符代入f(p)的关系式中求出替换字符。若f(p)≤32或其ASCII值是偶数,则该字符不变。两个条件满足一个即可,所以这两个条件之间用“或”运算。若字符不变,则可不必计算替换字符,使用continue跳出本次循环,进入下一次循环的条件判断中。因为这里不是直接退国家三级(网络技术)机试模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN89.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:如果一个4位数的千位数字上的值加个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且此4位数是奇数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符个条件的4位数输出到OUT89.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("IN89.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclese(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("OUT89.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+data==hun+ten)&&a[i]%2==1)/*如果千位数加个位数等于百位数加十位数,并且此数是奇数*/{b[cnt]=a[i];/*则将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数*/}}for(i=0;i<cnt-1;i++)/*将数组b中的数按从小到大的顺序排列*/for(j=i+1;j<cnt;j++)if(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}}知识点解析:本题考查的知识点如下:(1)运算符“%”及“/”的使用。(2)选择结构中多个条件的布匀;运算。(3)数据的排序。在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%”(取余)和“/”(整除),拆分方法略。一个数除以2取余所得的数为1,则这个数是奇数。题中给出的两个条件必须同时满足,所以两条件之间用“与”运算。将符合条件的数先存入数组b中,再对b中的数据进行排序。排序使用“选择排序法”。国家三级(网络技术)机试模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数intjsValue(longn)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out43.dat中。注意:部分源程序已给出。请勿改动主函数main()。#include<stdio.h>intjsValue(longn){}main(){longm;FILE*out;out=fopen("out43.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",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];ltoa(n,xy,10);/*将长整数n转换成与其等价的字符串存入xy指向的字符串中,输出串为十进制*/strl=strlen(xy);/*求字符串的长度*/half=strl/2;for(i=0;i<half;i++)if(xy[i]!=xy[--strl])break;/*判断字符串是否左右对称*/if(i>=half)return1;/*如果字符串是回文,则返回1*/elsereturnO;/*否则返回0*/}知识点解析:本题考查的知识点如下:(1)将整型变量转换成字符串。(2)字符串长度的确定和循环的使用。(3)字符串是否对称的判断。回文数是指其各位数字左右均对称的整数,因为给出的数的位数不确定,所以不采用将各位上的数字转变成单独的数再比较的方法。这里使用函数char*ltoa(longnum,char*str,intradix),其功能是将长整数num转换成与其等价的字符串存入str指向的字符串中,输出串的进制由radix决定。将整数转变成字符串后,判断字符串是否左右对称。求得字符串长度后设置两个变量,一个从字符串的头开始向后移动,一个从字符串的倒数第一个元素开始向前移动,直到移至数组的中间元素。若两者所决定的数组元素均相等,则字符串左右对称。国家三级(网络技术)机试模拟试卷第8套一、程序设计题(本题共1题,每题1.0分,共1分。)1、函数ReadData()负责从文件IN.DAT中读取1000个十进制整数到数组inBuf[]中。请编制函数Compute()分别计算出inBuf[]中偶数的个数even、奇数的平均值avel、偶数的平均值ave2及所有偶数的方差tot_v的值。函数WriteData()负责把结果输出到OUT.DAT文件中。计算方差的公式如下;设N为偶数的个数,inBuf[i]为偶数,ave2为偶数的平均值。原始数的存放格式是;每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。注意;部分源程序已给出。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序;#include#include#include#defineMAX1000intinBuf[MAX],odd=0,even=0;doubleave1=0.0,ave2=0.0,tot_v=0.0;voidWriteData(void);intReadData(void){FILE*fp;inti,j;if((fp=fopen("IN.DAT","r"))==NULL)return1;for(i=0;i<100;i++){for(j=0;j<10;j++)fscanf(fp,"%d,",&inBuf[i*10+j]);fscanf(fp,"n");if(feof(fp))break;}fclose(fp);return0;}voidCompute(void){}voidmain(){inti;for(i=0;i标准答案:voidCompute(void){inti,j;for(i=0;i知识点解析:本题主要考查平均值和方差的计算问题。1.求平均值;由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数来取平均的话,变量不能存储那么大的数据而导致溢出。本题的程序采用的方法是;N个数的平均值=[前(N-1)个数的平均值*(N-1)+第N个数]/N,采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。2.求方差;按照所给公式,将数值代入计算即可。国家三级(网络技术)机试模拟试卷第9套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函数ReadData()负责将IN.DAT中的数据读到数组inBuf[]中。请编制函数replaceChar(),该函数的功能是;以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后字符的ASCII值再加上原字符的ASCII值,得到新的字符,并存人原字符串对应的位置上。把已处理的字符串仍按行重新存人字符串数组inBuf[]中,函数WriteData()负责将inBuf[]中的数据输出到文件OUT.DAT中并且在屏幕上打出。原始数据文件存放的格式是;每行的宽度均小于80个字符,含标点符号和空格。注意;部分源程序已给出。请勿改动主函数main()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年驾驶员试用期间聘用合同版B版
- 17 记金华的双龙洞(说课稿)-2023-2024学年统编版语文四年级下册
- 专业康复服务协议样式2024版A版
- 20XX年航空货运代理合作合同(2024版)一
- 2024法律规定离婚合同书样例版B版
- 专业化冷冻仓库施工合同合同下载版
- 2024汽车展场地租赁及品牌赞助商权益合作协议3篇
- 福建省南平市五夫中学2020-2021学年高二数学文模拟试题含解析
- 福建省南平市渭田中学2020-2021学年高二语文月考试卷含解析
- 2024月子中心消防报警系统采购与安装服务合同3篇
- 2024年销售员工年度工作总结
- 2024-2025学年广东省深圳市南山区监测数学三年级第一学期期末学业水平测试试题含解析
- 电子招投标平台搭建与运维服务合同
- 人工智能 课件 第五章 机器学习
- 食品研发调研报告范文
- 2024-2030年国家甲级资质:中国干热岩型地热资源融资商业计划书
- 2024-2030年中国MVR蒸汽机械行业竞争格局及投资发展前景分析报告
- 【MOOC】人因工程学-东北大学 中国大学慕课MOOC答案
- 食材配送服务方案投标文件(技术方案)
- 中国慢性阻塞性肺疾病基层诊疗指南(2024年)解读
- 高中政治统编版选择性必修二《法律与生活》综合测试卷(一)(原卷版)
评论
0/150
提交评论