统考习题答案60.docx

上传人:b****6 文档编号:7777050 上传时间:2023-01-26 格式:DOCX 页数:28 大小:23.44KB
下载 相关 举报
统考习题答案60.docx_第1页
第1页 / 共28页
统考习题答案60.docx_第2页
第2页 / 共28页
统考习题答案60.docx_第3页
第3页 / 共28页
统考习题答案60.docx_第4页
第4页 / 共28页
统考习题答案60.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

统考习题答案60.docx

《统考习题答案60.docx》由会员分享,可在线阅读,更多相关《统考习题答案60.docx(28页珍藏版)》请在冰豆网上搜索。

统考习题答案60.docx

统考习题答案60

统考复习题

1.编写程序,用牛顿切线法求方程f(x)=x+㏑x-1.56=0的近似实根r,迭代初值为2,精确到0.0001。

(注意:

㏑x是以e为底的自然对数)(提示:

牛顿切线法的计算公式为x=x-f(x)/f′(x)).

#include"stdio.h"

#include"math.h"

voidmain()

{floatx0,x1;

x0=2;

x1=x0-(x0+log(x0)-1.56)/(1+1/x0);

do

{x0=x1;

x1=x0-(x0+log(x0)-1.56)/(1+1/x0);}

while(fabs(x0-x1)>1e-4);

printf("x=%10.4f\n",x1);

}

运行结果:

x=1.2987

2.编写程序,用牛顿切线法求方程f(x)=x+㏒x-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。

(注意:

㏒x是以10为底常用对数lgx)(提示:

必须把方程f(x)=0化成其等价形式x=g(x))(本题允许使用其他迭代法)

#include"stdio.h"

#include"math.h"

voidmain()

{floatx0,x1;

x0=2.5;

x1=x0-(x0+log10(x0)-3.18)/(1+1/(x0*log(10)));

do

{x0=x1;

x1=x0-(x0+log10(x0)-3.18)/(1+1/(x0*log(10)));}

while(fabs(x0-x1)>1e-4);

printf("x=%10.4f\n",x1);

}

运行结果:

x=2.741938

3.编写程序,用普通迭代法求方程f(x)=x+㏒x-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。

(注意:

㏒x是以10为底常用对数lgx)(提示:

必须把方程f(x)=0化成其等价形式x=g(x))(本题允许使用其他迭代法)

要求:

在运行程序时,使用文本框或InputBox函数输入迭代初值,并用适当的方法输出运算结果

#include"stdio.h"

#include"math.h"

voidmain()

{floatx0,x1;

x0=2.5;

x1=3.18-log10(x0);

do

{x0=x1;

x1=3.18-log10(x0);}

while(fabs(x0-x1)>1e-4);

printf("x=%f\n",x1);

}

运行结果:

x=2.741938

4.编写程序,用牛顿切线法求方程f(x)=x^3+2x^2-14=0(其中^表示幂运算),在区间(0,5)上的近似实根r,迭代初值自选,精确到0.0001。

{提示:

牛顿切线法的计算公式为x=x-f(x)/f’(x)}.

#include"stdio.h"

#include"math.h"

voidmain()

{floatx0,x1;

x0=2.5;

x1=x0-(pow(x0,3)+2*pow(x0,2)-14)/(3*pow(x0,2)+4*x0);

do

{x0=x1;

x1=x0-(pow(x0,3)+2*pow(x0,2)-14)/(3*pow(x0,2)+4*x0);}

while(fabs(x0-x1)>1e-4);

printf("x=%f\n",x1);

}

运行结果:

x=1.895706

5.编写程序,用二分法求一元非线性方程f(x)=x+cosx-2.8=0在区间(0,5)上的近似实根r,精确到0.0001。

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=x+cos(x)-2.8;

returny;

}

doublexpoint(doublex1,doublex2)

{doubley;

y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));

returny;

}

doubleroot(doublex1,doublex2)

{doublex,y,y1;

y1=f(x1);

do

{x=xpoint(x1,x2);

y=f(x);

if(y*y1>0){y1=y;x1=x;}elsex2=x;

}while(fabs(y)>=0.0001);

returnx;

}

voidmain()

{doublex,x1,x2;

x1=0;x2=5;

if(f(x1)*f(x2)>0)printf("此区间无根");

elsex=root(x1,x2);

printf("x=%8.4f\n",x);

}

/*x=3.6657*/

6.编写程序,用矩形法求一元函数f(x)=x^3+2x^2-12x-6(其中^示幂运算),在区间[3.5,5]上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)。

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=x*x*x+2*x*x-12*x-6;

