C++函数编程20道习题汇总含其详细程序解答.docx

上传人:b****2 文档编号:2328717 上传时间:2022-10-28 格式:DOCX 页数:18 大小:101.83KB
下载 相关 举报
C++函数编程20道习题汇总含其详细程序解答.docx_第1页
第1页 / 共18页
C++函数编程20道习题汇总含其详细程序解答.docx_第2页
第2页 / 共18页
C++函数编程20道习题汇总含其详细程序解答.docx_第3页
第3页 / 共18页
C++函数编程20道习题汇总含其详细程序解答.docx_第4页
第4页 / 共18页
C++函数编程20道习题汇总含其详细程序解答.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C++函数编程20道习题汇总含其详细程序解答.docx

《C++函数编程20道习题汇总含其详细程序解答.docx》由会员分享,可在线阅读,更多相关《C++函数编程20道习题汇总含其详细程序解答.docx(18页珍藏版)》请在冰豆网上搜索。

C++函数编程20道习题汇总含其详细程序解答.docx

C++函数编程20道习题汇总含其详细程序解答

C++函数编程20道习题汇总含其详细程序解答

第1题:

编写两个函数,函数功能分别是:

求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。

样例输入:

1525

样例输出:

575

#include

intgys(inta,intb)

{inti;

for(i=a;i>0;i--)

if(a%i==0&&b%i==0)

{returni;

break;}

}

intgbs(inta,intb)

{inti;

for(i=a;;i++)

if(i%a==0&&i%b==0)

{returni;

break;}

}

intmain()

{inta,b,c,d;

cin>>a>>b;

c=gys(a,b);

d=gbs(a,b);

cout<

return0;}

第2题:

编写函数factors(num,k),函数功能是:

求整数num中包含因子k的个数,如果没有该因子则返回0,例如:

32=2×2×2×2×2,则factors(32,2)=5。

要求输入输出均在主函数中完成。

样例输入:

4 2样例输出:

2样例输入:

8 3样例输出:

0

#include

intfactors(intnum,intk)

{intn=0,a;

a=num%k;

while(a==0)

{n++;

num=num/k;

a=num%k;

}

returnn;}

intmain()

{intnum,k,b;

cin>>num>>k;

样例输入:

0.0005

样例输出:

3.14058

#include

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

p=s*2;

returnp;}

intmain()

{doublee,p;

cin>>e;

p=pai(e);

cout<

return0;}

第6题:

编写程序求 

要求使用函数,函数功能是:

求某个数的阶乘。

n由键盘输入,输入输出均在主函数中完成。

注意:

0!

=1。

样例输入:

3

样例输出:

10

#include

intjc(inta)

{ints=1,i;

if(a==0)

s=1;

else

{for(i=1;i<=a;i++)

s=s*i;}

returns;}

intmain()

{intn,k,s;

doublesum=0;

cin>>n;

for(k=0;k<=n;k++)

{s=jc(k);

sum+=s;}

cout<

return0;}

第7题:

求数列

要求使用函数计算该序列的前N项和SN,直到SN大于q为止,q由键盘输入,输入输出均在主函数中完成。

样例输入:

50

样例输出:

50.4167、

#include

floatsum(floatq)

{floats=0,a,n;

for(n=1;s<=q;n++)

{a=(n+1.0)/n;

s+=a;}

returns;}

intmain()

{

floatq,s;

cin>>q;

s=sum(q);

cout<

return0;}

第8题:

求数列的前n项和

 

要求使用函数,函数功能是:

计算数列的每一项,n由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

50

样例输出:

1.96079

#include

floatmyx(intn)

{floata;

inti,s=0;

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

s+=i;

a=1.0/s;

returna;}

intmain()

{intn,i;

floats=0;

cin>>n;

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

s+=myx(i);

cout<

return0;}

第9题:

编写函数fun(num),其中num是一个n位数,函数功能是:

求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。

样例输入:

9样例输出:

0样例输入:

6734样例输出:

734

样例输入:

1000样例输出:

0样例输入:

10101样例输出:

101

#include

#include

intjw(intx)

