教材程序设计题答案_第1页
教材程序设计题答案_第2页
教材程序设计题答案_第3页
教材程序设计题答案_第4页
教材程序设计题答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1设计程序:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间1,6的整数,找出使z取最小值的x1、y1,并将x1、y1以格式%d,%d写入到考生目录中Paper子目录下的新建文件design.dat中。 #include void main() FILE *p; float f(float x,float y),min; int x,y,x1,y1; p=fopen(design.dat,w); /*注意这里的路径根据考试环境改为考生文件夹路径*/ min=f(1,1);x1=y1=1; for(x=1;x=6;x+) for(y=1;y=6;y+) if(f(x,y)m

2、in) min=f(x,y); x1=x; y1=y; fprintf(p,%d,%d,x1,y1); fclose(p); float f(float u,float v) return (3.14*u-v)/(u+v); 2设计程序:在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式%3d每行3个数写到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.hmain()FILE *p;int i,j,temp,n=0;int a10=7,6,20,3,14,88,53,62,10,29,b10;j=0;p=fopen(desi

3、gn.dat,w);for(i=0;i10;i+)if (ai%2=0)bj=ai;j+;n=j; /*n为b数组中元素个数*/for(i=0;in;i+) for(j=i+1;jbj) temp=bi; bi=bj; bj=temp; for(i=0;in;i+)if(i%3=0)fprintf(p,n); fprintf(p,%3d,bi ); fclose(p);3设计程序:将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。 #include Stdio.h#include math.hmain() float

