C语言练习题源码整理

14比较大小

给出三个整数,判断大小。

输入格式:

给出三个整数a,b,c

输出格式:

在一行中依次从小到大的顺序输出,两数之间有一个空格,无多余空格。

输入样例:

在这里给出一组输入。例如:

2 1 5

输出样例:

在这里给出相应的输出。例如:

1 2 5
#include<stdio.h>
int main()
{
    int a,b,c,x,y,z;
    scanf("%d %d %d",&a,&b,&c);
    x=(a>b)?a:b;
    x=(x>c)?x:c;
    z=(a<b)?a:b;
    z=(z<c)?z:c;
    if((a<b&&a>c)||(c>a&&a>b))
        y=a;
    else if((b<a&&b>c)||(c>b&&b>a))
        y=b;
    else
        y=c;
    printf("%d %d %d",z,y,x);
    return 0;
}

15.比较两个数的大小

给出两个整数a和b,比较两数的大小。

输入格式:

在一行中输入两个整数a和b。

输出格式:

输出两个整数,小的放前面,大的放后面。

输入样例:

在这里给出一组输入。例如:

18 -299

输出样例:

在这里给出相应的输出。例如:

-299 18
#include<stdio.h>
int main()
{
    int a,b,t,h;
    scanf("%d%d",&a,&b);
    if(a>=b)
       {t=a;
        h=b;}
    else
       {t=b;
        h=a;}
    printf("%d %d",h,t);
    return 0;
}

16. 成绩等级

给出一个成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’.(90分以上为'A',80到89分为'B',70到79分为'C',60到69分为'D',60分以下为'E'。

输入格式:

在一行输入一个整数n(n<=100)。

输出格式:

在一行中输出成绩相对应的等级。

输入样例:

在这里给出一组输入。例如:

81

输出样例:

在这里给出相应的输出。例如:

B
#include<stdio.h>
int main()
{
    int n;
    char g;
    scanf("%d",&n);
    switch(n/10)
    {
        case 9:g='A';break;
        case 8:g='B';break;
        case 7:g='C';break;
        case 6:g='D';break;
        default:g='E';
     }
    printf("%c",g);
    return 0;
}

17.打鱼晒网

中国有句俗语叫“三天打鱼两天晒网”。李某在每年的第一天就开始严格奉行“三天打鱼两天晒网”(即前三天打鱼,后两天晒网),现在让你推算一下,某年的某月某日,李某在干什么?
如:输入某年几月几日,输出他是“fish”还是“network”

输入格式:

输入某年某月某日。

输出格式:

输出李某是fish还是network

输入样例1:

在这里给出一组输入。例如:

2021 3 14

输出样例:

在这里给出相应的输出。例如:

fish

输入样例2:

在这里给出一组输入。例如:

2024 9 1

输出样例:

在这里给出相应的输出。例如:

network

#include<stdio.h>
int main()
{
    int y,x,r;
    scanf("%d %d %d",&y,&x,&r);
    switch(x)
    {
        case 1:r=r;break;
        case 2:r=31+r;break;
        case 3:r=31+28+r;break;
        case 4:r=31+28+31+r;break;
        case 5:r=31+28+31+30+r;break;
        case 6:r=31+28+31+30+31+r;break;
        case 7:r=31+28+31+30+31+30+r;break;
        case 8:r=31+28+31+30+31+30+31+r;break;
        case 9:r=31+28+31+30+31+30+31+31+r;break;
        case 10:r=31+28+31+30+31+30+31+30+31+r;break;
        case 11:r=31+28+31+30+31+30+31+30+31+31+r;break;
        case 12:r=31+28+31+30+31+30+31+30+31+31+30+r;break;
    }
    if(((y%400==0)||(y%4==0&&y%10!=0))&&x>=3)
        r++;
    else
        r=r;
    if((y%5==0)||(y%4==0))
        printf("network");
    else
        printf("fish");
    return 0;
}

18.计算奖金

马上年末了,阿里巴巴公司准备给员工发奖金了,参考的依据是今年的公司利润,奖金根据利润提成。
奖金提成格式如下:

利润<=10万时,奖金为利润的10%;
利润>10万且利润<=20万时,奖金为利润的12%;
利润>20万且利润<=40万时,奖金为利润的14%;
利润>40万且利润<=60万时,奖金为利润的16%;
利润>60万且利润<=100万时,奖金为利润的18%;
利润超过100万时,奖金为利润的20%。

请你帮公司的王会计个忙,拿着其他部门转过来的公司利润,明天应该到银行取多少钱作为奖金。
提示:奖金小数点后保留2位。

输入格式:

输入公司利润(单位是万)。

输出格式:

输出奖金总数(单位是元)。

输入样例:

在这里给出一组输入。例如:

65

输出样例:

在这里给出相应的输出。例如:

117000.00元

#include<stdio.h>
int main()
{
    float s,a,l;
    scanf("%f",&s);
    if(s<=10)
         a=s*0.1;
     else if(s>10&&s<=20)
         a=s*0.12;
     else if(s>20&&s<=40)
         a=s*0.14;
     else if(s>40&&s<=60)
         a=s*0.16;
     else if(s>60&&s<=100)
         a=s*0.18;
     else
         a=s*0.2;
     l=(a*10000);
        printf("%.2f元\n",l);
    return 0;
}

19. 求方程解

求一元二次方程ax2+bx+c=0的解。
(考虑b2-4ac三种情况)
提示:如输入abc的值分别为1 2 1,输出x1=x2=-1.00;输入1 5 6,输出x1=-2.00,x2=-3.00;输入3 4 5 ,输出“无实数解!”。

输入格式:

输入三个整数。

输出格式:

输出方程解的情况。

输入样例:

在这里给出一组输入。例如:

1 5 6

输出样例:

在这里给出相应的输出。例如:

x1=-2.00,x2=-3.00

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c;
    double x1,x2;
    scanf("%d %d %d",&a,&b,&c);
    if(b*b-4*a*c>0)
        {x1=((-b)+sqrt(b*b-4*a*c))/(2.0*a);
         x2=((-b)-sqrt(b*b-4*a*c))/(2.0*a);
         printf("x1=%.2lf,x2=%.2lf\n",x1,x2);}
    else if(b*b-4*a*c==0)
        {
        x1=(-b)/(2.0*a);
         x2=x1;
         printf("x1=x2=%.2lf\n",x1);
    }
    else
        printf("无实数解!");
    return 0;
}

