C语言程序设计练习题(含程序及参考问题详解).docx
《C语言程序设计练习题(含程序及参考问题详解).docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题(含程序及参考问题详解).docx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、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 & b+ca & 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;printf (/znlnput a,
2、 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 : %dnzz, shape);2、编写一个程序,将两个变量的值交换,例如变量a中的值int k, t, mk=l;t=m;if (mn) t=n;for (k=2;k=t;k+)if( m%k=0 & n%k=0 ) mk=0; break; return mk;void main()int m, n;printf ( ,znPlease enter 2 numbers:
3、nz/ );scanf (%d %d,&m, &n);if ( IsThat( m, n )printf( Yesn );elseprintf( Non );)n、将十进制正整数m转换成k进制数(2k9)并输出(m, k从键盘输入)。例如,假设输入8和2,那么应输出1000 (即十进制数8转换成二进制表示是1000) o#include void Trans ( int m, int k )(int aa20, i, j;for( i = 0; m; i+ )aai = m%k;m /= k;for ( j=iT; j=0; j) printf(%d, aaj);void main ()(in
4、t b, n;printf ( z/nPlease enter a number and a base:n );scanf (%d %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 (aai 0) (*fs)+;if (aai=0) (*1)+;void main()float num50;int i, czs, cfs, cl;czs=cfs=cl=0;p
5、rintf ( /znPlease enter 50 float numbers : n );for (i=0;i50;i+)scanf (,&numi);fun (&czs, &cfs, &cl, num);printf(/zn 正 数:%d,负 数:%d,零:%dn,czs, cfs, cl);13、计算并输出方程乂2+丫2=1989的所有整数解include 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
6、 (“方程12+-2=1989的整数解为:n);fun();14、从键盘输入10个整数,求出其中的最大值。include int fun (int aa)(int m, i;m=aa0;for (i=l;im) m=aaireturn m;void main()(int num10, i;printf (请从键盘输入10个整数:n );for(i=0;i10;i+)scanf(,&numi);printf ( n 最大的数是:dn,fun(num);1 2 3 4 5112 3 41112 311112111111 2 3 4 5112 3 41112 3111121111115、从键盘输入n
7、值,输出如右图形。(例如n=5 时)#include void fun (int n)int i, j;for (i=l;i=n;i+)(for(j=l;j=i;j+)printf ( “3d”,1);for (j=2;j=n+l-i;j+)printf( 3d”,j);printf ( n”);void main()int n;printf( “n请输入图形的行数:”);scanf (,&n);fun (n);16、使用函数的方式,计算如下公式的值。1 1 1Al=l, A2=,A3=,An=1+A11+A21+A(n-1)例如:假设n二例,那么应输出:0. 617977c ftinclud
8、e float fun ( int n ) (float A=1; int i;for (i=1; i=n; i+)A = 1.0/(1+A);return A ;)void main()printf (/znPlease enter n: );scanf(%d, &n );printf (Z/A%d=%fn/z, n, fun (n);* 17、使用函数的方式,按下面的公式计算并输出数列的2,3,5,L FFF(m - 3) + FFF(m - 1), m 3;例如,假设输入整数9,那么应输出:47O(不用做)* 18、使用函数的方式,按以下递归公式求函数值HO fun (n)= |HO f
9、un (n)= |(n=l)Lfun(n-1) +2 (nl)例如,当给n输入5时,函数值为18;当给n输入3时,函 数值为14。(不用做)19、计算并输出当0x0. 97时以下多项式的值,直到 S(n)-S(n-l) |0. 000001 为止。0. 5 (0. 5-1)0. 5 (0. 5-1) (0. 5-2)0. 5 (0. 5-1) (0. 5-2)(0. 5-n+l)S=l+0. 5x+x2+xA3- +x、2!3!n!例如,在主函数中从键盘给X输入0.21后,输出 为:s=l. 100000。#include #include double fun (double x)int n
10、=l;/*循环计数*/double sn=l;/* 累计数*/double xn=l, xnl=0; /*x 的 n 值,以及 x 的 n-l 值;*/ while (fabs (xn-xnl) =0. 000001) /*绝对值是否合格*/ (xn = xn*x*(0. 5-n+l)/n;/* 表达式分解以后xn= (xnT) *x* (0. 5-n+1)/n*/n+二 1;sn+=xn;/*sn 累力上 xn*/)return sn;void main ()double x, s;printf (Input x: ); scanf(lf, &x);s=fun (x);printf (z/s
11、=%fnz/, s);20、计算并输出s。x 2 x 3x ns = 1 + x + + + +2!3!n!n,x从键盘输入,例如,当n=10, x=0. 3时,函数值为 1.349859oinclude double fun (double x,int n)int i;double f=l.0, h=x;double s=l;s=s+h/f;for (i=2;i=n;i+)f=f*i;h=h*x; s=s+h/f;return s;void main ()printf (fn,fun (0. 3, 10);21、从键盘输入high,计算并输出high以内最大的10个素数 之和。例如,输入hi
12、gh的值为入0,那么输出732。include int fun ( int high )int sum = 0,n=0, j, yes;while (high = 2) & (n 10)(yes = 1;for (j=2; j=high/2; j+ )if (high % j =0 )yes=0; break;)if (yes=l)sum +=high; n+;high一; 原为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,
13、b=8;printf(d %dn”, a, b);fun (&a, b);printf(d %dn, a, b);3、从键盘输入3个数,将最大值放在变量a中,最小值放在 变量c中。例如,输入的数为:551234,输出结果应当是:a=55. 0, b=34. 0, c=12. 0o#include 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;return sum ;void main ()(printf(dn, fun (100);22、请编写函数
14、float fun(int n),它的功能是:返回n (包 括n)以内能被5或9整除的所有自然数的倒数之和。例如, n=20,返回0.583333。注意:要求n的值不大于100。include double fun (int n)(int i;double sum=0. 0;if (n0&n=100)for (i=l;i=n;i+)if(i%5=0|i%9=0)sum+=l. 0/i;)return sum;void main()int n; double s;printf (/znlnput n: );scanf (%d, &n);s=fun (n);printf(nns二%fn,s);)2
15、3、请编一个函数fun (int *a, int n, int *odd, int *even), 函数的功能是分别求出数组中所有奇数之和以及所有偶数 之和。形参n给出数组a中数据的个数;利用指针odd返回奇 数之和,利用指针even返回偶数之和。例如:数组中的值依次为:1, 9, 2, 3, 11, 6;那么利用 指针0dd返回奇数之和24;利用指针even返回偶数之和8。ttinclude define N 20fun ( int *a, int n, int *odd, int *even )int i, sum_odd=0, sum_even=0;for (i=0;in;i+)if (
16、ai%2=0) sum_even+=ai;elsesum_odd+=ai;*odd=sumodd;*even=sum even;void mainint aN = l, 9, 2, 3, 11, 6, i, n=6, odd, even;printf ( The original data is : n );for ( i = 0; i n; i+) printf ( 5d,*(a+i);printf(nn);fun ( a, n, &odd, &even );printf ( The sum of odd numbers: %dn,odd ); printf ( The sum of eve
17、n numbers: %dn,even );24、编写计算三角形面积的程序,注意:将计算面积定义成 函数 float fun (int a, int b, int c) (a, b, c 为三角形的三 条边,返回三角形的面积),在主函数中调用fun#include include float fun (int a, int b, int c)float p;p=(a+b+c)/2;return sqrt (p* (p-a)*(p-b)*(p-c);void main()int a, b, c;printf (“请输入三角形三条边:n);scanf (“炊l%d%d,&a,&b,&d);if(a
18、+bc & b+ca & a+cb)printf (三角形面积为:. 2f,fun (a, b, c); elseprintf (无法构成三角形”);)25、编写程序,求E=1+1/1! +1/2! +l/n!,要求最后 一项的值小于W4 ttinclude double fun(int n) (double m=l. 0;int i=l;double p=l.0;do (m=m+1. 0/p; i+;p=p*i; while(1.0/p=lE-4);return m;void main()int n; double s;printf (Input n: ); scanf(%d, &n);s=
19、fun(n);printf (/zs=%fnz/, s);)26、计算并输出给定数组(长度为9)中每相邻两个元素之 平均值的平方根之和。例如,给定数组中的9个元素依次为12. 0、34. 0、4. 0、23. 0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35. 951014。#include #include double fun(double x9) (int i ;double avg=0. 0, sum=0. 0;for (i=0;i8;i+)(avg=(xi+xi+l)/2; sum+=sqrt(avg);return sum;void main ()double
20、s, a9 = 12. 0, 34. 0, 4. 0, 23. 0, 34. 0, 45. 0, 18. 0, 3. 0, 11. 0 int i;printf (/znThe original data is : n);for (i=0; i9; i+)printf (%6. lf, ai);printf(nn);s=fun(a);printf (/zs=%fnn/z, s);)27、将1到m之内(含m)能被7或H整除的所有整数放在数组 a中。例如,假设输入m的值为50,那么在数组a中的值为:include define M 100void fun ( int m, int *a , int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习题 程序 参考 问题 详解
限制150内