C语言程序设计函数练习题及参考答案.docx

上传人:lao****ou 文档编号:220611 上传时间:2023-06-05 格式:DOCX 页数:51 大小:98.22KB
下载 相关 举报
C语言程序设计函数练习题及参考答案.docx_第1页
第1页 / 共51页
C语言程序设计函数练习题及参考答案.docx_第2页
第2页 / 共51页
C语言程序设计函数练习题及参考答案.docx_第3页
第3页 / 共51页
C语言程序设计函数练习题及参考答案.docx_第4页
第4页 / 共51页
C语言程序设计函数练习题及参考答案.docx_第5页
第5页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序设计函数练习题及参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计函数练习题及参考答案.docx(51页珍藏版)》请在第一文库网上搜索。

1、C语言程序设计练习题及参考答案1、定义一个函数intfun(inta,intb,intc),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。#inc1udeintfun(inta,intb,intc)if(a+bc&b+ca&a+cb)if(a=b&b=c)return3;e1seif(a=bb=ca=c)return2;e1sereturn1;)e1sereturn0;)voidmain()(inta,b,c,shape;printf(z,n1puta,b,c:);scanf(%d%d%c,&a,&b

2、,&c);printf(zzna=%d,b=%d,c=%dn”,a,b,c);shape=fun(a,b,c);printf(z,Theshape:%dnz,shape);2、编写一个程序,将两个变量的值交换,例如变量a中的值原为3,b中的值原为8,程序运行后a中的值为8,b中的值为3。inc1udevoidfun(int*x,int*y)intt;t=*x;*x=*y;*y=t)voidmain()(inta=3,b=8;printf(z,%d%dn”,a,b);fun(&a,b);printf(,z%d%dn,a,b);3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量C中。例如,

3、输入的数为:551234,输出结果应当是:a=55.O,b=34.0,c=12.Ooftinc1udevoidfun(f1oat*p,f1oat*q,f1oat*s)(f1oatk;if(*p*q)k=*p;*p=*q;*q=k;if(*q*s)k=*s;*s=*p;*p=k;if(*p*q)k=*p;*p=*q;*q=k;voidmain()f1oata,b,c;printf(zzInputabc:);SCanf(%f%f%f”,&a,&b,&c);printfC,a=%4.If,b=%4.If,c=%4.1fnnz,a,b,c);fun(&a,&b,&c);printf(z,a=%4.If

4、,b=%4.If,c=%4.1fnn”,a,b,c);4、编写函数fun(intn),它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。inc1ude#inc1udeintfun(intn)(inti,s=0;for(i=2;ifun(120);fc1ose(wf);5、计算s,并输出1S=I+1+21+2+31+2+3+n1.833333n通过键盘输入,例如:若n的值为11时,则函数值为:#inc1ude#inc1udef1oatfun(intn)(inti;f1oats=1.0,h=1;for(i=2;i=n;i+)h=h+i;s=s+

5、1.0/h;)returns;voidmainO(intn;f1oats;printf(z,P1aseenterN:);SCanf(%d,&n);s=fun(n);printf(,ztheresu1tis:%f/z,s);6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当S中的数为:87653142时,t中的数为:7531inc1udevoidfun(1ongs,1ong*t)intd;1ongs1=1;*t=0;whi1e(s0)(d=s%10;if(d%2!=0)(*t=d*s1+*t;s1=s1*10;)s=10;main()(1on

6、gs,t;printf(,P1aseenters:);scanf(zz%1dz,&s);fun(s,&t);printf(zzTheresu1tis:%1dn/z,t);7、计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值从键盘传入,若k的值为500,则输出4622。inc1udeintfun(intk)intm=0,mc=0,j;whi1e(k=1)A(mc10)(if(k%13=0)II(k%17=0)(m=m+k;me+;k-;)returnm;voidmain()printf(/,%dn,fun(500);8、已知一个数列的前三项分别为O,O,1以后的各项都是其相邻的

7、前三项之和,计算并输出该数列前n项的平方根之和SUm。例如,当n=10时,程序的输出结果应为:23.197745oftinc1udeinc1udedoub1efun(n)(doub1esum,s,si,s2,s;intk;sum=1.0;if(n=2)sum=0.0;s=0.0;si=0.0;s2=1.0;for(k=4;k=n;k+)s=s+si+s2;sum+=sqrt(s);s=si;si=s2;s2=s;returnsum;voidmain()intn;PrintfCInputN=);scanf(%d,&n);printf(z/%f,fun(n);9、编写一个程序,从键盘输入叫输出大于

8、m且紧随m的素数。#inc1udeintfun(intm)inti,k;for(i=m+1;i+)for(k=2;k=i)return(i);voidmain()(intn;printf(,P1aseentern:);scanf(%d,&n);printf(z,%dnz,fun(n);10、判断两个整数m和n是否互质(即是否有公共的因子)(m1,n1)o方法是:用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,贝IJn1和n不互质;否则它们互质。例如,若输入187和85,则应输出NO(表示它们不互质,它们有公因子17)。若输入89和187,则应输出YeS(

9、表示它们互质)。inc1udeintIsThat(intm,intn)(intk,t,mk=1;t=m;if(mn)t=n;for(k=2;k=t;k+)if(m%k=0&n%k=O)mk=0;break;returnmk;voidmain()(intm,n;printf(nP1easeenter2numbers:nz,);scanf(/,%d%dzz,&m,&n);if(IsThat(m,n)printf(z,Yesn,z);e1seprintf(Non);11、将十进制正整数m转换成k进制数(2k9)并输出(m,k从键盘输入)。例如,若输入8和2,则应输出IOOO(即十进制数8转换成二进制

10、表示是1000)。#inc1udevoidTrans(intm,intk)intaa20,i,j;for(i=0;m;i+)(aai=m%k;m/=k;for(j=i-1;j=0;j)printf%d*,aaj);voidmain()(intb,n;printf(,znP1easeenteranumberandabase:,z);scanf(z,%d%d,&n,&b);Trans(n,b);12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零ftinc1udevoidfun(int*zs,int*fs,int*1,f1oataa)(inti;for(i=0;i0)(*zs)+;

11、if(aai0)(*fs)+;if(aai=0)(*1)+;voidmain()(f1oatnum50;inti,czs,cfs,c1;czs=cfs=c1=0;printf(z,P1easeenter50f1oatnumbers:n);for(i=0;i50;i+)scanf(ii%fff,&numi);fun(fcczs,&cfs,&c1,num);Printf(n正数:%d,负数:%d,零:%dn,z,czs,cfs,c1);13、计算并输出方程2+2=i989的所有整数解#inc1udevoidfunOintx,y;for(x=1;x=44;x+)for(y=1;y=44;y+)if(

12、x*x+y*y=1989)printf(iix=%d,y=%dn”,x,y);voidmainO(Printf(“方程屋2+/2=1989的整数解为:n);fun();14、从键盘输入10个整数,求出其中的最大值。#inc1udeintfun(intaa)intm,i;m=aa0;for(i=1;im)m=aai;returnm;voidmain()(intnum10,i;Printf(请从键盘输入10个整数:n);for(i=0;i10;i+)scanf(ii%dff,numi);Printf(n最大的数是:dn,fun(num);12345112341112311112I111115、从键盘输入n值,输出如右图形。(例如n=5时)#inc1udevoidfun(intn)inti,j;for(i=1;i=n;i+)for(j=1;j=i;j+)printf(a%3df9,1);for(j=2;j=n+1-i;j+)printf(%3d”,j);printf(itnff);voidmain()(intn;Printf(n请输入图形的行数:”);scanf(%d,&n);fun(n);16、使用函数的方式,计算如下公式

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

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服