《计算机三级网络技术上机题库《南开100题》.pdf》由会员分享,可在线阅读,更多相关《计算机三级网络技术上机题库《南开100题》.pdf(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,题目1:下列程序的功能是:将大于整数m 且紧靠m 的 k 个素数存入数组xx。请编写函数 num(int m,int k,int xx口)实现函数的要求,最后调用函数readwriteDAT。把结果输出到文件 out.dat 中。例如:若输入17,5,则应输出:19,23,29,31,37。注意:部分源程序已给出。请勿改动主函数main。和函数readwriteDAT。的内容。类型:素数。void num(int m,int k,int xx)int data=m+1;int half,n=0,I;while(l)halfdata/2;fbr(I=2;Ihalf)xxn=data;n+;if
2、(n=k)break;data+;题目2:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat。把这些数存入数 组 a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数en t,并把这些四位数按从大到小的顺序存入数组.b 中。最后main。函数调用写函数writeDat()把 结 果 e n t以 及 数 组 b 中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a200,b200,已定义变量:ent请勿改动数据文件IN.DAT中的任何数据、主函
3、数main()、读 函 数 readDat。和写函数writeDat()的内容。void jsVal()int bb4;int I,j,k,flag;for(I=0;I200;I+)bb0=aI/1000;bbl=aI%l 000/100;bb2=aI%100/10;bb3=aI%10;for(j=0;j4;j+)if(bbj%2=0)flag=l;elseflag=O;break;)if(flag=l)bcnt=aI;cnt+;fbr(I=O;Icnt-lfbr(j=I+l;jcnt;j+)if(bIbj)k=bI;bI=bU;bU=k;)题目3:函数READDAT()实现从文件IN.DAT
4、中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O 左边的字符串内容移到该串的右边存放然后并把小写字母0 删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组X X 中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.例如:原文:You can create an index on any field.you have the correct record.结果:n any field.You can create an indexrd.yu have the c
5、rrect rec原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.类型:字符串(单词)的倒置和删除。答案:void StrOR(void)int I,j,k,index,strl;char ch;for(I=0;Imax 1 i ne;I+)strl=strlen(xxI);index=strl;for(j=OJstrl;j+)if(xxIj=,o,)for(k=j;k=index;j-)ch=xxIstrl-l;fbr(k=strl-1 ;k0;k)xxIk=xxIk-l;xxI0=ch;题目4:函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符
6、串数组xx中;请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,同时去除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组x x 中。最后main。函数调用函数WriteDat。把结果xx输出到文件OUT6.DAT中。例如:原文:You He MeI am a student.结果:Me He Youstudent a am I原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。类型:字符串(单词)的倒置和删除。答案:void StrOL(void)int Ij,k,strl,l;char c;fbr(
7、I=O;Imaxline;I-H-)fbr(j=O;j=,A,&c=,a&c=z,)|c=,*);else xxIj-*;fbr(l=0;l=a,&xxlI=,A,&xxlI=0)for(j=k;j=O;j-)ppj+l=ppj;pp0=xxlI;k+;I;strcat(ch,pp);strcpy(pp,MMnn);k=l;if(I=-l)break;while(xxlI,z)&I=0)for(j=k;j=O;j-)ppj+l=PPU;pp0=xxlI;k+;I-;)strcat(ch,pp);strcpy(ppj”);k=0;if(I=-l)break;strcpy(xxl,ch);题 H5
8、:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函 数 ReadDat()读取这200个数存放到数组a a 中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组b 中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果b b 输出到文件 out.dat 中。例:处理前 6012 5099 9012 7025 8088处理后 9012 6012 7025 8088 5099注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat。和输
9、出数据函数WriteDat。的内容。void jsSort()int I,j,data;fbr(I=0;I199;I+)fbr(j=I+l;jaaj%1000)data=aaI;aaI=aaj ;aaj=data;else if(aaI%1000=aaj%1000)if(aaIaaj)data=aaI;aaI=aaj ;aa j=data;)fbr(I=O;I 1bbI=aaI;|题目6:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函 数 ReadDat()读取这200个数存放到数组a a 中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小
10、进行降序排列,然后取出满足此条件的前10个数依次存入数组b 中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果b b 输出到文件 out.dat 中。例:处理前 9012 5099 6012 7025 8088处理后 5099 8088 7025 60129012注意:部分源程序已给出。请勿改动主函数main。、读数据函数ReadDat()和输出数据函数WriteDat。的内容。void jsSort()int I,j,data;fbr(I=0;I199;I+)fbr(j=I+l;j200;j+)if(aaI%1000aaj)data=aaI;aaI=
11、aaj;aaj=data;)for(I=0;I 读数据函数ReadDat。和输出数据函数WriteDat。的内容。void SortDat()int I,j;PRO xy;fbr(I=0;lv99;I)fbr(j=I+l;j100;j-H-)if(strcmp(sellI.dm,sell j.dm)0)xy=sellI;sellI=sellj;sellj=xy;else i f(strcmp(sellI.dm,sellj.dm)=O)if(sellI.je读数据函数RcadDat()和输出数据函数WriteDat()的内容。void encryptChar()int I;char*pf;for
12、(I=0;lvmaxline;I+)pf=xxI;while(*pf!=0)ll%256130|*pf*11%256=32);else*pf=*pf*l 1%256;pf+;题目9:函数ReadDatQ实现从文件IN.DAT中读取篇英文文章存入到字符串数组xx中;请编 制 函 数 SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组x x 中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。例:原文:dAe,BfC.CCbbAA结果:fedCBA.,bbCCAA原始数据文件存放的格式是:每
13、行的宽度均小于8 0个字符,含标点符号和空格。注意:部分源程序存放在PROG1.C中。请勿改动主函数m a i n()、读数据函数R e a d D a t。和输出数据函数W r i t e D a t()的内容。类型:字符串(单词)的倒置和删除。答案:v o i d S o r t C h a r D(v o i d)i n t I,j,k,s t r l;c h a r c h;f b r(I=O;I m a x li n e;I+)s t r l=s t r le n(x x I );f b r(j=O j s t r l-l;j+)f b r(k=j+l;k s t r l;k+)i
14、f(X X I j XX I k )c h=x x I j ;x x I j =x x I k ;x x I k =c h;题目1 0:请编制函数C o n v e r t C h a r A(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a,大写字母和其它字符保持不变。把己处理的字符串仍按行重新存入字符串数组x x中。最 后m ai n()函数调用函数W r i t e D at()把结果x x输出到文件OUT3.DAT中。例:原文:A d b.B cd zaabck.L L h j结果:A e c.B d e abbcd l.L
15、L i k原始数据文件存放的格式是:每行的宽度均小于8 0个字符,含标点符号和空格。注意:部分源程序存放在PROG1.C中。请勿改动主函数m a i n()、读数据函数R e ad D at。和输出数据函数W r i t e D at()的内容。类型:字符串(单词)的倒置和删除。答案:v o i d C o n v e r t C h ar A(v o i d)i n t I,j,s t r;f br(I=O;I m axl i n e;I-H-)s t r =s t r l e n(xx I );f br(j=O y=a&xx I j =,a,&*s=,A,&*s=,Y,)*s+=;s+;e
16、lse s+;题目12:已知在文件IN.D A T中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组se ll中。请编制函数S ortD at(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列.最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。注意:部分源程序存放在PROG L C中。请勿改动主
17、函数m ain()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int I,j;PRO xy;fbr(I=0;I99;I+)for(j=I+l;j100;j+)if(strcnip(sellI.dm,sellj.dm)0)xy=sellI;sellI=sellj;sellj=xy;else i f(strcmp(sel 1 I.dm,sell j .dm)=0)if(sellI.jesellj.je)xy=sellI;sellI=sellj;sellj=xy;题目13:已知在文件IN.D A T中存有100个产品销售记录,每个产品销售记录由
18、产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数S ortD at(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。注意:部分源程序存放在PROG 1.C中。请勿改动主函数main()读数据函数ReadDat。和输出数据函数WriteDat。的内容。void Sor
19、tDat()int I,j;PRO xy;for(I=0;I99;I+)fbr(j=I+l;jO)xy=sellI;sell I=sellj;sellj=xy;else if(strcmp(sellI.mc,sellj.mc)=0)if(sellI.jesellU.je)xy=sellI;sellI=sellj;sellj=xy;题目14:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:依次从数组a 中取出一个四位数,如果该数连续大于该四位数以后的5个数且该数是奇数,则统计出满足此条件的个数e n
20、t,并把这些四位数按从小到大的顺序存入数组b 中。并要计算满足上述条件的四位数的个数ento最 后 main。函数调用写函数writeDat()把结果e n t以及数组b 中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a200,b200,已定义变量:ent请勿改动数据文件IN.DAT中的任何数据、主函数main。、读 函 数 readDat。和写函数writeDat()的内容。voidjsVal()int I j,flag=0;int k;fbr(I=0;IaU)flag=l;else flag=O;break;if(aI%2=0
21、)flag=O;if(flag=l)bcnt=aI;cnt+;fbr(I=O;Icnt-lfbr(j=I+l;jbU)k=bI;bI=bj;bj=k;题目15:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,十位数字上的值小于等于个位数字上的值,并且此四位数是偶数,则统计出满足此条件的个数e n t,并把这些四位数按从大到小的顺序存入数组b 中。最后main。函数调用写函数writeDat()把结果ent以及数
22、组b 中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a200,b200,已定义变量:ent请勿改动主函数main()读函数readDat。和写函数writeDat。的内容。void jsVal()int I,j;int al,a2,a3,a4,k;for(I=0;IMAX;I+)al=aI/1000;a2=aI%1000/100;a3=aI%100/10;a4=aI%10;i f(a K=a2)&(a2=a3)&(a3=a4)&(aI%2=0)bcnt=aI;cnt+;fbr(I=O;Icnt-1 ;I+)for(j=I+l;jb
23、U)k=bI;bI=bU;bU=k;数ReadDatO实现从文件IN.DAT中读取篇英文文章存入到字符串数组XX中,请编制函数StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组x x 中,最后调用函数writeDat。把结果xx输出到文件OUT8.DAT中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序已给出。请勿改动主函数main。、读数据函数RcadDat()和输出数
24、据函数writeDat。的内容。void StrCharJR(void)int I,j,strl;fbr(I=0;lmaxline;I+)strl=strlen(xxI);for(j=O jstrl J+)xxIU+=xxIU4;)注:这个编程题比二级考得还简单。void StrCharJR(void)int ij;for(i=O;imaxline;i+)fbr(j=O;xxij!=,O,;j+)xxij+=xxij4;题目17:函 数 READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX 中;请编制函数CHA(),其函数功能是:以行为单位把字符串中的第 个字符的AS
25、CII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCH值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最 后 个 字 符 的 ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组X X 中,最后调用函数 WRITEDAT()把结果XX输出到文件0UT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.注意:部分源程序已给出。请勿改动主函数main。、读数据函数ReadDat。和输出数据函数writeDa
26、t。的内容。void ChA(void)int I,j,k,str;char ch;fbr(I=O;Imaxline;I-H-)str=strlen(xxI);ch=xxI0;for(j=O;jstr-l;j+)xxIj+=xxIj+l;xxIstr-l+=ch;for(j=0,k=str-l;jstr/2;j+,k)ch=xxIj;xxIj=xxIk;xxIk=ch;)题目18:函数ReadDat。实现从文件ENGIN中读取一篇英文文章,存入到字符串数组x x 中;请编制函数encryptChar(),按给定的替代关系对数组x x 中的所有字符进行替代,仍存入数组 x x 的对应的位置上,最
27、后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。替代关系:f(p)=p*11 mod 256(p 是数组中某一个字符的ASCH值,f(p)是计算后新字符的 ASCH值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于3 2,则该字符不变,否则将f(p)所对应的字符进行替代。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main。、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void encryptChar()int I;char*pf;fbr(I=O;Imaxline;I+)pf=xxl;w
28、hiIe(*pf!=O)ifi(*pf%2=0|*pP|l 1%256=32)else*pf=*pf*l 1%256;题目19:编写一个函数findstrO,该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,函数返回值为6。函数readwriteDat。的功能是实现从文件in.dat中读取两个字符穿4,并调用函数findstr。,最后把结果输出到文件out.dat中。注意:部分源程序已给出。请勿改动主函数main。和函数ReadWrite。的内容。int findStr(char
29、*str,char*substr)int n;char*p,*r;n=0;while(*str)P=str;r=substr;while(*r)if(*r=*p)r-H-;p+;else break;if(*r=、0)n+;str+;return n;题目20:编写函数jsvalue,它的功能是:求 Fibonacci数列中大于t 的最小的一个数,结果山函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(l)=lF(n)=F(n-l)+F(n-2)最后调用函数writcDat()读取10个数据3分别得出结果且把结果输出到文件out.dat中。例 如:当 41000时,函数值
30、为:1597。注意:部分源程序已给出。请勿改动主函数main。和写函数writeDat。的内容。int jsValue(int t)int fl=0,f2=l,fh;fh=n+f2;while(fh=t)f2=fh;fh=fl+f2;return fh;题目21:下列程序的功能是:利用发下所示的简单迭代方法求方程:cos(x)x=0的一个实根。xn+l=cos(xn)迭代步骤如下:(I)取 XI初值为0.0;(2)X O X 1,把 X I的值赋给X0;(3)X1=COS(X 0),求出一个新的 X I;(4)若 X0-X1绝对值小0.000001,执行步骤(5),否则执行步骤(2);(5)所
31、求XI就是方程cos(X)-X=0的一个实根,作为函数值返回。请编写函数countvalue()实现程序的要求,最后调用函数WRITEDAT()把结果输出到文件 OUT17.DAT 中。注意:部分源程序已给出。请勿改动主函数m ain()和输出数据函数write DAT()的内容。float countValue()float x0,xl=0.0;while(l)x0=xl;xl=cos(x0);if(fabs(xO-x 1)1 e-6)break;)return xl;题目22:请编写函数countvalue。,它的功能是:求 n 以内(不包括n)同时能被3和7整数的所有自然数之和的平方根s
32、,并作为函数值返回,最后结果s 输出到文件out.dat中。例如若n 为1000时,函数值应为:s=153.909064,注意:部分源程序已给出。请勿改动主函数main()和输入输出数据函数progreadwrite。的内容。double countValue(int n)double xy=0.0;int I;fbr(I=l;In;I+)if(I%3=0&I%7=0)xy+=I;xy=sqrt(double)xy);return xy;double countvalue(int n)int i,j=0;double k;fbr(i=0;in;i+)iWi%3=0&i%7=0)j+=i;k=s
33、qrt(j);return k;题目23:已知在文件in.dat中存有N 个(个数读数据函数readdat()和输出数据函数writedat()的内容。void CalValue(void)int I;double x,sum=0;for(I=0;KMAXNUM;R+)sumint=sumint-l-(int)xxI;x=xxI-(int)xxI;sumdec=sumdec+x;sum=sum+xxI;)aver=sum/MAXNUM;)题 H24:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现
34、此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件out.dat中。注意:部分源程序已给出。请勿改动主函数main。和写函数writeDat。的内容。jsValue(int a109)int Lj,k=O;int hun,ten,data;for(I=100;I=999;I-H-)j=10;while(j*j=I)if(I=j*j)hun=I/1 OO;data=I-hun*100;ten=data/l 0;data=data-ten*10;i fl(h un=ten|h un=data 1 1 tcn=data)bbk=I;k+;j+;ret
35、urn k;)题目25:下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=l I,m2=121,m3=1331皆为回文数。请编制函数int svalue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out.dat中。注意:部分源程序已给出。请勿改动主函数main。的内容。int jsValue(long n)int I,strl,half;char xy20;ltoa(n,xy,10);strl=strlen(xy);ha
36、lf=strl/2;for(I=0;I=half)return 1;else return 0;)题目26:已知在文件in.dat中存有若干个(个数v 2 0 0)四位数字的正整数,函数readdat()读取这若干个正整数并存入数组XX中。请编制函数calvalue(),其功能要求:1、求出这文件中共有多少个正整数totnum;2、求这些数右移1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值to tp jz,最后调用函数writedat()把所求的结果输出到文件out.dat中。注意:部分源程序已给出。请勿改动主函数main。、读数据函数read
37、dat()和输出数据函数writedat。的内容。void CalValue(void)int I,data;for(I=0;I0)totNum-H-;data=xxIl;if(data%2=0)totCnt-H-;totPjz+=xxI;)totPjz/=totCnt;题 H27:已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat。把这些数存入数组a 中,请编制一函数jsvalue(),其功能是:求出千位数上的数减百位数减卜位数上的数减个位数上的数大于零的个数e n t,再求出所有满足此条件的四位数平均值p jz l,以及不满足此条件的四位数平均值p jz2,最后调用
38、写函数writeDat()把结果输出到OUT.DAT文件。例如:9123,9-1-2-30,则该数满足条件计算平均值p jz l,且个数cnt=cnt+l。9812,9-8-1-20,则该数不满足条件计算平均值pjz2.注意:部分源程序已给出。程序中已定义数组:a300,已定义变量:ent请勿改动主函数main。、读函数ReadDat。和写函数writeDat()的内容。void jsValue()int I,thou,hun,ten,data,j;for(I=0;I0)bcnt=a I;cnt+;)fbr(I=O;Icnt-1 ;I+)fbr(j=I+l;jbU)data=bI;bI=bj;
39、bj=data;)题 FI28:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十 位 数 ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数 ab-cd=0且 ab-cd=0&(ab-cd)=l 0&ab%2=1&cd%2=l&ab!=0&cd!=0)bcnt=aI;cnt
40、+;)for(I=0;Icnt-lfbr(j=I+l;jcntg+)if(bI=10且 abcdv=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b 中,并要计算满足上述条件的四位数的个数ento最后main()函数调用写函数writeDat()把结果ent以及数组b 中符合条件的四位数输出到 OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a200,b200,已定义变量:ent请勿改动数据文件IN.DAT中的任何数据、主 函 数 main()读函数readDat()和写函数writeDat()的内容。
41、void jsVal()int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I=0&(ab-cd)=10&ab%2=l&cd%2=l&ab!=0&cd!=0)bcnt=a I;cnt+;fbr(I=O;Iciit-1;1+)fbr(j=I+l;jcnt;j+)if(bIbj)d a ta=b I ;b I =b j ;b f j =d a ta;题目3 0:已知数据文件IN.DAT中存有2 0 0个四位数,并已调用读函数re ad D at。把这些数存入数组a中,请考生编制一函数j sV al(),其功能是:依次从数组a中取出一个四位数,如果该数连续小于该四
42、位数以后的5个数且该数是偶数,则统计出满足此条件的个数e nt,并把这些四位数按从小到大的顺序存入数组b中。并要计算满足上述条件的四位数的个数e nt。最 后mai n。函数调用写函数w ri te D at()把结果e n t以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件PR OG1.C文件中。程序中已定义数组:a2 0 0 ,b2 0 0 ,已定义变量:e nt请勿改动数据文件IN.DAT中的任何数据、主 函 数mai n。、读 函 数re ad D at。和写函数w ri te D at。的内容。v oi d j sV al()i nt I,j,f la
43、g=O;f br(I=0;I M A X-5;I+)f or(j=I+l;j =I+5;j+)i f(aI aU )f lag=l;e lse f lag=0;i f(aI%2!=0)f lag=0;i f (f lag=0)bre ak;i f(f lag=l)bc nt=aI ;c nt-H-;f br(I=O;I c nt-1 ;1+)f br(j=l+l;j bU )f lag=bl;bI =bU ;bU =f lag;)题目3 1:已知在文件IN.DAT中存有1 0 0个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称m e(字符型1 0位),单价d j(整型),
44、数量si(整型),金额j e(长整型)四部分组成。其中:金额=单价*数量计算得出。函数Re ad D atO是读取这1 0 0个销售记录并存入结构数组se ll中。请编制函数S ortD at(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组se ll中,最后调用函数W ri te D at。把结果输出到文件OUT6.DAT中。注意:部分源程序存放在PR OG 1.C中。请勿改动主函数mai n()、读数据函数Re ad D at。和输出数据函数W ri te D at()的内容。v oi d S ortD at()i nt I,
45、j;PRO xy;for(I=0;I99;I+)fbr(j=I+1 ;j 1if(sellI.jesellj.je)xy=sellI;sell I=sellj;sellj=xy;else if(sellI.je=sellj.je)if(strcmp(sellI.dm,sellj.dm)读数据函数ReadDat()和输出数据函数WriteDat()的内容。void SortDat()int I,j;PRO xy;for(I=0;IMAX-l;I+)for(j=I+l;jMAX;j+)if(strcmp(sellI.mc,sellj.mc)sellj.je)xy=sellI;sellI=sellj
46、;sellj=xy;题目33:请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx 中;请编制函数Compute。分别计算出xx中奇数的个数odd,奇数的平均值a v e l,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。计算方差的公式如下:totfb=l/NZ(xxi-avel)2设 N 为奇数的个数,xxi为奇数,avel为奇数的平均值。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)注意:部分源程序已给出。请勿改动主函数main。和输出
47、数据函数writeDat。的内容。void Compute(void)int I,yyMAX;fbr(I=0;I1000;I+)if(xxI%2)odd-H-;avel+=xxI;clseeven+4-;ave2+=xxI;yyeven-l=xxI;avel/=odd;ave2/=even;fbr(I=O;Ieven;H-+)totfc+=(yyI-ave2)*(yyI-ave2)/even;题目34:下列程序的功能是:选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT以及这些素数值的和SUM。请编写函数CO
48、UNTvakie()实现程序要求,最后调用函数WRITEDAT()把结果CNT和 SUM输出到文件OUT.DAT中.注意:部分源程序已给出。请勿改动主函数main()和函数readwriteDAT()的内容。类型:素数。void countValue()int I,j,half,hun,ten,data;for(I=101;I1000;I+)hun=I/100;ten=I%100/10;data=I%10;if(hun=(ten+data)%10)halfI/2;fbr(j=2;j=half)cnt+;sum+=I;题目35:某级数的前两项A1=1,A2=1,以后各项具有如卜关系:An=An-
49、2+2An-l.下列程序的功能是:要求依次对于整数M=100/000和10000求出对应的n 值,使其满足:Sn=M,这里 Sn=Al+A2+.+An,并依次把n 值存入数组单元bO,bl和 b2中,请编制jsvakie()函数来实现此功能,最后调用函数writeDat()把数组b口中的值输出到out.dat文件中。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main()和写函数writeDat()的内容。void jsvalue()int al=l,a2=1 ,n=l,an;int sum0,sum;sum0=al+a2;while(l)an=al+a2*2;sum=sum0
50、+an;al=a2;a2=an;n+;if(sum0100)if(sum01000)if(sumO 10000)sum0=sum;b0=n;bl=n;b2=n;break;题目36:函数ReadDat。实现从文件ENGIN中读取一篇英文文章,存入到字符串数组x x 中:请编制函数encryptCharO,按给定的替代关系对数组x x 中的所有字符进行替代,仍存入数组 xx的对应的位置上,最后调用函数WriteDat。把结果xx输出到文件PS6.DAT中。替代关系:f(p)=p*ll mod256(p是数组中某一个字符的ASCH值,f(p)是计算后新字符的 ASCII值),如果计算后f(p)值小