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

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

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

1、C语言程序设计练习题及参考答案1、定义一个函数int fun(int a, int b, int c),它的功能是:若a, b, c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。include int fun(int a, int b, int c)(if(a+bc & bca & a+cb)(if(a=b & b=c )return 3;else if (a-b b-c a=c)return 2;else return 1;)else return 0;)void main()(int a, b, c, shape;pri

2、ntf (z,Tnput a, b, c: );scanf (%d%d%d”, &a, &b, &c);printf (na=%d, b=%d, c=%dn”, a, b, c);shape =fun(a, b, c);printf (z,nnThe shape : %dz, shape);2、编写一个程序,将两个变量的值交换,例如变量a中的值原为3, b中的值原为8,程序运行后a中的值为8, b中的值为3。include void fun(int *x, int *y)int t;t=*x;*x=*y;*y=t)void main()int a=3,b=8;printf (,%d %dz,

3、a, b);fun (&a, b);printf (,%d %dn”, a, b);3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。例如,输入的数为:551234,输出结果应当是:a=55.0, b=34. 0, c=12. 0oinclude void fun(float *p, float *q, float *s)(float k;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;)void main() float a, b, c;printf (z,Input a b

4、 c: ); scanf (z,%f%f%fz,, &a, &b, &c);printf (zza=%4. If, b=%4. If, c=%4. lfnnzz, a, b, c);fun(&a, &b, &c);printf (z,a=%4. If, b=%4. If, c=%4. lfnz, a, b, c);4、编写函数fun(intn),它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。ttinclude include int fun(int n)(int i,s=0;for (i=2;in;i+)if (n%i=0) s=s+i

5、;return s;)void main()*主函数*(void NONO();printf (z,%dn/z, fun (120);NONO ();)void N0N0()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE *wf;wf = fopen(,a30, out, w);fprintf (wf, ,/%dn, fun (120);fclose(wf);5、计算s,并输出1S = 1 + + + + 1+21+2+3l+2+3+nn通过键盘输入,例如:若n的值为11时,则函数值为:1.833333include include float fun(

6、int n)int i;float s=l. 0, h=l;for (i=2;i=n;i+)(h=h+i; s=s+l.0/h;return s;)void main()(int n;float s;printf (z,nPlase enter N: ); scanf (%d, &n);s=fun(n);printf (,the results);6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531。ttinclude void fun (long s,long *t)int d;long

7、sl=l;*t=0;while (s0)(d=s%10;if(d%2!=0)(*t=d*sl+*t;sl=sl*10;)s/=10;main()(long s, t;printf (z,Please enter s:);scanf (ld,&s);fun (s, &t);printf (,zThe result is:%ldnz,, t);7、计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值从键盘传入,若k的值为500,则输出4622。ttinclude int fun(int k)(int m=0,mc-0,j;while(k=l)&(mc10)(if (k%13 = 0)

8、 (k%17 = 0)(m=m+k;mc+;)k一;)return m;)void main()printf (z,%dn, fun (500);8、已知一个数列的前三项分别为3 0, 1,以后的各项都是其相邻的前三项之和,计算并输出该数列前n项的平方根之和sum。例如,当n=10时,程序的输出结果应为:23. 197745oinclude itinclude double fun(n)(double sum, s, si, s2, s;int k;sum =1.0;if (n = 2) sum = 0. 0;s = 0. 0; si = 0. 0; s2 = 1. 0;for (k = 4;

9、 k = n; k+) s - s si + s2;sum += sqrt (s);s = si; si = s2; s2 = s;)return sum;)void main ()(int n;printf (Input N二);scanf (,%d,z, &n);printf (,%fnz, fun(n);9、编写一个程序,从键盘输入m,输出大于m且紧随m的素数。include int fun(int m)int i, k;for (izzm+l; i+) for (k=2;k=i)return (i);)void main()(int n;printf(z,Plase enter n:)

10、;scanf (, &n);printf (dn,fun (n);10、判断两个整数m和n是否互质(即是否有公共的因子)(ml, nl) o方法是:用2到t (t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则川和n不互质;否则它们互质。例如,若输入如7和85,则应输出No (表示它们不互质,它们有公因子17)。若输入89和187,则应输出Yes (表示它们互质)。include int IsThat( int m, int n )int k, t, mk=l;t=m;if (mn) t=n;for (k=2;k=t;k+)if ( m%k=0 & n%k=0 )

11、 mk=0; break; return mk;)void main()(int m, n;printf ( nPlease enter 2 numbers:z,);scanf (/,%d %d,&m, &n);if ( IsThat( m, n )printf( Yesn);elseprintf ( zzNonz,);1k将十进制正整数m转换成k进制数(2k9)并输出(m, k从键盘输入)。例如,若输入8和2,则应输出1000 (即十进制数8转换成二进制表示是1000)。ttinclude void Trans ( int m, int k )(int aa20, i, j;for( i =

12、 0; m; i+ )(aa i = m%k;m /= k;)for( j=i-l; j=0; j)printf (,/%d, aaj);void main()(int b, n;printf ( zzPlease enter a number and a base:n );scanf (z/%d , &n, &b );Trans ( n, b );12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零include void fun(int *zs, int *fs, int *1, float aa)int i;for (i=0;i0)(*zs)+;if(aai0)(*fs)

13、+;if(aai=0)(*1)+;)void main()(float num50;int i, czs, cfs, cl;czs=cfs=cl=0;printf( nPlease enter 50 float numbers :n );for (i=0;i50;i+)scanf( u%fv ,&numi);fun (&czs, &cfs, &cl, num);printf (n 正数:%d,负数:d ,零:%d nz, czs, cfs, cl);13、计算并输出方程2+*=1989的所有整数解ttinclude void fun()(int x, y;for (x=l;x=44;x+)for (y=l;y=44;y+)if (x*x+y*y=1989)printf ( x=%d , y=%d n” , x, y);)void main()printf ( “方程/2+/2=1989 的整数解为:r );fun

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

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

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

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

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



客服