寒假作业1-20题

寒假作业第1-20题

第一题:输出Hello World!
#include"stdio.h"
void main()
{
printf("Hello World! \n");
}
第二题:编写程序,将华氏度转换为摄氏度。转换公式为:c = 5 * (华氏度f - 32) / 9;其中,c为摄氏度,f为华氏度
#include"stdio.h"
void main()
{
    float f,c;
    printf("please input the Fahrenheit :\n");
    scanf("%f",&f);
    c=(f-32)*5/9.0;
    printf("the Celsius degree  is :%.2f \n",c);
}
第三题:交互输入的四个整数,计算它们的和以及平均值,并输出,要求:平均值只保留2位小数。
#include"stdio.h"
void main()
{
    int arr[4],i;
    int sum=0;
    float ave;
    printf("please input the numbers:\n");
    for(i=0;i<4;i++)scanf("%d",&arr[i]);
       sum+=arr[i];
    }
    ave=sum/4.0;
    printf("the sum is %d\nthe ave is %.2f\n",sum,ave);
}
第四题:从键盘输入一个n,计算1到n的和。
#include"stdio.h"
void main()
{
    int i=1,n;
    int sum=0;
    printf("please input the n:\n");
    scanf("%d",&n);
    while(i<=n)
    {
        sum+=i;
        i++; 
    }
    printf("the result is :%d\n",sum);
    
 } 
第五题:编写1+1/2+1/3+...+1/n计算程序
#include"stdio.h"
void main()
{
    int i=1,n;
    float sum=0;
    printf("please input the n:\n");
    scanf("%d",&n);
    while(i<=n)
    {   
        sum+=1.0/i;
        i++;
    }
    printf("the result is %.5f\n",sum);
 } 