4、a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27; FILE *p; float x;int i,j; for(i=0;i3;i+) x=ai0;/*将每行第一个元素暂定为绝对值最大的元素*/ for(j=0;jabs(x) x=aij; for(j=0;j3;j+) aij=aij/x; p=fopen(design.dat,w); for(i=0;i3;i+) for(j=0;j3;j+) fprintf(p,%10.6f,aij); fprintf(p,n); fclose(p);4设计程序:计算表达式1+2!+3!+.+12!的值,并将计算结果以格式 %ld 写入到考生

5、目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include Conio.hmain() FILE *p;long s=1,k=1;int i; p=fopen(design.dat,w);for(i=2;i=12;i+)k=k*i;s+=k;fprintf(p,%ld,s);fclose(p);5设计程序:将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include string.hmain()FILE *p;char

6、*s=634,.%w|SQ2,c;int i,j,k,n=strlen(s);p=fopen(design.dat,w);for(i=0;in;i+) /*用选择排序法*/ for(j=i+1;jsj) c=si;si=sj;sj=c;for(i=0;in;i+)fputc(si,p);fclose(p);6设计程序:数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,并以格式%.3f写到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FILE *p;float s=0,a=81;in

7、t i;p=fopen(design.dat,w);s=81;for(i=1;i0) /*此循环实现将数m的各位数字转换为字符存放在字符数组s中 */ w=m%10; si+=w+0; /*将数字w转换为字符存放在字符数组元素si中*/ m=m/10; w=i; i=0; while(iw/2) /*此循环实现将字符数组s中存放的字符,从首尾开始依次比较*/ if (si!=sw-1-i) return 0;i+;return 1; main()FILE *p;long m;p=fopen(design.dat,w);for(m=11;m0) pw=pw*10; x=x/10; pw=pw/1

8、0; y=0; x=s; /*用s变量的值恢复x的值*/while(x0) d=x%10; y=y+d*pw; pw=pw/10; x=x/10; x=s; /*用s变量的值恢复x的值*/if(x=y)return 1;else return 0;方法三:jsvalue函数编写的另一种方法 (最简单)int jsvalue(long x)long y=0,z=x; while(x!=0) y=y*10+x%10; x/=10; if(z=y)return 1;else return 0;8设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+a9*s

9、in(x*x*x*x*x*x*x*x*x)的值,并将其值以格式%.6f写入到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FILE *p;int i;float x=2.345,t=1.0,y=0.0;float a10=1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9;p=fopen(design.dat,w);y= a0;for(i=1;i10;i+) t=t*x; y=y+ai*sin(t); fprintf(p,%.6f,y);fclose(p);9设计程序

10、:对x=1,2,.,10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式%.3f写到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FILE *p;float f(float),max,x;p=fopen(design.dat,w);max=f(1); /*暂定f(1)的值为最大值*/for(x=2;xmax) max=f(x);fprintf(p,%.3f,max);fclose(p);float f(float x)float y; y=x-10*cos(x)-5*si

11、n(x); return y; 10设计程序:统计满足条件x*x+y*y+z*z=2000的所有解的个数,并将统计结果以格式%d写入到考生目录中Paper子目录下的新建文件design.dat中说明:若a、b、c是1个解,则a、c、b也是1个解,等等。 #include Stdio.hmain()FILE *p;int x,y,z,k=0;p=fopen(design.dat,w);for(x=0;x50;x+) /*因为50的平方为2500,所以x最大不超过50*/ for(y=0;y50;y+) /*若不允许重复解改为for(y=x;y50;y+) */ for(z=0;z50;z+) /

12、*若不允许重复解改为for(z=y;z50;z+) */ if(x*x+y*y+z*z=2000)k+;fprintf(p,%d,k);fclose(p);11设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间0,10的整数,找出使z取最小值的x1,y1,并将x1、y1以格式%d,%d写入到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FILE *p;int x,y,x1,y1;float z,z1;p=fopen(design.dat,w);z1=10*cos(

13、-4)+5*sin(-2); /*暂定f(0,0)为最小值并存放在z1中*/x1=0;y1=0;for(x=0;x=10;x+) for(y=0;yz)z1=z;x1=x;y1=y; fprintf(p,%d,%d,x1,y1);fclose(p);12设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,.的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式%.6f写到考生目录中Paper子目录下的新建文件design.dat中。 #include Stdio.h#include math.hmain()FILE *p;float s=1,t=1,i=3;p=f

14、open(design.dat,w);while(fabs(t)1e-5) /*绝对值小于1e-5的项不累加,先判断数据项是否满足条件再累加*/ t=-t/(i*(i-1); s=s+t;i=i+2; fprintf(p,%.6f,s);fclose(p);13设计程序:计算多项式a0-a1*x+a2*x*x/2!-a3*x*x*x/3!+.-a9*x*x*x*x*x*x*x*x*x/9!的值,并将其以格式%f写到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FILE *p;int i;float x=1

15、.279,t,y;float a10=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65;p=fopen(design.dat,w);y=a0;t=1;for(i=1;i10;i+) t=-t*x/i; /*利用循环连除i的技巧实现求阶乘*/ y=y+t*ai; fprintf(p,%f,y);fclose(p);14设计程序:求解百鸡问题。已知公鸡每只5元、母鸡每只3元、小鸡1元3只。求出用100元买100只鸡的解。将得到的解按公鸡、母鸡和小鸡的只数以%d,%d,%dn的格式写入到考生目录中Paper子目录下的新建文件design.dat中。#inc

16、lude Stdio.hmain()FILE *p;int cock,hen,chick;p=fopen(design.dat,w);fprintf(cock hen chickn);for(cock=0;cock=20;cock+) for(hen=0;hen=33;hen+) for(chick=0;chick=100;chick+) if(cock+hen+chick= =100)&(cock*5+hen*3+chick/3)= =100) fprintf(p,%d,%d,%dn,cock,hen,chick);fclose(p);15设计程序:在6至5000内找出所有的亲密数对,并将每

17、对亲密数用语句 fprintf(p,%6d,%6dn,a,b);”写到考生目录中Paper子目录下的新建文件design.dat中。说明:若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。 如:220、284是1对亲密数,284、220也是1对亲密数。 #include Stdio.hmain() FILE *p;int a,b,c,k; p=fopen(design.dat,w); for(a=6;a=5000;a+) b=1; /*用b存放a的因子和*/ for(k=2;k=a/2;k+) /*任何数的因子不会大于该数的一半,所以k的最大取值为a/2*/ if(a%

18、k= =0)b=b+k; c=1; /*用c存放b的因子和*/ for(k=2;k=b/2;k+) if(b%k=0)c=c+k; if(c=a&a!=b&(6=b&b=5000) /*难点:因为b中存放的是a的因子和,所以这里判断b的因子和c是否等于a*/ fprintf(p,%6d,%6dn,a,b); fclose(p);16设计程序:xi,yi分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式%.6f写入到考生目录中Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FI

19、LE *p;int i;float x10=-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6;float y10=3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4;float s=0.0;p=fopen(design.dat,w);for(i=0;i10;i+) s=s+sqrt(xi-1)*(xi-1)+(yi-1)*(yi-1) ;fprintf(p,%.6f,s);fclose(p);17设计程序:计算2的平方根、3的平方根、.、10的的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式%.10lfn写到考生目录中

20、Paper子目录下的新建文件design.dat中。#include Stdio.h#include math.hmain()FILE *p;int i; double s=0.0000000000;p=fopen(design.dat,w);for(i=2;i=10;i+) s=s+sqrt(i);fprintf(p,%.10lf,s);fclose(p);18 设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a00,第2行同除以a11,.),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。#include St

21、dio.h#include math.hmain() float a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27; FILE *p; int i,j; for(i=0;i3;i+) for(j=0;j3;j+) aij=aij/aii ; p=fopen(design.dat,w); for(i=0;i3;i+) for(j=0;j3;j+) fprintf(p,%10.6f,aij); fputs(p,n); fclose(p);19 设计程序:在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式%.5f写到考生目录中Paper子目录下的新建文件design.dat中。 #include Stdio.hmain() FILE *p; int i; float a10=7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81,sum,v=0; sum=0; p=fopen(design.dat,w); for(i=0;i10;i+) sum=sum+ai; v=sum/10;sum=0; for(i=0;i=v)sum+=ai; fprintf(p,%.5f,sum); fclose(p);20设计程序:计算字符串s中每个字符的权重值,所谓权

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论