C++函数编程20道习题汇总含其详细程序解答DOCWord格式文档下载.docx

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

C++函数编程20道习题汇总含其详细程序解答DOCWord格式文档下载.docx

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

C++函数编程20道习题汇总含其详细程序解答DOCWord格式文档下载.docx

intfactors(intnum,intk)

{intn=0,a;

a=num%k;

while(a==0)

{n++;

num=num/k;

returnn;

{intnum,k,b;

num>

k;

b=factors(num,k);

b<

endl;

第3题:

编写函数,函数功能是:

计算n的阶乘,要求输入输出均在主函数中完成。

5样例输出:

120、

intjc(intn)

{inta,b=1;

for(a=1;

a<

=n;

a++)

b=a*b;

returnb;

{intn,s;

n;

s=jc(n);

s;

第4题:

计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。

500样例输出:

4622

intsum(intk)

{intn,c=0,s=0;

for(n=k;

n>

n--)

{if(n%13==0||n%17==0)

{c++;

s+=n;

if(c>

=10)

returns;

{intk,s;

s=sum(k);

s<

第5题:

根据下列公式求π的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。

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<

第6题:

编写程序求?

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

求某个数的阶乘。

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

注意:

0!

=1。

3

10

intjc(inta)

{ints=1,i;

if(a==0)

else

{for(i=1;

i<

=a;

s=s*i;

{intn,k,s;

doublesum=0;

for(k=0;

k<

{s=jc(k);

sum+=s;

sum<

第7题:

求数列

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

50

50.4167、

floatsum(floatq)

{floats=0,a,n;

for(n=1;

=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样例输出:

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样例输入:

-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

{doublef,a,b,i,c=1,d;

b=pow(x,2*n-1);

=(2*n-1);

c=c*i;

f=a*b*d;

returnf;

{doublex,s=0,i,p;

s=s+p;

第18题:

编写程序求Fibonacci数列的前n项阶乘之和,即

intjc(intx)

{inta=1,k;

=x;

a*=k;

{intn,i,a,b,s,j,k;

a=1;

b=1;

s=2;

for(i=3;

{j=a+b;

k=jc(j);

s+=k;

a=b;

b=j;

6

40450

第19题:

其中分母为n以内(包括n)的素数。

1.66165

floatan(intn)

floata,b=0,c,d;

inti;

if(n%i==0)

a++;

if(a==1)

d=1.0/n;

elsed=0;

returnd;

floats=0,n,a;

a=an(i);

第20题:

编写程序求m和n之间(包括m和n,m<

=n)所有素数的平方根之和。

判断某一个数是否为素数。

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

100999?

3157.48

intpd(intn)

{inti,m=0,flag=0;

m++;

if(m==2)

return(flag);

{doublem,n,s=0,b,k;

m>

for(k=m;

{b=pd(k);

if(b)

s=s+sqrt(k);

第21题:

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

求整数num从左边开始的第k位数字的值,如果num位数不足k位则返回0。

46473样例输出:

4样例输入:

235237样例输出:

intdigit(intx,intk)

{intn,s,a,b;

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

if(n<

k)

s=0;

{a=x/int(pow(10,n-k));

b=a%10;

{intnum,k,t;

t=digit(num,k);

t<

编写函数,将字符串中的大写字母变成对应的小写字母,小写字母变成对应的大写字母,其它字符不变。

在主函数中调用该函数,完成任意字符串的转换,并输出结果。

输入字符串(允许包含空格),输出处理后的结果。

HowAreYou?

?

hOWaREyOU?

string.h>

voidexc(chara[],intl)

for(i=0;

l;

{if(a[i]>

A'

a[i]<

Z'

a[i]=a[i]+32;

elseif(a[i]>

a'

z'

a[i]=a[i]-32;

a[i]=a[i];

}}

{chara[50];

intl;

gets(a);

l=strlen(a);

exc(a,l);

puts(a);

编写函数,形成n阶杨辉三角形。

在主函数中调用该函数,形成杨辉三角形,并输出结果。

输入阶数n,输出处理后的结果。

1

11

121

1331

14641

voidyh(inta[][50],intl)

{inti,j,k;

{a[k][0]=1;

a[k][k]=1;

for(i=2;

{for(j=1;

j<

i;

j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

{inta[50][50],n,i,j;

yh(a,n);

for(j=0;

{for(i=0;

=j;

a[j][i]<

编写函数,求一个字符串的长度。

在主函数中调用该函数,输出结果。

输入字符串(允许包含空格),输出字符串的长度。

12

intlen(chara[])

{intl;

returnl;

l=len(a);

l<

编写函数,将字符数组s2中的前n个字符复制到字符数组s1中,不允许使用strcpy函数。

在主函数中调用该函数,完成任意字符串的复制,并输出结果。

输入分2行,第一行为字符串(不包含空格),第二行为n的值,输出处理后的结果。

Hello,world!

8

Hello,wo

voidcp(chara[],charb[],intn)

b[i]=a[i];

b[n]='

\0'

{chara[50],b[50];

intn;

cp(a,b,n);

统计整数n的各位上出现数字1、2、3的次数。

123114350

312

string>

voidcs(chara[],intb[],intl)

b[0]=0;

b[1]=0;

b[2]=0;

{if(a[i]=='

1'

b[0]++;

elseif(a[i]=='

2'

b[1]++;

3'

b[2]++;

elsecontinue;

intb[50],l;

cs(a,b,l);

b[0]<

b[1]<

b[2]<

编写程序完成进制转换,要求使用函数,函数功能是:

十进制转换为二进制,输入输出均在主函数中完成。

125

1111101

intzh(inta[],intx)

{inti=-1;

while(x!

=0)

{i++;

a[i]=x%2;

x=x/2;

returni;

{inta[32],m,n,k;

m;

n=zh(a,m);

for(k=n;

k>

=0;

k--)

{cout<

a[k];

编写两个函数,将n个正整数中的素数按升序排序。

函数功能分别是:

判断一个数是否为素数,以及对数组进行排序。

输入分2行:

第一行为n的值,第二行为n个整数。

9987654321

2357

intorder(inta[],intb[],intl)

{inti,m,j,k=0,q,w;

{m=0;

for(j=1;

=a[i];

if(a[i]%j==0)

{b[k]=a[i];

k++;

k-1;

{q=i;

for(j=i+1;

if(b[q]>

b[j])

q=j;

if(q!

=i)

{w=b[q];

b[q]=b[i],b[i]=w;

returnk;

{inta[40],b[40],n,l,q;

for(l=0;

l++)

a[l];

q=order(a,b,n);

b[l]<

编写函数,功能是交换数组中的最大数和最小数的位置,并计算所有数之和。

例如数组a有5个元素3、

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

当前位置:首页 > 工程科技 > 电子电路

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

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