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

上传人:b****2 文档编号:17733768 上传时间:2023-08-03 格式:DOCX 页数:31 大小:64.96KB
下载 相关 举报
C函数编程20道习题汇总含其详细程序解答.docx_第1页
第1页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第2页
第2页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第3页
第3页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第4页
第4页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第5页
第5页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第6页
第6页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第7页
第7页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第8页
第8页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第9页
第9页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第10页
第10页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第11页
第11页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第12页
第12页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第13页
第13页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第14页
第14页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第15页
第15页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第16页
第16页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第17页
第17页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第18页
第18页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第19页
第19页 / 共31页
C函数编程20道习题汇总含其详细程序解答.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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;

b=factors(num,k);

cout<

return0;

}

 

第3题:

编写函数,函数功能是:

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

样例输入:

5样例输出:

120、

#include<>

intjc(intn)

{inta,b=1;

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

b=a*b;

returnb;}

intmain()

{intn,s;

cin>>n;

s=jc(n);

cout<

return0;

}

第4题:

编写函数,函数功能是:

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

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

样例输入:

500样例输出:

4622

#include<>

intsum(intk)

{intn,c=0,s=0;

for(n=k;n>0;n--)

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

{c++;

s+=n;}

if(c>=10)

break;}

returns;}

intmain()

{intk,s;

cin>>k;

s=sum(k);

cout<

return0;

}

第5题:

编写函数,函数功能是:

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

样例输入:

样例输出:

#include<>

doublepai(doublee)

