20xx年版三级网络技术南开上机100题答案内容摘要:

x[I]1。 if (data%2==0){totCnt++。 totPjz+=xx[I]。 } } totPjz/=totCnt。 } 题目 27:已知数据文件 300个四位数,并已调用读函数 ReadDat()把这些数存入数组 a中,请编制一函数 jsvalue(),其功能是:求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数 t,再求出所有满足此条件的四位数平均值 pjz1,以及不满足此条件的四位数平均值 pjz2,最后调用写函数 writeDat()把结果输出到。 例如: 9123,91230,则该数满足条件计算平均值 pjz1,且个数 t=t+1。 9812,98120,则该数不满足条件计算平均值 pjz2. void jsValue() /*标准答案 */ {int I,thou,hun,ten,data,j。 for(I=0。 I300。 I++) {thou=a[I]/1000。 hun=a[I]%1000/100。 ten=a[I]%100/10。 data=a[I]%10。 if (thouhuntendata0){b[t]=a[I]。 t++。 } } for(I=0。 I for(j=I+1。 j if(b[I]b[j]) {data=b[I]。 b[I]=b[j]。 b[j]=data。 } } 题目 28:已知数据文件 200个四位数 , 并已调用读函数 readDat()把这些数存入数组 a中 ,请考生编制一函数 jsVal(),其功能是 : 把千位数字和十位数字重新组成一个新的十位数 ab(新十位数的十位数字是原四位数的千位数字 ,新十位数的个位数字是原四位数的十位数字 ), 以及把个位数字和百位数字组成另一个新的十位数 cd (新十位数的十位数字是原四位数的个位数字 ,新十位数的个位数字是原四位数的百位数字 ), 如果新组成的两个十位数 abcd=0且 abcd=10且两个数均是奇数 , 同时两个新数的十位数字均不为零 ,则将满足此条件的四位数按从大到小的顺序存入数组 b中 , 并要计算满足上述条件的四位数的 个数 t。 最后 main()函数调用写函数 writeDat( )把结果 t以及数组 b中符合条件的四位数输出到。 void jsVal() /*标准答案 */ {int I,thou,hun,ten,data,j。 int ab,cd。 for(I=0。 I200。 I++) {thou=a[I]/1000。 hun=a[I]%1000/100。 ten=a[I]%100/10。 data=a[I]%10。 ab=10*thou+ten。 cd=10*data+hun。 if ((abcd)=0amp。 amp。 (abcd)=10amp。 amp。 ab%2==1amp。 amp。 cd%2==1amp。 amp。 ab!=0amp。 amp。 cd!=0) {b[t]=a[I]。 t++。 } } for(I=0。 I for(j=I+1。 j if(b[I] {data=b[I]。 b[I]=b[j]。 b[j]=data。 } } 题目 29:已知数据文件 200个四位数 , 并已调用读函数 readDat()把这些数存入数组 a中 ,请考生编制一函数 jsVal(),其功能是 : 把千位数字和十位数字重新组成一个新的十位数 ab(新十位数的十位数字是原四位数 的千位数字 ,新十位数的个位数字是原四位数的十位数字 ), 以及把个位数字和百位数字组成另一个新的十位数 cd (新十位数的十位数字是原四位数的个位数字 ,新十位数的个位数字是原四位数的百位数字 ), 如果新组成的两个十位数 abcd=10且 abcd=20且两个数均是偶数 ,同时两个新数的十位数字均不为零 ,则将满足此条件的四位数按从大到小的顺序存入数组 b中 , 并要计算满足上述条件的四位数的个数 t。 最后 main()函数调用写函数 writeDat( )把结果 t以及数组 b中符合条件的四位数输出到 件中。 void jsVal() /*标准答案 */ {int I,thou,hun,ten,data,j。 int ab,cd。 for(I=0。 I200。 I++) {thou=a[I]/1000。 hun=a[I]%1000/100。 ten=a[I]%100/10。 data=a[I]%10。 ab=10*thou+ten。 cd=10*data+hun。 if ((abcd)=0amp。 amp。 (abcd)=10amp。 amp。 ab%2==1amp。 amp。 cd%2==1amp。 amp。 ab!=0amp。 amp。 cd!=0) {b[t]=a[I]。 t++。 } } for(I=0。 I for(j=I+1。 j if(b[I] {data=b[I]。 b[I]=b[j]。 b[j]=data。 } } 题目 30:已知数据文件 200个四位数 , 并已调用读函数 readDat()把这些数存入数组 a中 ,请考生编制一函数 jsVal(),其功能是 : 依次从数组 a中取出一个四位数,如果该数连续小于该四位数以后的 5个数且该数是偶数, 则统计出满足此条件的个数 t, 并把这些四位数按从小到大的顺序存入数组 b中。 并要计算满足上述条件的四位数的个数 t。 最后 main()函数调用写函数writeDat( )把结果 t以及数组 b中符合条件的四位数输出到。 void jsVal() /*标准答案 */ {int I,j,flag=0。 for(I=0。 I {for(j=I+1。 j=I+5。 j++) {if(a[I]flag=1。 else flag=0。 if(a[I]%2!=0) flag=0。 if (flag==0) break。 } if(flag==1) {b[t]=a[I]。 t++。 } } for(I=0。 I for(j=I+1。 j if(b[I]b[j]) {flag=b[I]。 b[I]=b[j]。 b[j]=flag。 } } 题目 31:已知在文件 100个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4位 ),产品名称 mc(字符型 10位 ),单价 dj(整型 ),数量 sl(整型 ),金额 je(长整型 )四部分组成。 其中:金额 =单价 *数量计算得出。 函数 ReadDat()是读取这 100个销售记录并存入结构数组 sell中。 请编制函数 SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额 从大到小进行排列,最终排列结果仍存入结构数组 sell中,最后调用函数 WriteDat()把结果输出到文件。 void SortDat() /*标准答案 */ {int I,j。 PRO xy。 for(I=0。 I99。 I++) for(j=I+1。 j100。 j++) if(sell[I].je{xy=sell[I]。 sell [I]=sell[j]。 sell[j]=xy。 } else if(sell[I].je==sell[j].je) if(strcmp(sell[I].dm,sell[j].dm)0) {xy=sell[I]。 sell[I]=sell[j]。 sell[j]=xy。 } } 题目 32:已知在文件 100个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4位 ),产品名称 mc(字符型 10位 ),单价 dj(整型 ),数量 sl(整型 ),金额 je(长整型 )四部分组成。 其中:金额 =单价 *数量计算得出。 函数 ReadDat()是读取这 100个销售记录并存入结构数组 sell中。 请编制函数 SortDat(),其功能要求:按产品名称从大到小进行排列 , 若产品名称相同 , 则按 金额从小到大进行排列 . 最终排列结果仍存入结构数组 sell中,最后调用函数 WriteDat()把结果输出到文件。 void SortDat() /*标准答案 */ {int I,j。 PRO xy。 for(I=0。 I for(j=I+1。 j if(strcmp(sell[I].mc,sell[j].mc)0) {xy=sell[I]。 sell [I]=sell[j]。 sell[j]=xy。 } else if(strcmp(sell[I].mc,sell[j].mc)==0) if(sell[I].jesell[j].je) {xy=sell[I]。 sell[I]=sell[j]。 sell[j]=xy。 } } 题目 33:请编制函数 ReadDat()实现从文件 1000个十进制整数到数组 xx中;请编制函数 Compute()分别计算出 xx中奇数的个数 odd,奇数的平均值 ave1,偶数的平均值 ave2以及所有奇数的方差 totfc的值,最后调用函数 WriteDat()把结果输出到。 计算方差的公式如下:totfc=1/N∑ (xx[i]ave1)2 int ReadDat(void) /*标准答案 */ {FILE *fp。 int I,j。 if((fp=fopen(,r))==NULL) return 1。 for(I=0。 I100。 I++) {for(j=0。 j10。 j++) fscanf(fp, %d, amp。 xx[I*10+j])。 fscanf(fp, 39。 n)。 if(feof(fp)) break。 } fclose(fp)。 return 0。 } void Compute(void) {int I, yy[MAX]。 for(I=0。 I1000。 I++) if(xx[I]%2){odd++。 ave1+=xx[I]。 } else{even++。 ave2+=xx[I]。 yy[even1]=xx[I]。 } ave1/=odd。 ave2/=even。 for(I=0。 I totfc+=(yy[I]ave2)*(yy[I]ave2)/even。 } } 题目 34:下列程序的功能是:选取出 100以上 1000以内所有个位数字与十位数字之和被 10除所得余数恰是百位数字的素数(如 293)。 计算并输出上述这些素 数的个数 CNT以及这些素数值的和 SUM。 请编写函数 COUNTvalue()实现程序要求,最后调用函数 WRITEDAT()把结果 CNT和 SUM输出到文件 中 . 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) {half=I/2。 for(j=2。 j if(I%j==0) break。 if(j=half) {t++。 sum+=I。 } } } } 题目 35: 某级数的前两项 A1=1,A2=1, 以后各项具有如下关系 : An=An2+2An1. 下列程序的功能是 : 要求依次对于整数 M=100,1000和 10000求出对应的 n值 , 使其满足 : Sn=M, 这里Sn=A1+A2+...+An, 并依次把 n值存入数组单元 b[0],b[1]和 b[2]中,请编制 jsvalue()函数来实现此功能, 最后调用函数 writeDat()把数组 b[]中的值输出到。 void jsvalue() /*标准答案 */ {int a1=1,a2=1,n=1,an。 int sum0,sum。 sum0=a1+a2。 while(1) {an=a1+a2*2。 sum=sum0+an。 a1=a2。 a2=an。 n++。 if (sum0100amp。 amp。 sum100) b[0]=n。 if (sum01000amp。 amp。 sum1000) b[1]=n。 if (sum010000amp。 amp。 sum10000) {b[2]=n。 break。 } sum0=sum。 } } jsvalue() {int a1=1,a2=1,a12,sn,k=2。 sn=a1+a2。 while(1) {a12=a1+2*a2。 if(sn100amp。 amp。 sn+a12=100) b[0]=k。 if(sn1000amp。 amp。 sn+a12=1000) b[1]=k。 if(sn10000amp。 amp。 sn+a12=10000) {b[2]=k。 break。 } sn=sn+a12。 a1=a2。 a2=a12。 k++。 } } 题目 36:函数 ReadDat()实现从文件 ,存入到字符串数组 xx中;请编制函数 encryptChar(),按给定的替代关系对数组 xx中的所有字符进行替代,仍存入数组 xx的对应的位置上,最后调用函数 WriteDat()把结果 xx输出到文件。 替代关系: f(p)=p*11 mod 256 (p是数组中某一个字符的 ASCII值, f(p)是计算后新字符的 ASCII值 ),如果计算后 f(p)值小于等于 32或 f(p)对应的字符是数字 0至 9,则该字符不变,否则将 f(p)所对应的字符进行替代。 void encryptChar() /*标准答案 */ {int I。 char *pf。 for(I=0。 I {pf=xx[I]。 while(*pf!=0) {if((*pf*11%256=39。 039。 amp。 amp。 *pf*1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。