C语言习题04_选择结构

C语言习题04_选择结构

习题04(01)基础

习题04(02)百分制成绩转换为等级

题目描述
给出一个百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 为'B',
70~79 为'C',60~69 为'D',60 分以下为'E'。其他情况请输出“Input Error”。
输入描述
一个整数:输入百分制成绩
输出描述
输出该成绩对应的等级
输入样例
//以下为多组测试数据
70
100
85
66
45
102
输出样例
//以下为多组数据对应的结果
Level C
Level A
Level B
Level D
Level E
Input Error
#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    if ((a <= 100) && (a >= 0))
    {
        if (a >= 90)
        {
            printf("Level A\n");
        }
        else if (a >= 80)
        {
            printf("Level B\n");
        }
        else if (a >= 70)
        {
            printf("Level C\n");
        }
        else if (a >= 60)
        {
            printf("Level D\n");
        }
        else
        {
            printf("Level E\n");
        }
    }
    else
    {
        printf("Input Error\n");
    }
    return 0;
}

习题04(03)求点的建筑高度

题目描述
有 4 个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为 1。这 4 个塔的
高度为 10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。
图示见教材 P109,题 12
输入描述
一个点的坐标:输入坐标值(x,y)
输出描述
输出该点的高度
输入样例
以下为两组测试数据
2.0,2.0
0.0,0.0
输出样例
height is 10
height is 0
#include <stdio.h>
#include <math.h>
int main()
{
    int h;
    double x, y;
    scanf("%lf,%lf", &x, &y);
    if ((pow(x - 2, 2) + pow(y - 2, 2) <= 1) || (pow(x + 2, 2) + pow(y - 2, 2) <= 1) || (pow(x + 2, 2) + pow(y + 2, 2) <= 1) || (pow(x - 2, 2) + pow(y + 2, 2) <= 1))
    {
        h = 10;
        printf("height is %d\n", h);
    }
    else
    {
        h = 0;
        printf("height is %d\n", h);
    }
    return 0;
}

习题04(04)用嵌套的 if 语句编程

题目描述
用嵌套的 if 语句写程序,求 y 的值,a(a 值为正)和 x,通过键盘输入。
当 x 为+a 或者-a 时,y 为 0;
当-a<x<a 时,y 为 sqrt(a*a-x*x);
当 x>a 或者 x<-a, y 为 x。
输入描述
输入 a(正数)和 x 的值。
输出描述
输出 a、x 和 y 的值。
输入样例
a=5.5,x=12.5
输出样例
a=5.50,x=12.50,y=12.50
#include <stdio.h>
#include <math.h>
int main()
{
    double a, x, y;
    scanf("a=%lf,x=%lf", &a, &x);
    if (x == a || x == -a)
    {
        y = 0;
    }
    else if ((x > -a) && (x < a))
    {
        y = sqrt(a * a - x * x);
    }
    else if (x > a || x < -a)
    {
        y = x;
    }
    printf("a=%.2lf,x=%.2lf,y=%.2lf\n", a, x, y);
    return 0;
}

习题04(05)计算代理费

题目描述
某公司规定代理商代理费按下表计算:
交易金额(元) 代理费
(0,3000) 18+本金的 1.2%
[3000,6000) 36+本金的 0.6%
[6000~10000) 54+本金的 0.3%
编程计算并打印本金在 10000 元以下的任一笔交易金额所应提取的代理费。(1、用 switch
语句完成;2、用 if 语句完成)
输入错误数据时,给出“data error!”的提示。
输入描述
输入交易金额。
输出描述
输出代理费。
输入样例
3500.00
输出样例
the cost is 57.00 RMB

#include <stdio.h>
int main()
{
    double a, b;
    int c = 0;
    scanf("%lf", &a);
    if ((a <= 0) || (a >= 10000))
    {
        printf("data error!\n");
    }
    else
    {
        if (a < 3000)
        {
            c = 1;
        }
        else if (a < 6000)
        {
            c = 2;
        }
        else if (a < 10000)
        {
            c = 3;
        }
    }
    switch (c)
    {
    case 1:
        b = 18 + a * 0.012;
        printf("the cost is %.2lf RMB\n", b);
        break;
    case 2:
        b = 36 + a * 0.006;
        printf("the cost is %.2lf RMB\n", b);
        break;
    case 3:
        b = 54 + a * 0.003;
        printf("the cost is %.2lf RMB\n", b);
        break;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bmNkotc2AECynaY6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值