{doubles,a,k,p;

s=1;

a=1/;

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

样例输出:

#include<>

floatsum(floatq)

{floats=0,a,n;

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

{a=(n+/n;

s+=a;}

returns;}

intmain()

{

floatq,s;

cin>>q;

s=sum(q);

cout<

return0;}

第8题:

求数列的前n项和

 

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

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

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

样例输入:

50

样例输出:

#include<>

floatmyx(intn)

{floata;

inti,s=0;

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

s+=i;

a=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

样例输出:

#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由键盘输入。

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

样例输入:

样例输出:

#include<>

#include<>

floatsn(floatx,floatn)

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

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

{a=a*(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 

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

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

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

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

样例输入:

0样例输出:

1样例输入:

3样例输出:

#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)<

break;}

cout<

return0;}

 

第17题:

利用级数展开式计算sinx 

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

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

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

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

样例输入:

0

样例输出:

0

样例输入:

3

样例输出:

#include<>

#include<>

doublean(doublex,doublen)

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

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

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

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

c=c*i;

d=1/c;

f=a*b*d;

returnf;}

intmain()

{doublex,s=0,i,p;

cin>>x;

for(i=1;;i++)

{p=an(x,i);

s=s+p;

if(fabs(p)<

break;}

cout<

return0;}

 

第18题:

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

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

求某个数的阶乘。

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

注意:

#include<>

#include<>

intjc(intx)

{inta=1,k;

for(k=1;k<=x;k++)

a*=k;

returna;}

intmain()

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

cin>>n;

a=1;

b=1;

s=2;

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

{j=a+b;

k=jc(j);

s+=k;

a=b;b=j;}

cout<

return0;}

样例输入:

6

样例输出:

40450

 

第19题:

求数列

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

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

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

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

样例输入:

50

样例输出:

#include<>

#include<>

floatan(intn)

{

floata,b=0,c,d;

inti;

a=0;

for(i=1;i

if(n%i==0)

a++;

if(a==1)

d=n;

elsed=0;

returnd;

}

intmain()

{

floats=0,n,a;

inti;

cin>>n;

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

{

a=an(i);

s+=a;

}

cout<

return0;

}

第20题:

编写程序求m和n之间(包括m和n,m<=n)所有素数的平方根之和。

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

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

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

样例输入:

100999 

样例输出:

#include<>

#include<>

intpd(intn)

{inti,m=0,flag=0;

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

if(n%i==0)

m++;

if(m==2)

flag=1;

return(flag);}

intmain()

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

cin>>m>>n;

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

{b=pd(k);

if(b)

s=s+sqrt(k);}

cout<

return0;}

第21题:

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

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

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

样例输入:

46473样例输出:

4样例输入:

235237样例输出:

0

#include<>

#include<>

intdigit(intx,intk)

{intn,s,a,b;

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

if(n

s=0;

else

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

b=a%10;}

returnb;}

intmain()

{intnum,k,t;

cin>>num>>k;

t=digit(num,k);

cout<

return0;}

第1题:

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

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

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

样例输入:

HowAreYou?

 

样例输出:

hOWaREyOU?

 

#include

usingnamespacestd;

#include<>

voidexc(chara[],intl)

{inti;

for(i=0;i

{if(a[i]>='A'&&a[i]<='Z')

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

elseif(a[i]>='a'&&a[i]<='z')

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

else

a[i]=a[i];}}

intmain()

{chara[50];

intl;

gets(a);

l=strlen(a);

exc(a,l);

puts(a);

return0;}

 

第2题:

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

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

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

样例输入:

5

样例输出:

1

11

121

1331

14641

#include<>

#include<>

voidyh(inta[][50],intl)

{inti,j,k;

for(k=0;k

{a[k][0]=1;

a[k][k]=1;}

for(i=2;i

{for(j=1;j

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

intmain()

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

cin>>n;

yh(a,n);

for(j=0;j

{for(i=0;i<=j;i++)

cout<

cout<

return0;}

 

第3题:

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

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

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

样例输入:

HowAreYou?

样例输出:

12

#include

usingnamespacestd;

#include<>

intlen(chara[])

{intl;

l=strlen(a);

returnl;}

intmain()

{chara[50];

intl;

gets(a);

l=len(a);

cout<

return0;}

第4题:

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

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

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

样例输入:

Hello,world!

8

样例输出:

Hello,wo

#include<>

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

{inti;

for(i=0;i

b[i]=a[i];

b[n]='\0';}

intmain()

{chara[50],b[50];

intn;

cin>>a>>n;

cp(a,b,n);

cout<

return0;}

第5题:

编写函数,函数功能是:

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

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

样例输入:

0

样例输出:

312

#include

usingnamespacestd;

#include

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

{inti;

b[0]=0;b[1]=0;b[2]=0;

for(i=0;i

{if(a[i]=='1')

b[0]++;

elseif(a[i]=='2')

b[1]++;

elseif(a[i]=='3')

b[2]++;

elsecontinue;}}

intmain()

{chara[50];

intb[50],l;

gets(a);

l=strlen(a);

cs(a,b,l);

cout<

return0;}

第6题:

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

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

样例输入:

125

样例输出:

1111101

#include<>

intzh(inta[],intx)

{inti=-1;

while(x!

=0)

{i++;

a[i]=x%2;

x=x/2;}

returni;}

intmain()

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

cin>>m;

n=zh(a,m);

for(k=n;k>=0;k--)

{cout<

return0;}

第7题:

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

函数功能分别是:

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

输入分2行:

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

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

样例输入:

9987654321

样例输出:

2357

#include<>

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

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

for(i=0;i

{m=0;

for(j=1;j<=a[i];j++)

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

m++;

if(m==2)

{b[k]=a[i];

k++;}}

for(i=0;i

{q=i;

for(j=i+1;j

if(b[q]>b[j])

q=j;

if(q!

=i)

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

returnk;}

intmain()

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

cin>>n;

for(l=0;l

cin>>a[l];

q=order(a,b,n);

for(l=0;l

cout<

return0;}

第8题:

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

例如数组a有5个元素3、4、1、5、2,将最大数5和最小数1的位置交换后得到3、4、5、1、2,总和为15。

程序中用到的主函数为:

#include<>

intfun(

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2