C语言程序设计经典题目大汇总(5)

2019-08-03 12:22

for(j=1;j<=i;j++)t*=j; t=1/t; e+=t; }

printf(\ getch(); }

24.用二分法求方程2x3-4x2+3x=0在(-10,10)附近的根(二分法:先找到a、b,使f(a)、f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],现在假设f(a)<0,f(b>0,a

{

double x,fx,fa,fb,a=-10,b=10,z=0.0001; fa=2*a*a*a-4*a*a+3*a; fb=2*b*b*b-4*b*b+3*b; if(fa*fb<0) {

do

{

x=(a+b)/2;

fx=2*x*x*x-4*x*x+3*x; if(fx<0) {

a=x;

fa=2*a*a*a-4*a*a+3*a; } else {

b=x;

fb=2*b*b*b-4*b*b+3*b; }

}while(fabs(fa-fb)>z);

printf(\ } getch(); }

第六章

1.编写计算x的n次乘方的程序。 #include void main() {float x,y;

int n;

float power(float x,int n); scanf(“%f,%d”,&x,&n); y=power(x,n);

printf(“%8.2f”,y); }

float power(float x,int n) {int i;

float t=1; for(i=1;i<=n;i++) t=t*x; return t;

}

2.编程求组合C的m取n long fac(int k) {long f=1;

int i;

for(i=1;i<=k;i++) f=f*i; return f; }

long comb(int n,int m) {long c;

c=fac(m)/(fac(n)*fac(m-n)); return c; }

main()

{int n,m; long c;

scanf(“%d,%d”,&n,&m); c=comb(n,m);

printf(“%ld”,c);

}

3.输入两个数,输出较大的数。 #include void main() {int a,b,m;

int max(int,int);

scanf(“%d,%d”,&a,&b); m=max(a,b);

printf(“max=%d”,m); }

int max(int x,int y) {int t;

if(x>y)t=x;

else t=y; rerurn t; }

4.设求最大公约数的程序。 #include

int divisor(int a,int b) {int r; do {r=a%b; a=b; b=r;

}while(r!=0); return a; }

void main()

{int a,b,d;

scanf(“%d,%d”,&a,&b); if(a>b)

d=divisor(a,b); else

d=divisor(b,a);

printf(“a=%d,b=%d\\n”,a,b); printf(“d=%d”,d); }

5.用递归计算n!。 long fac(int n) {long f; if(n==0) f=1;

else

f=n*fac(n-1); return f; }

void main() {long y; int n;

scanf(“%d”,&n); y=fac(n);

printf(“%d!=%ld”,n,y); }

6.用递归算法求m与n的最大公约数。 int gcd(int m,int n) {int g;

if(n==0) g=m; else

g=gcd(n,m%n) return(g); }

void main()

{int m,n;

scanf(“%d,%d”,&m,&n); printf(“gcd=%d”,gcd(m,n)); }

7.汉诺塔游戏。

void hanoi(int n,int a,int b,int c) {

if(n==1)

printf(“%d->%d”,a,c); else

{hanoi(n-1,a,c,b);

printf(“%d->%d”,a,c); hanoi(n-1,b,a,c); }

}

main() {int n;

printf(“input n:”); scanf(“%d”,&n); hanoi(n,1,2,3);

}

8.计算s=1^k+2^k+3^k+···+n^k(0=

for(j=1;j

long f(int n,int k) {long sum=0;int i;

for(i=1;i

void main() {int n,k;

printf(“input n k:”); scanf(“%d %d”,&n,&k); printf(“%ld\\n”,f(n,k));

}

9.对于一个自然数n(n<=50),统计具有下列性质的数的个数:自然数n,在n的左边加上一个自然数,但该自然数不能超过原数的一半;机选此规则进行处理,直到不能再上自然数为止,例如6,16,26,126,36,136,一共6个。 int s=0;

void left(int n) {int n1; if(n>0) {s++;

for(n1=1;n1<=n/2;n1++) left(n1); } }

void main() {int n;

scanf(“%d”,&n); left(n);

printf(“s=%d”,s); }

10.写一个函数完成下列任务:输入一个表示正整数的字符串,将字符串转换成为对应的数字。例如,输入三个字符组成的字符串“123”,将它转换为整型数123。 int cton() { char ch;

int n=0,f=0,n1=0;

while((ch=getchar())<=’0’||ch>=’9’) {n1++;

if(n1>=10)

{printf(“data is wrong !”);return 0;} } do

{n=n*10+ch-‘0’;}

while((ch=getchar())>=’0’&&ch<=’9’); return n; }

11.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 main()

{

unsigned int m,n,p,q; for(;;) {

printf(\

if(m<0||n<0){printf(\ p=funp(m,n);


C语言程序设计经典题目大汇总(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:3.3.15项目中间验收、交接管理规定

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: