资格证考试.docx
- 文档编号:11546945
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:35
- 大小:25.28KB
资格证考试.docx
《资格证考试.docx》由会员分享,可在线阅读,更多相关《资格证考试.docx(35页珍藏版)》请在冰豆网上搜索。
资格证考试
资格统考复习题
1.编写程序,用矩形法求一元函数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;
s=0;
for(i=1;i<=n;i++)
{x=a+i*h;
s=s+f(x)*h;
}
printf("s=%6.2f\n",s);
}
运行结果:
s=92.50
2.编写程序,用矩形法求一元函数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;
s=0;
for(i=1;i<=n;i++)
{x=a+i*h;
s=s+f(x)*h;
}
printf("s=%6.2f\n",s);
}
运行结果:
s=90.69
3.编写程序,用矩形法求一元函数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*pow(x,3)+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;
s=0;
for(i=1;i<=n;i++)
{x=a+i*h;
s=s+f(x)*h;
}
printf("s=%8.2f\n",s);
}
运行结果:
s=3201.43
4.编写程序,用矩形法求一元函数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*pow(x,3)+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;
s=0;
for(i=1;i<=n;i++)
{x=a+i*h;
s=s+f(x)*h;
}
printf("s=%8.3f\n",s);
}
运行结果:
s=89.852
5.编写程序,用牛顿切线法求方程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);
while(fabs(x0-x1)>1e-4)
{x0=x1;
x1=x0-(x0+log(x0)-1.56)/(1+1/x0);
}
printf("x=%8.4f\n",x1);
}
运行结果:
x=1.2987
6.编写程序,用牛顿切线法求方程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-(x0*x0*x0+2*x0*x0-14)/(3*x0*x0+2*2*x0);
while(fabs(x0-x1)>1e-4)
{x0=x1;
x1=x0-(x0*x0*x0+2*x0*x0-14)/(3*x0*x0+2*2*x0);
}
printf("x=%10.4f\n",x1);
}
运行结果:
x=1.8957
7.要求:
编写程序,用梯形法求一元函数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;
}
voidmain()
{doublea,b,s,x,h;
intn=20,i;
a=1.0;b=4.0;
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;
printf("s=%8.3f\n",s);
}
运行结果:
s=6.160
8.编写程序,用梯形法求一元函数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;
}
voidmain()
{doublea,b,s,x,h;
intn=25,i;
a=3.0;b=5.0;
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;
printf("s=%8.2f\n",s);
}
运行结果:
s=889.52
9.编写程序,用普通迭代法求方程f(x)=x+㏒x-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。
(注意:
㏒x是以10为底常用对数)(提示:
必须把方程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=%8.4f\n",x1);
}
运行结果:
x=2.7419
10.编写程序,用普通迭代法求方程f(x)=x+lgx-3.18=0的近似实根r,迭代初值为2.5,精确到0.0001。
(注意:
lgx是以10为底的常用对数)[提示:
必须把方程f(x)=0化成其等价形式x=g(x)](本题允许使用其他迭代法)
#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=%8.4f\n",x1);
}
运行结果:
x=2.7419
11.编写程序,用二分法求一元非线性方程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
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("sum=%d\n",sum);
}
运行结果:
sum=530
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("sum=%d",sum);
}
运行结果:
sum=45
14.设计如图所示的运行界面,从键盘输入一批不少于10个数的任意数据,点击“计算”按钮,将实现如下功能:
去掉其中的最大数和最小数,输出剩余数据的平均值(保留两位小数)。
〈image001.gif>
#include"stdio.h"
voidmain()
{inti;
floatx,min,max,sum=0,ave;
printf("输入10个数:
\n");
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("sum=%10.2f\n",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("sum=%10.4f\n",sum); } 运行结果: sum=2368.6831 16.编写程序,计算出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("sum=%10.4f\n",sum); } 运行结果: sum=65994.6641 17.编写程序,界面如下。 统计在所有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("sum=%d\n",sum); } 运行结果: sum=28 18.编写程序,计算出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("sum=%ld\n",sum); } 运行结果: sum=2310288 19.编写程序,从键盘输入一个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); } 运行结果: i=123,sum=6 20.编写程序,计算并输出下面数列前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("sum=%ld\n",sum); } 运行结果: sum=4095564 21.编写程序,计算下面数列前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("sum=%10.4f\n",sum); } 运行结果: sum=0.1931 22.编写程序,计算并输出下面数列前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("sum=%15.4e\n",sum); } 运行结果: sum=1.4016e+012 23.编写程序,计算并输出下面数列前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("sum=%ld\n",sum); } 运行结果: sum=1728870 24.编写程序,计算并输出下面数列前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("sum=%f\n",sum); } 运行结果: sum=38.161500 25.编写程序,求下面数列前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("sum=%10.4f\n",sum); } 运行结果: sum=1.0823 26.编写程序,计算并输出下面数列前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("sum=%d\n",sum); } 运行结果: sum=-1300 27.编写程序,计算并输出下面数列前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("sum=%d\n",sum); } 运行结果: sum=16744 28.编写程序,计算下面数列前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("sum=%8.4f\n",sum); } 运行结果: sum=0.1931 29.编写程序,求下面数列前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("sum=%10.4f\n",sum); } 运行结果: sum=1.2287 30.编写程序,计算并输出如下数列前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("sum=%d\n",sum); } 运行结果: sum=-24282 31.编写程序,计算并输出下面数列中前n(设n=8)项的和。 结果取四位小数。 1/1! ,1/2! ,1/3! ,1/4! ,……,1/n! ,……(其中,! 表示求阶乘) #include"stdio.h" voidmain() {intn;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 资格证 考试