您好,欢迎访问三七文档
71请补充完整程序,使得程序能实现以下功能:从文件IN.dat中读取200个整数至数组number中,求出最大数max及最大数的个数cnt和数组number中能被3整除或能被7整除的算术平均值ave(保留2位小数)。把结果max、cnt、ave输出到OUT.dat文件中。注意:部分程序、读数据函数read_dat(intnumber[200])及输出格式已给出。max=number[0];for(i=1,k=0;iN;i++){if(number[i]max)max=number[i];if(number[i]%3==0||number[i]%7==0){j+=number[i];k++;}}for(i=0,cnt=0;iN;i++)if(number[i]==max)cnt++;ave=(float)(j*100/k)/100;72函数RData()实现从文件IN.dat中读取一篇英文文章,存入字符串数组str中,请编写函数encryptChar(),其功能是:按给定的替代关系对数组str中的所有字符进行替代后,仍存入数组str的对应位置上。最后调用函数WData(),把结果str输出到OUT.dat文件中。替代关系:f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。原始数据文件存放的格式是:每行的宽度均小于80个字符。注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。voidencryptChar(){inti;char*pf;for(i=0;imaxline;i++){pf=str[i];while(*pf!=0){if((*pf='A'&&*pf='Z')||*pf*11%256=32){pf++;continue;}*pf=*pf*11%256;pf++;}}}73函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数Compute()分别计算出数组xx中奇数的个数odd、偶数的个数even,以及所有数的平均值aver和方差totfc的值。最后调用函数WriteDat(),把结果输出到OUT.dat文件中。计算方差的公式如下:N12i01totfc(xx[i]avel)N原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容。voidCompute(void){inti;for(i=0;i1000;i++){if(xx[i]%2)odd++;elseeven++;aver=aver+xx[i];}aver/=MAX;for(i=0;i1000;i++)totfc+=(xx[i]-aver)*(xx[i]-aver)/MAX;}74已知在文件IN.dat中存有100个产品销售记录,每个产品销售记录由产品代码code(字符型4位)、产品名称name(字符型10位)、单价uprice(整型)、数量amount(整型)、金额sum(长整型)5部分组成。其中:金额=单价×数量。函数Rdata()是读取这100个销售记录并存入结构数组sell中。请编写函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中。最后调用函数Wdata(),把结果输出到OUT.dat文件中。注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。voidSortDat(){inti,j;PROxy;for(i=0;i99;i++)for(j=i+1;j100;j++)if(sell[i].sumsell[j].sum){xy=sell[i];sell[i]=sell[j];sell[j]=xy;}elseif(sell[i].sum==sell[j].sum){if(strcmp(sell[i].code,sell[j].code)0){xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}}75已知数据文件IN.dat中存有200个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数cgVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的5个数且该数是奇数,则统计出满足此条件的个数count并把些四位数按从小到大的顺序存入数组b中。最后调用写函数WData(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。程序中已定义数组a[200]、b[200],已定义计数变量count。注意:部分程序已经给出。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数RData()和写函数WData()的内容。voidcgVal(){inti,j,flag=0;intk;for(i=0;iMAX-5;i++){for(j=i+1;j=i+5;j++)if(a[i]a[j]){flag=1;}else{flag=0;break;}if(flag==1&&a[i]%2){b[count]=a[i];count++;}}for(i=0;icount-1;i++)for(j=i+1;jcount;j++)if(b[i]b[j]){k=b[i];b[i]=b[j];b[j]=k;}}76函数RData()实现从文件IN.dat中读取20行数据存放到字符串数组str中(每行字符串长度均小于80)。请编写函数stringSort(),其功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组str中。最后调用函数WData(),把结果str输出到OUT.dat文件中。条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。例如,位置012345678原字符串abcdhgfe123498765处理后字符串hgfedcba位置876594321注意:部分源程序已经给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。voidstringSort(){inti,j,k,strl,half;charch;for(i=0;i20;i++){strl=strlen(str[i]);half=strl/2;for(j=0;jhalf-1;j++)for(k=j+1;khalf;k++)if(str[i][j]str[i][k]){ch=str[i][j];str[i][j]=str[i][k];str[i][k]=ch;}for(j=half-1,k=strl-1;j=0;j--,k--){ch=str[i][j];str[i][j]=str[i][k];str[i][k]=ch;}}}77函数RData()的功能是实现从文件IN.dat中读取一篇英文文章存入到字符串数组original中。请编写函数CharAdd(),其功能是:以行为单位把字符串中的第1个字符的ASCII值加第2个字符的ASCII值,得到第1个新字符,第2个字符的ASCII值加第3个字符的ASCII值,得到第2个新字符,以此类推,一直处理到倒数第2个字符,最后1个字符的ASCII值加原第1个字符的ASCII值,得到最后1个新的字符。得到的新字符分别存放在原字符串对应的位置上,最后把已处理的字符串逆转后按行重新存入字符串数组original中。最后调用函数WData(),把结果original输出到OUT.dat文件中。原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。注意:部分源程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。voidCharAdd(void){inti,j,k,str;charch;for(i=0;imaxline;i++){str=strlen(original[i]);ch=original[i][0];for(j=0;jstr-1;j++)original[i][j]+=original[i][j+1];original[i][str-1]+=ch;for(j=0,k=str-1;jstr/2;j++,k--){ch=original[i][j];original[i][j]=original[i][k];original[i][k]=ch;}}}78编写函数FibValue(),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)最后调用函数WData()从IN.dat中读取50个数据t,分别得出结果,且把结果输出到OUT.dat文件中。例如,当t=1000时,函数值为1597。注意:部分程序已经给出。请勿改动主函数main()和写函数WData()的内容。intFibValue(intt){intf1=0,f2=1,fn;fn=f1+f2;while(fn=t){f1=f2;f2=fn;fn=f1+f2;}returnfn;}79下列程序的功能是:利用Xn+1=cos(Xn)迭代方法求方程:cos(X)-X=0的一个实根。迭代步骤为:①取X1初值为0.0;②X0=X1,把X1的值赋给X0;③X1=cos(X0),求出一个新的X1;④若X0-X1的绝对值小于0.000001,执行步骤⑤,否则执行步骤②;⑤所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。请编写函数countValue()实现程序的要求,最后调用函数WData(),把结果输出到文件OUT.dat中。注意:部分源程序已给出。请勿改动主函数main()和输出数据函数WData()的内容。floatcountValue(){floatX0,X1=0.0;while(1){X0=X1;X1=(float)cos(X0);if(fabs(X0-X1)1e-6)break;}returnX1;}80函数Rdata()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组string中;请编写encryptChar()函数,其功能是:按给定的替代关系对数组string中的所有字符进行替代后,仍存入数组string的对应位置上。最后调用函数Wdata(),把结果string输出到文件OUT.dat中。替代关系:f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。原始数据文件存放的格式是:每行的宽度均小于80个字符。注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。voidencryptChar(){inti;char*pf;for(i=0;imaxline;i++){pf=string[i];while(*pf!=0){if(((*pf*17%256)%2!=0)||*pf*17%256=32){pf++;continue;}*pf=*pf*17%256;pf++;}}}81现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1
本文标题:计算机三级网络试题
链接地址:https://www.777doc.com/doc-2097682 .html