版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机三级网络技术机试(上机操作)模拟试卷5(共9套)(共9题)计算机三级网络技术机试(上机操作)模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函数ReadData()负责将IN.DAT中的数据读到数组inBuf[][]中。请编制函数replaceChar(),该函数的功能是按照指定规则对字符进行替换。变换后的值仍存入inBuf[][]中。函数WriteData()负责将inBuf[][]中的数据输出到文件OUT.DAT中并且在屏幕上打出。替换规则为:先对字符的ASCII码按公式y=(a*11)mod256进行运算(a为某一字符的ASCII码值,y为变换后的ASCII码值),如果计算后Y的值小于等于32或大于130,则字符保持不变,否则用Y代替a。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序:#include#include#include#include#defineLINE50#defineCOL80charinBuf[LINE][COL+1];inttotleLine=0;//文章的总行数intRcadData(void);voidWriteData(void);voidreplaceChar(){}voidmain(){system(“CLS”);if(RcadData()){printf(“IN.DATcan’tbeopen!\n\007”);return;}replaceChar();WriteData();}jntReadData(void){FILE*fp;inti=0,j=0;char*P;if((fp=fopen(“IN.DAT”,“r”))==NULL)return1;while(fgets(inBuf[i],C0L+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,len;chary;for(i=0;i130)continuefelseinBuf[i][j]=y;//按条件来转换}}}知识点解析:本题主要考查字符与其对应的ASCII码之间的转换及对ASCII码进行操作。先计算出每行字符串的长度,再根据替换规则进行相应的替换。计算机三级网络技术机试(上机操作)模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN39.DAT中存有300个四位数,函数ReadData()负责把这些数存人数组inBu{[]中,请编制一函数findValue(),其功能是:统计出这300个数中素数的个数count,再把所有满足此条件的四位数依次存人数组outBuf[]中,然后对数组outBuf[]的四位数按从小到大的顺序进行排序,函数WriteData()负责把数组outBuf[]中的数输出到OUT.DAT文件中。例如:3191是素数,则该数满足条件,存入数组outBuf[]中,且个数count=count+1。1234是非素数,则该数不满足条件,忽略。注意:部分源程序已给出。程序中已定义数组:inBuf[300],outBuf[300],已定义变量:count。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序:#include#defineNUM300intinBuf[NUM],outBuf[NUM],count=0;voidReadData();voidWriteData();voidfindValue(){}voidmain(){inti;ReadData();findValue();WriteData();print{(“count=%d\n”,count);for(i=0;i标准答案:voidlindValue(){inti,j,temp,flag;for(i=0;ioutBuf[j])/*如果第i位比它后面的数大,则将两者进行交换,也即将更小的值放到第i位*/{temp=outBuf[i];outBuf[i]=outBuf[j];outBuf[j]=temp;}}知识点解析:本题主要考查素数的判断和排序问题。①判断是否为素数:素数的定义是:若一个数除了其自身和1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断。在2到所判断数之间的数进行扫描。若有一个除数,则试教就不是素数。②排序:排序的思想是(以从小到大为例):将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。计算机三级网络技术机试(上机操作)模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、已知数据文件IN39.DAT中存有300个四位数,函数ReadData()负责把这些数存人数组inBuf[]中,请编制一函数findValue(),其功能是:求出这些四位数中是素数的个数count,再求出所有满足此条件的四位数的平均值averagel,以及所有不满足此条件的4位数的平均值average2,并通过函数WriteData()把结果输出到OUT.DAT文件中。例如:3191是素数.则该数满足条件,计算平均值average1,且个数count=count+1。1234是非素数。则该数不满足条件,计算平均值average2。注意:部分源程序已给出。程序中已定义数组:inBuf[300],outBuf[300],已定义变量:count。请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。试题程序:#include#defineNUM300intinBuf[NUM],count=0;doubleaverage1=0,average2=0;voidReadData();voidWriteData();voidfindValue(){}voidmain(){ReadData();findValue();WriteData();printf(“count=%d\naverag1=%7.2lf\naverag2=%7.2lf\n”,count,average1,average2);}voidRcadData(){FILE*fp;inti;fp=fopen(“IN.DAT”,“r”);for(i=0;i标准答案:voidfindValue(){inti,j,flag,count_no=0;for(i=0;i知识点解析:本题主要考查素数的判断和平均值计算问题。①判断是否为素数;素数的定义是:若一个数除了其自身和1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断。在2到所判断教之间的数进行扫描,若有一个除数,则该数就不是素数。②求平均值,由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数来取平均的话,会因变量不能存储那么大的数据而导致溢出。本题的程序采用的方法是:N个数的平均值=[前(N-1)个数的平均值*(N-1)+第N个数]/N,采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。计算机三级网络技术机试(上机操作)模拟试卷第4套一、程序设计题(本题共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[门为起始地址、大小为sizeof(temp)的内存中的内容复制到以&temp为起始地址的内存中*/memcpy(&sell[i],&sell[j],sizeof(temp));memcpy(&sell[j],temp,sizeof(temp));}}知识点解析:本题考查的主要是结构数组排序的问题。所谓结构数组排序就是以结构某一元素为依据对结构数组进行排序。本题排序的思想是:将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,最终达到从小到大排序的目的。但是由于结构不像变量那样可以通过简单的赋值来交换变量(如果要赋值的话需要对结构里的所有元素进行赋值替换,比较麻烦),所以在进行两个相邻结构交换时,要用到内存拷贝函数memcpy()来对内存的内容整体进行操作。计算机三级网络技术机试(上机操作)模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函数ReadData()负责将IN.DAT中的数据读到数组inBuf[][]中。请编制函数replaceChar()。该函数的功能是按照指定规则对字符进行替换。变换后的值仍存入inBuf[][]中。函数WriteData()负责将inBuf[][]中的数据输出到文件OUT.DAT中并且在屏幕上打出。替换规则为:先对字符的ASCII码按公式y=(a*11)rood256进行运算(a为某一字符的ASCII码值。y为变换后的ASCII码值),如果原字符是大写字母或计算后y的值小于等于32,则字符保持不变,否则用y代替a。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于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++1}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码之间的转换及对ASClI码进行操作。先计算出每行字符串的长度,再根据替换规则进行相应的替换。计算机三级网络技术机试(上机操作)模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有200个四位正整数。函数ReadData()负责将IN.DAT中的数读到数组inBufl[]中。请编写函数findValue(),其功能是:求出千位数上的数加百位数L的数等于十位数上的数加个位数上的数。按照从大到小的顺序存人数组outBuf[]中,并用count记录下符合条件的数的个数。函数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;for(i=0;i知识点解析:本题主要考查数位分解及排序。数位分解就是将n位数上各个数位上的数值单独分离出来。解决此问题的方法是:将n位数对10求余可以将个位上的数值分离出来。将这个n位数除以10以后得到一个n-1位数,则此时n位数原来的十位就变成了n-1位数的个位,再将此n-1位数对10求余便可得到原n位敖的十位。依此类推。按照同样的方法便可将n位数各个位上的数值分离出来。程序步骤:①将数值送入temp中。②由temp%10得到个位数;(temp/10)%10得到十位数……如此可得到各位上的数值。③按照题目所给的条件选出数据。④对选出的数据进行排序,排序的思想是(以从小到大为例):将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。计算机三级网络技术机试(上机操作)模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、某级数的前两项A1-1,A2-1。以后各项具有如下关系:某级数的前两项A1-1,A2-1。以后各项具有如下关系:An=An-2+2An-1请编制Find_n()函数,其功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn<M且Sn+1≥M,这里Sn=A1+A2+…+An,并依次把n值存入数组单元b[0],b[1],b[2]中,函数WriteData()负责把结果输出到OUT.DAT文件中。注意;部分源程序已给出。请勿改动主函数main()和写函数WriteData()的内容。试题程序:#includeintb[3];voidWriteData();voidFind_n(){}voidmain(){Find_n();printf(“M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n”,b[o],b[1],b[2]);WriteData();}voidWriteData(){FILE*fp;fp=fopen(“OUT.DAT”,“W”);fprintf(fp,“%d\n%d\n%d\n”,b[0],h[1].b[2]);fclose(fp);}标准答案:vokIFind_n(){intn=1;//定义计数器变量,保存求得的项数intal=1,a2=1,an;//用来保存级数的值intsum0,sum;//用来存储级数的和的变量sum0=a1+a2;//计算前两项的级数和while(1)//无条件循环,循环体内有控制是否结束循环的语句{an=al+a2*2;//求下一个级数sum=sum0+an;//求级数和a1=a2;//将a2赋给a1a2=an;//将an赋给a2n++;if(sum0<100&&sum>=100)//如果满足Sn<100且Sn+1>=100b[0]=n;//则将n存入数组单元b[0]中if(sum0<1000&&sum>=1000)//如果满足Sn<1000且Sn+1>=1000b[1]=n;//则将n存入数组单元b[1]中if(sum0<10000&&sum>=10000)//如果满足Sn<10000且Sn+1>=10000{b[2]=n;//则将n存入数组单元b[2]中break;//并强行退出循环}sum0=sum;//将sum赋给sum0,为下一次循环的求和作准备}}知识点解析:本题主要考查的是利用循环求级数。由级数的表达式可以看出,级数中的各项可以由循环依次求得。当级数的和达到要求的条件时即可退出循环结构。因为退出循环的两个条件Sn计算机三级网络技术机试(上机操作)模拟试卷第8套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有200个四位整型数,函数readData()负责将IN.DAT中的数据读到数组inBuf[]中。请编制一函数findData(),该函数的功能是:依次从数组inBuf中取出一个四位数,如果四位数连续大于该四位数前的5个数且该数是奇数(该四位数以前不满5个数,则不统计),该数必须能被7整除,则按照从小到大的顺序存入outBuf[]中,并用count记录下符合条件的数据的个数。函数writeData()负责将outBuf[]中的数据输出到文件OUT.DAT中,并且在屏幕上输出。注意:部分源程序已给出。程序中已定义数组:inBuf[200],outBuf[200],已定义变量:count。请勿改动主函数main()、读函数readData()和写函数writeData()的内容。试题程序:#include#defineMAX200intinBuf[MAX],outBuf[MAX],count=0;voidfindData(){}voidreadData(){inti;FILE*fpitfp=fopen(“IN.DAT”,“r”);for(i=0;i标准答案:voidfindData(){inti,j,temp,flag;count=0;for(i=5;ioutBuf[j])//如果第i位比它后面的数大{//则将两者进行交换.也即将更小的数放到第i位temp=outBuf[i];outBuf[i]=outBuf[j];outBuf[j]=temp;}}知识点解析:本题考查的主要是数据的奇偶性判断及数据的排序。基本思想是:①查找符合要求的.利用条件inBuf[i]%2!=0找出奇数。用该数与其前面的连续5个数相比较。如果有一个数不符合要求(小于或等于后面的数),则可将该数排除,这样便可找出所有符合要求的项。②将当前数与其后的各个数相比较。如果当前数比其后的数大。则将两数据进行交换,从而使得前面的数小于后面的数,最终迭到从小到大排序的目的。计算机三级网络技术机试(上机操作)模拟试卷第9套一、程序设计题(本题共1题,每题1.0分,共1分。)1、文件IN.DAT中存有200个销售记录,每个记录均南产品代码ID(字符型4位)、产品名称name(字符型10位)、单价price(整型)、数量amount(整型)、金额value(长整型)几部分组成。其中:金额=单价×数量,函数readData()负责将IN.DAT中的数据读到结构数组sell[]中。请编制函数sortDa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年加工承揽合同:制造业加工协议
- 影视制作合作框架协议
- 联合促销协议
- 2024年工程代建:项目管理和服务合同
- 2024年专用:建筑墙体保温系统施工及材料供应合同
- 网红代言合同
- 2024年外汇贷款转贷款合同
- 2024年天猫店铺服务合同全文
- 2024年合作经营水产养殖合同书
- 股权收益分红协议
- 苏教版五年级上册数学试题-第一、二单元 测试卷【含答案】
- 发挥产业工会作用的实施方案
- 科捷物流介绍(中文版)ppt课件
- 军事地形学地形图基本知识
- 2022版义务教育(生物学)课程标准(含2022年修订和新增部分)
- 六年级综合实践活动课件-珍爱生命远离毒品 全国通用(共24张PPT)
- 建设工程竣工消防验收记录表(DOC36页)
- 沉井专项施工方案DOC
- 切削力计算参考模板
- 一年级海洋教育教案
- 聚氨酯硬泡沫配方及计算
评论
0/150
提交评论