您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 近年全国计算机等级考试三级网络技术上机真题
内部资料---三级上机题1未来教育未来教育研究中心是一家专门从事教育产品策划、研发、销售的高新知识企业,崛起于中国教育、文化和科技中心——北京中关村公司自2002年成立以来,始终坚持社会教育的研究、图书推广的战略定位和“研究型、专业型、交流型”的发展模式。现在已经拥有上百人的策划研发队伍,产品由过去的单一型向复合型过渡,逐步形成每年推出近百种教育产品的研发和生产能力。目前公司已经和外文出版社、电子工业社、人民邮电社、金版电子出版社、国家行政学院出版社,中华工商联合出版社、华文社、北京大学外国语学院、北京外国语大学、北京理工大学、北京教育考试指导中心等数十家知名出版社、教育机构建立起紧密的合作关系。2006年,公司在著名教育图书品牌“北大飞腾”的基础上,联合国内众多教育专家和一线教师全面打造“未来教育”这一非凡独特的教育图书品牌,这一举措,既是公司品牌战略的延伸,也是更新研发思路的拓展,它将以崭新的图书内涵和设计理念去赢得读者、占领市场。全国计算机等级考试三级网络技术考试大纲——考试内容1、已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT10.DAT中。提示:若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题;产品名称比较请用函数strcmp进行解题。例如:sell[i]=temp;注意:部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。本题为了实施两个数组元素的交换,另外定义了一个结构变量cell。同时要注意的是比较产品名称大小的时候用strcmp()函数实现。程序使用两次二重循环来实现要求的功能。voidSortDat(){inti,j;PROcell;/*定义结构变量*/for(i=0;i99;i++)for(j=i+1;j100;j++)if(strcmp(sell[i].mc,sell[j].mc)0)/*strcmp()函数功能是比较产品名称大小*/{cell=sell[i];/*按产品代码从小到大进行排序处理*/sell[i]=sell[j];内部资料---三级上机题2sell[j]=cell;}for(i=0;i99;i++)for(j=i+1;j100;j++)if((strcmp(sell[i].mc,sell[j].mc)==0)&&(sell[i].jesell[j].je))/*判断若产品名称相同,则按金额从大到小进行排序处理*/{cell=sell[i];sell[i]=sell[j];sell[j]=cell;}}2、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。例如:位置01234567源字符串hgfedcba则处理后字符串hafcdebg部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。本题for循环条件里采用的步长为2,这是因为要求只对下边为奇数的元素进行判断。程序使用三重循环来实现要求的功能。外层的while循环用来实现行间遍历,内层的二重for循环用来遍历行内下标为奇数的元素。voidjsSort(){inti,j,k,l,p,temp;/*定义局部变量*/i=0;while(i20)/*判断i的值若小于20,则执行内嵌语句*/{j=strlen(xx[i]);/*strlen(xx[i])函数的功能是统计第i行字符串中字符的个数*/for(k=1;kj;k=k+2){p=k;for(l=k+2;lj;l=l+2)if(xx[i][l]xx[i][p])/*比较两个字符的ASCII值按从小到大的顺序进行排序处理*/p=l;if(p!=k){temp=xx[i][p];内部资料---三级上机题3xx[i][p]=xx[i][k];xx[i][k]=temp;}}i++;}}4、下列程序prog1.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件out.dat中。请勿改动主函数main()和写函数writeDat()的内容。本题采用for循环结合if语句来实现功能。循环的起始点为10,终止点32。因为此二者的平方恰好包括了100和1000。在循环体内计算出变量a的值,这样可以保证每次检查的数都是平方数。然后再得出此数的各位数值。如果符合条件则将其传递给数组bb。intjsValue(intbb[]){inti,a,d,e,c,p;/*定义局部变量*/p=0;for(i=10;i32;i++)/*设置循环起始值和终止值*/{a=i*i;/*设定检查的数是平方数*/if(a=100&&a1000)/*判断a的取值范围*/{c=a/100;/*求数值的百位数的数字*/e=(a-c*100)/10;/*求数值的十位数的数字*/d=a-c*100-e*10;/*求数值的个位数的数字*/if((c==e)||(c==d)||(d==e))/*判断数值是否有两位数字相同*/{bb[p]=a;/*将符合条件的数值存入数组中*/p++;}}}returnp--;}7、某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:SnM且Sn+1=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。请勿改动主函数main()和写函数writeDat()的内容。本题针对三种不同的要求使用了三个while循环来实现要求的功能。最后一项的序号用内部资料---三级上机题4变量i在每次循环体内记录,然后在循环结束后将其传递给数组b。jsValue(){inti,a1,a2,a,Sn;/*定义局部变量*/a1=1;a2=1;Sn=a1;i=1;/*给变量赋初值*/while(Sn100)/*判断如果Sn小于100则执行内嵌语句*/{Sn=Sn+a2;a=a1;a1=a2;a2=a+2*a1;if(Sn100)i++;}b[0]=i;a1=1;a2=1;Sn=a1;i=1;while(Sn1000)/*判断如果Sn小于1000则执行内嵌语句*/{Sn=Sn+a2;a=a1;a1=a2;a2=a+2*a1;if(Sn1000)i++;}b[1]=i;a1=1;a2=1;Sn=a1;i=1;while(Sn10000)/*判断如果Sn小于10000则执行内嵌语句*/{Sn=Sn+a2;a=a1;a1=a2;a2=a+2*a1;if(Sn10000)i++;}b[2]=i;}8、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数CharConvA(),其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的ASCII值右移4位二进制位,高位补0后加最后第二个字符的ASCII值,得到最后一个新的值,最后第二个字符的ASCII值右移4位二进制位,高位补0后加最后第三个字符的ASCII值,得到最后第二个新的值,依此类推一直处理到第二个字符,注意:第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的值。得到的新值分别存放在原字符串对应的位置上。之后把已处理的结果仍按行重新存入数组xx中。最后main()函数调用函数writeDat()把结果xx输出到文件OUT10.DAT中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按字符处理。注意:部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数writeDat()和输出数据函数WriteDate()的内容。本题主要是考察移位操作符的使用。另外,第一个元素先用变量p保存,然后在程序结尾单独处理。voidCharConvA(){inti,j,k,p;/*定义局部变量*/i=0;while(imaxline)/*判断i是否小于文章的总行数*/{j=strlen(xx[i]);/*strlen(xx[i])函数的功能是统计第i行字符串中字符的个数*/p=xx[i][0];/*将第一个元素先保存在变量p内部资料---三级上机题5中*/xx[i][0]=xx[i][0]+xx[i][j-1];/*得到第一个的新字符*/for(k=j-1;k=2;k--){xx[i][k]=(xx[i][k]4)+xx[i][k-1];}/*利用移位操作符求出各个新字符*/xx[i][1]=(xx[i][1]4)+p;/*得到第二个的新字符*/i++;}}9、下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。请编写函数countValue()实现程序要求的功能,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。部分源程序存在文件prog1.c中。请勿改动主函数main()和输出数据函数writeDat()的内容。本题因为给出了判断素数的函数isPrime,所以仅使用一个if判断语句就解决了问题。另外在循环条件中只需使用i+10100就包含了其他的条件。voidcountValue(){inti;/*定义局部变量*/i=2;/*为变量赋初值*/cnt=0;sum=0;while(i+10100)/*设置循环结束条件为:i+10100*/{if((isPrime(i)!=0)&&(isPrime(i+4)!=0)&&(isPrime(i+10)!=0))/*调用isPrime函数判断i,i+4,i+10的值是否都是素数*/{cnt=cnt+1;/*统计满足条件的数的个数*/sum=sum+i;/*计算满足条件的数之和*/}i=i+1;}}10、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJR(),其函数的功能是:以该文章中的行为单位把字符串中的所有字符的二进制ASCII值右移4位,高位补0,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。之后把已处理的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT8.DAT中。例如:z对应的ASCII值为7AH,二进制值为01111010,右移4位后为00000111,加上原来z的ASCII值01111010得到10000001结果。原始数据文件存放的格式是
本文标题:近年全国计算机等级考试三级网络技术上机真题
链接地址:https://www.777doc.com/doc-2015573 .html