复试编程训练一

1.输入a,b,c三个值,输出其中的最大者

#include <stdio.h>

int f(int a,int b,int c)
{
    int m;
    if(a>b)
        m=a;
    else
        m=b;
    if(c>m)
        m=c;
    return m;
}
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    printf("%d\n",f(a,b,c));
    return 0;
}

运行结果:

2.求5!

#include <stdio.h>

int main()
{
    int i,t=1;
    for(i=2; i<=5; i++)
        t=t*i;
    printf("5!=%d",t);
    return 0;
}

运行结果:

3.求多项式1-1/2+1/3-1/4+...+1/99-1/100的值

#include <stdio.h>

int main()
{
    int i,sign=1;
    double sum=1.0,term;
    for(i=2; i<=100; i++)
    {
        sign=-sign;
        term=1.0/i;
        sum+=term;
    }
    printf("%lf\n",sum);
    return 0;
}

运行结果:

4.求三角形的面积

#include <stdio.h>
#include <math.h>
int main()
{
    double a,b,c,s,area;
    scanf("%lf %lf %lf",&a,&b,&c);
    s=(a+b+c)/2;
    area=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("a=%.2lf\tb=%.2lf\tc=%.2lf\n",a,b,c);
    printf("area=%.2lf\n",area);
    return 0;
}

运行结果:

5.求a*x²+b*x+c=0方程的根。a,b,c由键盘输入,设b²-4*a*c>0

#include <stdio.h>
#include <math.h>
int main()
{
    double a,b,c,disc,x1,x2,p,q;
    scanf("%lf %lf %lf",&a,&b,&c);
    disc=b*b-4*a*c;
    p=-b/(2.0*a);
    q=sqrt(disc)/(2.0*a);
    x1=p+q;
    x2=p-q;
    printf("x1=%.2lf\nx2=%.2lf\n",x1,x2);
    return 0;
}

运行结果:

6.用π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到发现某一项的绝对值小于10的六次方为止(该项不累加)

#include <stdio.h>
#include <math.h>
int main()
{
    int sign=1;
    double pi=0.0,n=1.0,term=1.0;
    while(fabs(term)>=1e-6)
    {
        pi+=term;
        n=n+2;
        sign=-sign;
        term=sign/n;
    }
    pi=pi*4;
    printf("pi≈%.8lf\n",pi);
    return 0;
}

运行结果:

7.求Fibinacci数列的前40个数。(一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月又生一对,则假设所有的兔子都不死,问每个月的兔子总数是多少?)

#include <stdio.h>

int main()
{
    int fi[20]= {1,1};
    for(int i=2; i<20; i++)
        fi[i]=fi[i-1]+fi[i-2];
    for(int i=0; i<20; i++)
    {
        if(i%5==0)
            printf("\n");
        printf("%12d",fi[i]);
    }
    printf("\n");
    return 0;
}

运行结果:

8.输入一个数,判断是否为素数

#include <stdio.h>
#include <math.h>
int main()
{
    int n,flag=1;
    scanf("%d",&n);
    for(int i=2; i<=sqrt(n); i++)
    {
        if(n%i==0)
        {
            flag=0;
            break;
        }
    }
    if(flag)
        printf("%d is prime!\n",n);
    else
        printf("%d is not prime!\n",n);
    return 0;
}

运行结果:

9.求100~200之间的全部素数

#include <stdio.h>
#include <math.h>
int isPrime(int n)  //判断是否为素数
{
    for(int i=2; i<=sqrt(n); i++)
    {
        if(n%i==0)
            return 0;
    }
    return 1;
}
int main()
{
    for(int i=100; i<=200; i++)
    {
        if(isPrime(i))
            printf("%d\n",i);
    }

    return 0;
}

运行结果:

10.译密码A->E,a->e,即字母都变成其后的4个字母

W->A,X->B,Y->C,Z->D,

非字母保持原状不变

例如:“China”->"Glmre"

#include <stdio.h>

int main()
{
    char c;
    while((c=getchar())!='\n')
    {
        if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
        {
            c=c+4;
            if((c>'Z'&&c<'Z'+4)||c>'z')
                c=c-26;
        }
        printf("%c",c);
    }
    printf("\n");
    return 0;
}

运行结果:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值