20.求鸡兔数量

老张家养了很多鸡和兔,圈养在一个笼子里,清早起来老张站在笼子旁边数了数头的个数,蹲下来又数了数脚的个数,你能帮他快速算出来鸡兔各有多少只吗?如实在算不出来,
就提示“error”

输入格式:

输入头的个数和脚的个数。

输出格式:

鸡兔各有多少只。(如果计算不出来,就输出error)

输入样例:

在这里给出一组输入。例如:

40 100

输出样例:

在这里给出相应的输出。例如:

chicken:30 rabbit:10

#include<stdio.h>
int main()
{
    int a,b,x,y;
    scanf("%d%d",&a,&b);
    x=(4*a-b)/2;
    y=(b-2*a)/2;
    if(x<0||y<0)
        printf("error");
    else
        printf("chicken:%d rabbit:%d",x,y);
    return 0;
}

21.求月供

周某购房时,从银行贷一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
要求:计算得的月份小数点保留一位,对第二位四舍五入。
提示:贷款d,月供p,利率r,则还清月数为(lgp-lg(p-d * r))/lg(1+r)。
注意:p-d * r>0,否则系统提示“error”。

输入格式:

输入定义为浮点型。

输出格式:

输出还清月数。

输入样例:

在这里给出一组输入。例如:

10000 1000 0.04

输出样例:

在这里给出相应的输出。例如:

14

#include<stdio.h>
#include<math.h>
int main()
{
    float d,p,r,y;
    scanf("%f%f%f",&d,&p,&r);
    if (p-d*r>0)
    {
    y=(log10(p)-log10(p-d*r))/log10(1+r);
    y=y+0.05;
      if((int)(y+0.5)!=y)
        y++;
      else
        y=y;
      printf("%.0f",y);
    }
    else
        printf("error");
    return 0;
}

22.设计计算器

张会计嫌用笔算数麻烦,你能帮他设计一个简单的计算器吗,只需要完成简单的整数加减乘除运算即可。
提示:运算符号用+ - * /,当结果中只有整数部分时,只显示整数部分;当结果有小数时小数点后保留1位

输入格式:

输入操作数1 运算符op 操作数2。

输出格式:

输出计算的结果

输入样例:

在这里给出一组输入。例如:

40+100

输出样例:

在这里给出相应的输出。例如:

140

#include<stdio.h>
int main()
{
    float a,b,s;
    char op;
    scanf("%f%c%f",&a,&op,&b);
    switch(op)
    {
        case '+':
            s=a+b;
            break;
        case '-':
            s=a-b;
            break;
        case '*':
            s=a*b;
            break;
        case '/':
            if(b<=1e-7)
              printf("divisorerror");
            else
            s=1.0*a/b;
            break;
    }
    if(floor(s+0.5)==s)
       printf("%.0f",s);
    else
        printf("%.1f",s);
     return 0;
}

23.字母加密

输入一个英文小写字符和正整数k(k<26),将英文字母加密并输出。加密思想:将每个字母c加一个序数k,
即用它后面的第k个字母代替,变换公式:c = c + k。如果字母为z,则后一个字母是a,也就是字母表形成一个圆。

输入格式:

一个字母和一个序数。

输出格式:

输出加密后的字母。

输入样例:

在这里给出一组输入。例如:

b  11

输出样例:

在这里给出相应的输出。例如:

m

#include<stdio.h>
int main()
{
    int k;
    char c;
    scanf("%c %d",&c,&k);
    if(c+k<=122)
        c=c+k;
    else
        c=c+k-26;
    printf("%c",c);
    return 0;
}

24.判断闰年

输入一个年份Year,判断是否为闰年。如果是闰年则输出“yes”;如果不是闰年则输出“no”。

输入格式:

输入一个年份,该年份大于0,小于3000。

输出格式:

显示这个年份是否为闰年。

输入样例:

在这里给出一组输入。例如:

2000

输出样例:

在这里给出相应的输出。例如:

yes

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if(a%400==0||a%4==0&&a%100!=0)
        printf("yes");
    else
        printf("no");
    return 0;
}

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值