C++函数编程20道习题汇总含其详细程序解答Word文件下载.docx
《C++函数编程20道习题汇总含其详细程序解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++函数编程20道习题汇总含其详细程序解答Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
intmain()
{inta,b,c,d;
cin>
>
a>
b;
c=gys(a,b);
d=gbs(a,b);
cout<
<
c<
'
'
d;
return0;
第2题:
编写函数factors(num,k),函数功能是:
求整数num中包含因子k的个数,如果没有该因子则返回0,例如:
32=2×
2×
2,则factors(32,2)=5。
要求输入输出均在主函数中完成。
4
2样例输出:
2样例输入:
8
3样例输出:
0
intfactors(intnum,intk)
{intn=0,a;
a=num%k;
while(a==0)
{n++;
num=num/k;
returnn;
{intnum,k,b;
num>
k;
0.0005
3.14058
doublepai(doublee)
{doubles,a,k,p;
s=1;
a=1/3.0;
for(k=2;
k++)
{s+=a;
a=a*(k/(k*2+1));
if(a<
e)break;
p=s*2;
returnp;
}
{doublee,p;
e;
p=pai(e);
p<
endl;
第6题:
编写程序求
要求使用函数,函数功能是:
求某个数的阶乘。
n由键盘输入,输入输出均在主函数中完成。
注意:
0!
=1。
3
10
intjc(inta)
{ints=1,i;
if(a==0)
else
{for(i=1;
i<
=a;
s=s*i;
returns;
{intn,k,s;
doublesum=0;
n;
for(k=0;
k<
=n;
{s=jc(k);
sum+=s;
sum<
第7题:
求数列
要求使用函数计算该序列的前N项和SN,直到SN大于q为止,q由键盘输入,输入输出均在主函数中完成。
50
50.4167、
floatsum(floatq)
{floats=0,a,n;
for(n=1;
s<
=q;
n++)
{a=(n+1.0)/n;
s+=a;
{
floatq,s;
q;
s=sum(q);
第8题:
求数列的前n项和
计算数列的每一项,n由键盘输入。
累加过程和输入输出均在主函数中完成。
1.96079
floatmyx(intn)
{floata;
inti,s=0;
for(i=1;
s+=i;
a=1.0/s;
returna;
{intn,i;
floats=0;
s+=myx(i);
第9题:
编写函数fun(num),其中num是一个n位数,函数功能是:
求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。
9样例输出:
0样例输入:
6734样例输出:
734
1000样例输出:
0样例输入:
10101样例输出:
101
math.h>
intjw(intx)
{inta,n,m;
if(x<
10)
a=0;
{n=int(log10(x))+1;
m=x%int(pow(10,n-1));
a=m;
{intx,c;
x;
c=jw(x);
第10题:
编写函数,函数功能是:
判断输入的字符是否为数字字符。
如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。
5
YES
B
NO
iostream>
usingnamespacestd;
intpdsz(charn)
{intflag;
if(n>
='
0'
n<
9'
)
flag=1;
flag=0;
returnflag;
{charn;
n=getchar();
if(pdsz(n)==1)
"
yes"
no"
第11题:
将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。
a、b由键盘输入,输入输出均在主函数中完成。
4512
4125
inthb(inta,intb)
{intq,g,m,c;
q=a/10;
g=a%10;
m=b*10;
c=q*1000+m+g;
returnc;
{inta,b,c;
c=hb(a,b);
第12题:
求数列的前n项和
0.382179
doubledx(doublen)
{doublea,b,c;
a=pow(-1,n+1);
b=n*(n+1);
c=a/b;
{doublen,s=0,i,a;
{a=dx(i);
第13题:
123
intan(intn)
{ints=0,m,a,i;
{m=int(pow(10,i-1));
{intn,i,a,sum=0;
{a=an(i);
sum+=a;
第14题:
求满足的n的最大值,要求使用函数,函数功能是:
计算n的立方,k由键盘输入。
10000
13
intlf(intx)
{inta;
a=x*x*x;
{intk,s=0,i,n=0,a;
{a=lf(i);
n=i-2;
第15题:
求数列
直到相邻两项之差的绝对值小于1E-6为止。
计算数列的每一项,x由键盘输入。
0.21
1.1
floatsn(floatx,floatn)
{floats=1,i,a=1,b=1,m;
{a=a*(0.5-(i-1));
b=b*i;
m=1/b;
s+=a*m*pow(x,i);
{floatx,k,n=0,p,q;
for(k=1;
p=sn(x,n);
q=sn(x,n+1);
if(fabs(q-p)<
1E-6)
第16题:
利用级数展开式计算cosx
直到某一项的绝对值小于0.00001为止。
0样例输出:
1样例输入:
3样例输出:
-0.989992
doublean(doublex,doublen)
{doublea,b,k,c=1,d,e;
a=pow(-1,n);
b=pow(x,2*n);
=2*n;
c*=k;
d=1/c;
e=a*b*d;
returne;
{doublex,s=1,i,p;
{p=an(x,i);
s+=p;
if(fabs(p)<
0.00001)
第17题:
利用级数展开式计算sinx
0.14112
iostr