returny;

}

voidmain()

{inti,n;

doublea,b,x,h,s;

n=15;

a=3.5;b=5.0;

h=(b-a)/n;

x=a;

s=0;

for(i=1;i<=n;i++)

{x=x+h;

s=s+f(x)*h;

}

printf("s=%6.2f\n",s);

}

运行结果:

s=92.50

7.编写程序,用矩形法求一元函数f(x)=x^3+2x^2-12x-6(其中^示幂运算),在区间[3.5,

5]上的积分近似值S,保留2位小数(小区间数n=25,此参数不能改动,否则影响答案)

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=x*x*x+2*x*x-12*x-6;

returny;

}

voidmain()

{inti,n;

doublea,b,x,h,s;

n=25;

a=3.5;b=5.0;

h=(b-a)/n;

x=a;

s=0;

for(i=1;i<=n;i++)

{x=x+h;

s=s+f(x)*h;

}

printf("s=%6.2f\n",s);

}

运行结果:

s=90.69

8.要求:

编写程序,用梯形法求一元函数f(x)=㏑(x+1)+x/3,在区间[1,4]上的积分近似值S,保留3位小数(小区间数n=20,此参数不能改动)。

(注意:

㏑x是以e为底的自然对数)

在运行程序时,使用文本框或InputBox函数输入n值,并用适当的方法输出运算结果。

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=log(x+1)+x/3.0;

returny;

}

doubleinteg(doublea,doubleb)

{doubles,x,h;

intn=20,i;

h=fabs(b-a)/n;

s=(f(a)+f(b))/2.0;

for(i=1;i<=n-1;i++)

{x=a+i*h;s=s+f(x);}

s=s*h;

returns;

}

voidmain()

{doubles;

s=integ(1.0,4.0);

printf("s=%8.3f\n",s);

}

运行结果:

s=6.160

9.编写程序,用梯形法求一元函数f(x)=7x^3+2x^2-12x-16(其中^表示幂运算),在区间[3,5]上的积分近似植S,保留2位小数(小区间数n=25,此参数不能改动,否则影响答案)

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=7*x*x*x+2*x*x-12*x-16;

returny;

}

doubleinteg(doublea,doubleb)

{doubles,x,h;

intn=25,i;

h=fabs(b-a)/n;

s=(f(a)+f(b))/2.0;

for(i=1;i<=n-1;i++)

{x=a+i*h;s=s+f(x);}

s=s*h;

returns;

}

voidmain()

{doubles;

s=integ(3.0,5.0);

printf("s=%8.2f\n",s);

}

运行结果:

s=889.52

10.编写程序,用矩形法求一元函数f(x)=7x^3+2x^2-12x-16(其中^表示幂运算),在区间[5,7]上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=7*x*x*x+2*x*x-12*x-6;

returny;

}

voidmain()

{inti,n;

doublea,b,x,h,s;

n=15;

a=5.0;b=7.0;

h=(b-a)/n;

x=a;

s=0;

for(i=1;i<=n;i++)

{x=x+h;

s=s+f(x)*h;

}

printf("s=%6.2f\n",s);

}

运行结果:

s=3201.43

11.编写程序,用矩形法求一元函数f(x)=3x^3+2x^2+x+1(其中^表示幂运算),在区间[1,3]上的积分近似值S,保留3位小数(小区间数n=15,此参数不能改动,否则影响答案)

#include"stdio.h"

#include"math.h"

doublef(doublex)

{doubley;

y=3*x*x*x+2*x*x+x+1;

returny;

}

voidmain()

{inti,n;

doublea,b,x,h,s;

n=15;

a=1.0;b=3.0;

h=(b-a)/n;

x=a;

s=0;

for(i=1;i<=n;i++)

{x=x+h;

s=s+f(x)*h;

}

printf("s=%8.3f\n",s);

}

运行结果:

s=89.852

12.编写程序,计算出1到500之间所有满足下列条件的整数的和:

该整数的所有因子

(包括1,但不包括整数本身)之和等于整数本身。

#include"stdio.h"

voidmain()

{intsum=0,i,j,s;

for(i=1;i<=500;i++)

{s=0;

for(j=1;j<=i/2;j++)

if(i%j==0)s=s+j;

if(i==s)sum=sum+i;

}

printf("%d\n",sum);

}

13.编写程序,界面如下。

统计在所有3位数中,其个位、十位、百位上的数码相加等于9的数据个数。

点击“运行“按钮输出结果。