{inta,n,m;

if(x<10)

a=0;

else

{n=int(log10(x))+1;

m=x%int(pow(10,n-1));

a=m;}

returna;}

intmain()

{intx,c;

cin>>x;

c=jw(x);

cout<

return0;}

第10题:

编写函数,函数功能是:

判断输入的字符是否为数字字符。

如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。

样例输入:

5

样例输出:

YES

样例输入:

B

样例输出:

NO

#include

usingnamespacestd;

intpdsz(charn)

{intflag;

if(n>='0'&&n<='9')

flag=1;

else

flag=0;

returnflag;}

intmain()

{charn;

n=getchar();

if(pdsz(n)==1)

cout<<"yes";

else

cout<<"no";

return0;}

 

第11题:

编写函数,函数功能是:

将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。

a、b由键盘输入,输入输出均在主函数中完成。

样例输入:

4512

样例输出:

4125

#include

#include

inthb(inta,intb)

{intq,g,m,c;

q=a/10;

g=a%10;

m=b*10;

c=q*1000+m+g;

returnc;}

intmain()

{inta,b,c;

cin>>a>>b;

c=hb(a,b);

cout<

return0;}

第12题:

求数列的前n项和 

要求使用函数,函数功能是:

计算数列的每一项,n由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

10

样例输出:

0.382179

#include

#include

doubledx(doublen)

{doublea,b,c;

a=pow(-1,n+1);

b=n*(n+1);

c=a/b;

returnc;}

intmain()

{doublen,s=0,i,a;

cin>>n;

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

{a=dx(i);

s+=a;}

cout<

return0;}

第13题:

求数列的前n项和 

要求使用函数,函数功能是:

计算数列的每一项,n由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

3

样例输出:

123

#include

#include

intan(intn)

{ints=0,m,a,i;

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

{m=int(pow(10,i-1));

a=m;

s+=a;}

returns;}

intmain()

{intn,i,a,sum=0;

cin>>n;

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

{a=an(i);

sum+=a;}

cout<

return0;}

第14题:

求满足的n的最大值,要求使用函数,函数功能是:

计算n的立方,k由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

10000

样例输出:

13

#include

#include

intlf(intx)

{inta;

a=x*x*x;

returna;}

intmain()

{intk,s=0,i,n=0,a;

cin>>k;

for(i=1;s

{a=lf(i);

s+=a;}

n=i-2;

cout<

return0;}

第15题:

求数列 

直到相邻两项之差的绝对值小于1E-6为止。

要求使用函数,函数功能是:

计算数列的每一项,x由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

0.21

样例输出:

1.1

#include

#include

floatsn(floatx,floatn)

{floats=1,i,a=1,b=1,m;

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

{a=a*(0.5-(i-1));

b=b*i;

m=1/b;

s+=a*m*pow(x,i);}

returns;}

intmain()

{floatx,k,n=0,p,q;

cin>>x;

for(k=1;;k++)

{n++;

p=sn(x,n);

q=sn(x,n+1);

if(fabs(q-p)<1E-6)

break;}

cout<

return0;}

第16题:

利用级数展开式计算cosx 

直到某一项的绝对值小于0.00001为止。

要求使用函数,函数功能是:

计算数列的每一项,x由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

0样例输出:

1样例输入:

3样例输出:

-0.989992

#include

#include

doublean(doublex,doublen)

{doublea,b,k,c=1,d,e;

a=pow(-1,n);

b=pow(x,2*n);

for(k=1;k<=2*n;k++)

c*=k;

d=1/c;

e=a*b*d;

returne;}

intmain()

{doublex,s=1,i,p;

cin>>x;

for(i=1;;i++)

{p=an(x,i);

s+=p;

if(fabs(p)<0.00001)

break;}

cout<

return0;}

第17题:

利用级数展开式计算sinx 

直到某一项的绝对值小于0.00001为止。

要求使用函数,函数功能是:

计算数列的每一项,x由键盘输入。

累加过程和输入输出均在主函数中完成。

样例输入:

0

样例输出:

0

样例输入:

3

样例输出:

0.14112

#include

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

当前位置:首页 > 人文社科 > 法律资料

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

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