c语言练习题(三)

来源:互联网 发布:知乎 网页版 编辑:程序博客网 时间:2024/05/01 06:25

练习作业 :

1、  把100~200之间的不能被3整除的数输出;

#include<stdio.h>

void main()

{

 int i;

 for(i=100;i<=200;i++)

 {

  if(i%3 != 0)

  {

   printf("%d\t",i);

  

  }

 }

}

 

 

2、求输入一个N  求N的阶乘;

#include<stdio.h>

void main(){

int i=1,n,sum=1;

 printf("请输入N:");

 scanf("%d",&n);

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

 sum=sum*i;

 

  }

 

 

printf("%d",sum);

 

 

 

}

3、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

#include<stdio.h>

intfib(int n){ 

          if(n==1||n==2){   

                   return 1;

          }else{

                   return fib(n-1)+fib(n-2);

          }

         

 

 

}

voidmain(){

  printf("请输入月数:");

  int n; 

  scanf("%d",&n);

  printf("%d\n",fib(n));

 

 

 

 

 

}

4、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

#include<stdio.h>

#include<math.h>

voidmain(){

 double H=100;

 double sn=100;

 

 int i;

 

 double hn = H / 2; //第一次反弹反弹高度

 for (i = 2;i<=4;i ++){

           sn = sn + hn * 2;

           //第i次落地经过多少米

           hn = hn / 2;//第i次反弹的高度

 }

 

 

 

 printf("%lf\n",sn);

 

 

 

 

}

5、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

 

#include"stdio.h"

main(){

          int sum=1,i;

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

                   sum=(sum+1)*2;

 

 

}       

 

printf("猴子第一天共摘了%d个桃子。\n",sum);

}

 

6、打印出以下的杨辉三角形(要求打印出10行)

1

1   1

1   2   1

1   3    3   1

1   4    6  4   1

1   5    10 10  5   1

 . #include <stdio.h>

#define N11

voidmain() {

          int i,j,a[N][N]={0};

          for(i=1;i<N;i++)    {

                   a[i][1]=1;  

                   a[i][i]=1; 

  }for(i=3;i<N;i++)  

           for(j=2;j<i;j++)

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

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

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

           printf("%6d",a[i][j]);

           printf("\n");  

 }

}

0 0