〈image.gif>

#include"stdio.h"

voidmain()

{inti,a,b,c,sum=0;

for(i=100;i<=999;i++)

{a=i/100;

b=(i-100*a)/10;/*b=(i%100)/10;*/

c=i-100*a-10*b;/*c=i%10;*/

if(a+b+c==9)sum++;

}

printf("%d",sum);

}

14.设计如图所示的运行界面,从键盘输入一批不少于10个数的任意数据,点击“计算”按钮,将实现如下功能:

去掉其中的最大数和最小数,输出剩余数据的平均值(保留两位小数)。

〈image001.gif>

#include"stdio.h"

voidmain()

{inti;

floatx,min,max,sum=0,ave;

scanf("%f",&x);

max=x;min=x;sum=sum+x;

for(i=1;i<10;i++)

{scanf("%f",&x);sum=sum+x;

if(x>max)max=x;

if(x

}

ave=(sum-max-min)/(i-2);

printf("%5.2f",ave);

}

15.编写程序,计算出300到810之间所有满足下列条件的整数的平方根和:

整数能被其每位数字的和整除。

要求:

运行程序,将结果四舍五入保留4位小数,并采用适当的方式输出。

#include"stdio.h"

#include"math.h"

voidmain()

{inti,a,b,c;

floatsum=0;

for(i=300;i<=810;i++)

{a=i/100;

b=(i-100*a)/10;/*b=(i%100)/10;*/

c=i-100*a-10*b;/*c=i%10;*/

if(i%(a+b+c)==0)sum=sum+sqrt(i);

}

printf("%f",(int)(sum*10000+0.5)/10000.0);

}

16.设计如下所示的运行界面,N表示一个八进制整数,按[确定]按钮后输出这个整数各位数字位数之和,要求和为十进制数。

用可视化编程实现。

〈image067.gif>

17.编写程序,计算出1000到5000之间能被3整除但不能被13整除的整数的所有的整数的平方根的和。

保留4位小数

#include"stdio.h"

#include"math.h"

voidmain()

{inti;floatsum=0;

for(i=1000;i<=5000;i++)

if(i%3==0&&i%13!

=0)sum=sum+sqrt(i);

printf("%5.4f",sum);

}

18.编写程序,界面如下。

统计在所有3位数中,其个位、十位、百位上的数码相加等于21的数据个数。

点击“运行”按钮输出结果。

〈image115.gif>

#include"stdio.h"

voidmain()

{inti,a,b,c,sum=0;

for(i=100;i<=999;i++)

{a=i/100;

b=(i-100*a)/10;/*b=(i%100)/10;*/

c=i-100*a-10*b;/*c=i%10;*/

if(a+b+c==21)sum++;

}

printf("%d",sum);

}

19.编写程序,计算出1000到9900之间所有能被3和7同时整除的整数之和。

#include"stdio.h"

voidmain()

{inti;

longsum=0;

for(i=1000;i<=9900;i++)

if(i%3==0&&i%7==0)sum=sum+i;

printf("%ld",sum);

}

20.设计如图所示的运行界面,从键盘输入不少于10个数的任意数据,点击“计算”按钮,输出这些数据中最小的5个数的平均值(保留两位小数)。

21.编写程序,从键盘输入一个3位正整数,试求其个、十、百位数之和(例如:

136的各位数之和为10)。

要求:

用可视化程序设计出如下界面,点击“确认”按钮输出运算结果

#include"stdio.h"

voidmain()

{inti,a,b,c,sum=0;

printf("enteri:

");

scanf("%d",&i);

a=i/100;

b=(i-100*a)/10;/*b=(i%100)/10;*/

c=i-100*a-10*b;/*c=i%10;*/

sum=a+b+c;

printf("i=%d,sum=%d",i,sum);

}

22.编写程序,计算并输出下面数列前n(设n=45)项中所有偶数项的和。

1*2*3,3*4*5,5*6*7,……,(2n-1)*2n*(2n+1),……

#include"stdio.h"

voidmain()

{intn;

longsum=0;

for(n=2;n<=45;n=n+2)

sum=sum+(2*n-1)*(2*n)*(2*n+1);

printf("%ld",sum);

}

23.编写程序,计算下面数列前n项(设n=50)中奇数项的和。

结果取4位小数。

1/(1*2*3),1/(2*3*4),1/(3*4*5),……,1/(n(n+1)(n+2),……

#include"stdio.h"

voidmain()

{intn;

floatsum=0;

for(n=1;n<=50;n=n+2)

sum=sum+1.0/(n*(n+1)*(n+2));

printf("%5.4f",sum);

}

24.编写程序,计算并输出下面数列前n(设n=15)项的和。

用科学技术法表示结果,尾数取4位小数。

1!

,2!

,3!

,4!

,……,n!

,……(其中,!

表示求阶乘)。

#include"stdio.h"

voidmain()

{intn;

floatsum=0,p=1;

for(n=1;n<=15;n++)

{p=p*n;sum=sum+p;}

printf("%5.4e",sum);

}

25.编写程序,计算并输出下面数列前30项的和。

1*2*3,3*4*5,5*6*7,……,(2n-1)*2n*(2n+1),……

#include"stdio.h"

voidmain()

{intn;

longsum=0;

for(n=1;n<=30;n++)

sum=sum+(2*n-1)*(2*n)*(2*n+1);

printf("%ld",sum);

}

26.编写程序,计算并输出下面数列前40项的和,结果取6位小数,小数点后第5位四舍五入。

2/3,4/5,6/7,8/9,10/11,12/13,14/15,……,(2n)/(2n+1)

要求:

在运行程序时,使用文本框或InputBox函数输入n值,并用适当的方法输出运算结果。

#include"stdio.h"

voidmain()

{intn;

floatsum=0;

for(n=1;n<=40;n++)

sum=sum+2.0*n/(2*n+1);

sum=(int)(sum*10000+0.5)/10000.0;

printf("%f",sum);

}

27.编写程序,求下面数列前40项的和。

结果取4位小数。

1,1/2^4,1/3^4,1/4^4,……,1/n^4,……(其中,^表示幂运算)

#include"stdio.h"(1.0823)

#include"math.h"

voidmain()

{intn;

floatsum=0;

for(n=1;n<=40;n++)

sum=sum+1.0/pow(n,4);

printf("%5.4f",sum);

}

28.编写程序,计算并输出下面数列前n项(设n=50)的和。

1*2,-2*3,3*4,-4*5,……,(-1)^(n-1)*n*(n+1),……(其中,^表示幂运算)

#include"stdio.h"

voidmain()

{intn,s=1;

intsum=0;

for(n=1;n<=50;n++)

{sum=sum+s*n*(n+1);s=-s;}

printf("%d",sum);

}

29.编写程序,计算并输出下面

数列前n(设n=45)项中所有奇数项的和。

1*2,2*3,3*4,4*5,……,n*(n+1),……

#include"stdio.h"

voidmain()

{intn;

intsum=0;

for(n=1;n<=45;n=n+2)

sum=sum+n*(n+1);

printf("%d",sum);

}

30.编写程序,计算下面数列前n项(设n=50)中奇数的和。

结果取4位小数。

1/(1*2*3),1/(2*3*4),1/(3*4*5),……,1/(n(n+1)(n+2)),……

#include"stdio.h"

voidmain()

{intn;

floatsum=0;

for(n=1;n<=50;n=n+2)

sum=sum+1.0/(n*(n+1)*(n+2));

printf("%5.4f",sum);

}

31.编写程序,求下面数列前50项的和。

结果取4位小数。

1,1/(3*3),1/(5*5),1/7*7),……,1/(2n-1)*(2n-1),……

#include"stdio.h"

voidmain()

{intn;

floatsum=0;

for(n=1;n<=50;n++)

sum=sum+1.0/((2*n-1)*(2*n-1));

printf("%5.4f",sum);

}

32.编写程序,计算并输出如下数列前35项的和。

-1*2*3,2*3*4,-3*4*5,……,(-1)^n*(n*(n+1)*(n+2)),……

(其中,(-1)^n表示-1的n次方)

#include"stdio.h"

voidmain()

{intn,s=-1;

intsum=0;

for(n=1;n<=35;n++)

{sum=sum+s*n*(n+1)*(n+2);s=-s;}

printf("%d",sum);

}

33.编写程序,计算并输出下面数列中前n(设n=8)项的和。

结果取四位小数。

1/1!

,1/2!

,1/3!

,1/4!

,……,1/n!

,……(其中,!

表示求阶乘)

#include"stdio.h"

voidmain()

{intn;

floatsum=0,p=1;

for(n=1;n<=8;n++)

{p=n*p;sum=sum+1.0/p;}

printf("%5.4f",sum);

}

34.编写程序,计算并输出下列前35项的和,结果取4位小数。

1/2,2/3,3/4,4/5,5/6,6/7,7/8,……n/(n+1),……

#include"stdio.h"

voidmain

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1