第六题:计算如下分段函数
#include"stdio.h"
void main()
{
    int x,y;
    printf("please input the x:\n");
    scanf("x=%d",&x);
    if(x<1)
          y=x;
    else if(x<10)
          y=2*x-1;
    else
          y=3*x-1;
    printf("y=%d\n",y);
第七题:计算下面的分段函数,
#include"stdio.h"
void main()
{
    int x;
    printf("please input the x:\n");
    scanf("x=%d",&x);
    if(x==0)
           printf("y=0\n");
    else 
        printf("y=%f\n",1.0/x);
}  
第八题:求出1-N中的所有素数
 #include"stdio.h"
void main()
{
    int i,j,n;
    int count=0;
    printf("请输入n:\n");
    scanf("%d",&n);
    for(i=2;i<=n;i++)
      { 
         for(j=2;j<i;j++)
               if(i%j==0)
                      break; 
         if(j==i)
            {
                  printf("%d\t",i);
                  count++;
            }
      }
     printf("\n1~%d之间有%d个素数!!!\n",n,count);
 } 
第九题:判断一个数是否为"水仙花数",所谓"水仙花数"是指一个三位数其各位数字的立方和等于该数本身。
#include"stdio.h"
void main()
{
    int i,j,k,n;
    printf("please input the n:\n");
    scanf("%d",&n);
    printf("\n");

    i=n/100;
    j=(n-100*i)/10;
    k=n%10;
    if(i*i*i+j*j*j+k*k*k==n)
            printf("the  %d  is  Narcissistic number!\n",n);
    else 
            printf("the  %d  is  not  Narcissistic number!\n",n);
第十题:输出所有的"水仙花数"。所谓"水仙花数"是指这样的一个三位数:其各位数字的立方和等于该数本身。
#include"stdio.h"
void main()
{
    int i,j,k,n;
    printf("The  Narcissistic number:\n");
    printf("\n");
    for(n=100;n<1000;n++)
    {   
        i=n/100;
        j=(n-100*i)/10;
        k=n%10;
        if(i*i*i+j*j*j+k*k*k==n)
                 printf("%d\t",n);
    }
    printf("\n");    
 }  
第十一题:编写一个程序输出一定范围内所有的完全数,如果一个数等于它的因子之和,则称该数为“完全数”。
#include"stdio.h"
void main()
{
    int m,n;
    int sum,i,j;
    printf("Please enter the range [m,n]:\n");
    scanf("%d%d",&m,&n);
    printf("\n");
    printf("the Perfect number is :\n");
    for(i=m;i<=n;i++)   
    {   
        sum=0;
        for(j=1;j<i;j++)
        {
            if(i%j==0)
                   sum+=j;
        }
        if(i==sum)
           printf("%d\t",i);
    }
 } 
第十二题:孪生素数就是指相差2的素数对。例如:35,57,1113......输入一个正整数n,输出n以内的所有孪生素数。
#include <stdio.h>
#include <math.h>
int main()
{
  int n;  
  int i,j,k;
  int count=0,s;         //s是个标志位,如果是素数,让s=1;如果不是素数,让s=0 。 
  printf("请输入一个正整数N:\n");
  scanf("%d",&n);
  for(i=2;i+2<=n;i++ )
  {
      s = 1;  /* 先假设i是素数 */
      k = sqrt(i);
      for(j=2;j<=k;j++ )
      {
          if(i%j==0)
          {
              s = 0;  /* 不是素数 */
              break;
           }
       }
      if(s)
      {
          k = sqrt( i+2 );
          for(j=2;j<=k;j++)
          {
              if((i+2)%j == 0 )
              {
                  s=0;/*i+2不是素数*/
                  break;
               }   
           }
          if(s)
           {
             count++; /*i+2是素数*/
             printf("第%d个孪生素数[%d,%d]\n",count,i,i+2);
            }
       }
   } 
}    
第十三题:中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
#include <stdio.h>
void main()
{
  int cock,hen,chicken;
  for(cock=0;cock<=20;cock++)
      for(hen=0;hen<=33;hen++)
         {
               chicken=100-cock-hen;
                if(5*cock+3*hen+chicken/3.0==100)
                     printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
             }
}    
第十四题: 求正整数N以内的所有勾股数。
所谓勾股数,是指能够构成直角三角形三条边的三个正整数(a,b,c)。
#include"stdio.h"
void main()
{
int n;
int i,j,k;
int count=0;
while(scanf("%d",&n))
{
for(i=1;i<=n;++i)
   for(j=i+1;j<=n;++j)
        for(k=j+1;k<=n;++k)
            if(i*i+j*j==k*k)
                {
                    printf("[%d,%d,%d],  ",i,j,k);
                    count++;
                }
printf("total number: %d\n",count);
}
}
第十五题:两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
#include"stdio.h"
void main()
{
    int a,i,b,n;
    printf("There are following friendly-numbers pair smaller than 3000:\n");
    for(a=1;a<=3000;a++)
    {
        for(b=0,i=1;i<=a/2;i++) //a的各因子和放在b中; 
            if(!(a%i))
                b+=i;
        for(n=0,i=1;i<=b/2;i++)  //b的各因子和放在n中; 
            if(!(b%i))
                n+=i;
        if(n==a&&a<b)            //根据条件,如果n=a, a<b(去掉重复的和自己与自己的) 
             printf("[%4d,%4d]   ",a,b);
    }
 } 
第十六题:选出三个数中最小数的算法流程图如下图所示:
#include"stdio.h"
void main()
{
    int a,b,c,min;
    printf("please input the a,b and c:\n");
    scanf("%d%d%d",&a,&b,&c);
    if(a<b)
    {
        if(a<c)
            min=a;
        else
            min=c;
    }
    else
    {
        if(b<c)
           min=b;
        else
           min=c;
    }
    printf("the min is %d\n",min);
 }  
第十七题:计算个人所得税,假设个人所得税为:税率*(工资-1600)。请编写程序计算应缴的所得税,其中税率定义为:

(1)当工资不超过1600时,税率为0;

(2)当工资在区间(1600,2500]时,税率为5%;

(3)当工资在区间(2500,3500]时,税率为10%;

(4)当工资在区间(3500,4500]时,税率为15%;

(5)当工资超过4500时,税率为20%#include"stdio.h"
void main()
{   
   float tax,salary;
   printf("please input the salary:\n");
   scanf("%f",&salary);
   if(salary>=4500)
        tax=0.2*(salary-1600);
   else if(salary>3500)
        tax=0.15*(salary-1600);
   else if(salary>2500)
        tax=0.10*(salary-1600);
   else if(salary>1600)
        tax=0.05*(salary-1600);
   else
        tax=0;
    printf("the tax is :%.2f\n",tax);
}  
第十八题:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;

利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可以提成7.5%20万到40万之间时,高于20万元的部分,可提成5%40万到60万之间时高于40万元的部分,可提成3%60万到100万之间时,高于60万元的部分,可提成1.5%,

高于100万元时,超过100万元的部分按1%提成,

从键盘输入当月利润I,求应发放奖金总数?
#include<stdio.h>
int main()
{
float I=0,money01, money02, money03, money04, money05;
float bonus=0;
money01 = 100000 * 0.1;
money02 = money01 + 100000 * 0.075;
money03 = money02 + 200000 * 0.05;
money04 = money03 + 200000 * 0.03;
money05 = money04 + 400000 * 0.01;
printf("请输入本月利润I:");
scanf("%f", &I);
if (I<=100000)
       bonus = I*0.1;
else if (I <= 200000)
       bonus = money01 + (I - 100000)*0.075;
else if (I <= 400000)
       bonus = money02 + (I - 200000)*0.05;
else if (I <= 600000)
       bonus = money03 + (I - 400000)*0.03;
else if (I <= 1000000)
       bonus = money04 + (I - 600000)*0.015;
else
       bonus = money05+(I-1000000)*0.01;
printf("本月的奖金为%.2f",bonus);
}
第十九题:输入三角形的3条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。在一个三角形中,任意两边之和大于第三边。(其中,P =(a+b+c)/2#include"stdio.h"
#include"math.h"
void main()
{
    int a,b,c;
    float p,s,l;
    printf("please input a,b,c:\n");
    scanf("%d%d%d",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a) 
    {
        l=a+b+c;
        p=l/2.0;
        s=sqrt(p*(p-a)*(p-b)*(p-c));
        printf("l=%.2f\ns=%.2f\n",l,s);
    }
    else
        printf("These sides do not correspond to a valid triangle!!\n");
 } 
第二十题:输出如下杨辉三角形的前七行。

1   

1    1

1    2    1

1    3    3    1

1    4    6    4     1

1    5    10   10    5    1
#include "stdio.h"
void main()
 {
     int arr[7][7];
     int i,j;
    //初始化 
     for(i=0;i<7;i++)
        arr[i][0]=1;
     for(i=0;i<7;i++)
        arr[i][i]=1;
     for(i=2;i<7;i++)
         for(j=1;j<=i;j++)
            arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
     //输出: 
    printf("the result is :\n");
    for(i=0;i<7;i++)
       {
        for(j=0;j<=i;j++)
             printf("%5d",arr[i][j]);
         printf("\n");   
      } 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值