C语言练习题

  1. 1998年的美国联邦税收计划是近代最简单的税收方案。它分为4个类别, 每个类别有两个等级。下面是该税收计划的摘要。

    类别税金
    单身17850美元以内按15%计,超出部分按28%计
    户主23900美元以内按15%计,超出部分按28%计
    已婚29750美元以内按15%计,超出部分按28%计
    离异14875美元以内按15%计,超出部分按28%计

    例如一位工资为20000美元的单身纳税人,应缴纳税费0.15*17850+0.28*(20000-17850)美元。编写一个程序,让用户指定缴纳税金的种类和应纳税的收入,然后计算税金和净收入。

    补全下列代码:

    int main() {
        int type;//类型
        float salary;// 薪水
        float tax, lastSalary;//税金、净收入
        printf("--------------请选择种类--------------\n");
        printf("1> 单身   2>户主   3>已婚   4>离异\n");
        scanf("%d",&type);
        printf("请输入薪水:");
        scanf("%f",&salary);
        // 代码补全
        
        return 0;
    }

    解:

    int main() {
        int type;//类型
        float salary;// 薪水
        float tax, lastSalary;//税金、净收入
        printf("--------------请选择种类--------------\n");
        printf("1> 单身   2>户主   3>已婚   4>离异\n");
        scanf("%d",&type);
        printf("请输入薪水:");
        scanf("%f",&salary);
        // 代码补全
        //根据不同类别的人群以及工资计算税金
        switch(type){
            case 1:if(salary>17850){
                tax=17850*0.15+(salary-17850)*0.28;
            }
                else{
                    tax=salary*0.15;
                }
                break;
            case 2:if(salary>23900){
                tax=23900*0.15+(salary-23900)*0.28;
            }
                else{
                    tax=salary*0.15;
                }
                break;
            case 3:if(salary>29750){
                tax=29750*0.15+(salary-29750)*0.28;
            }
                else{
                    tax=salary*0.15;
                }
                break;
            case 4:if(salary>14875){
                tax=14875*0.15+(salary-14875)*0.28;
            }
                else{
                    tax=salary*0.15;
                }
                break;
        }
        //计算净收入
        lastSalary=salary-tax;
        //输出结果
        printf("您的收入为:%.2f,税金为:%.2f,净收入为:%.2f",salary,tax,lastSalary);
        return 0;
    }
    

  2. 根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

    起步里程为3公里,起步费9元; 超起步里程后10公里内,每公里2元; 超过10公里以上的部分加收50%的回空补贴费,即每公里3元; 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

    解:

    #include <stdio.h>
    int main() {
        int a;
            //计算3公里以及超出后10公里内的车费
            int km, cost, t, s;
            printf("请输入行驶公里数:");
            scanf("%d", &km);
            if (km <= 3) {
                cost = 9;
            }
            else if (km > 3 && km <= 10) {
                cost = 9 + (km - 3) * 2;
            }
            //计算超出十公里以上的车费
            else {
                cost = 9 + 7 * 2 + (km - 10) * 3;
            }
            //计算路阻及临时停车的车费
            printf("请输入停车时长:");
            scanf("%d", &t);
            s = t / 5 * 2+cost;
            printf("请支付:%d元",s);
        return 0;
    }  

  3. 使用while循环打印如下图案

    **********
    **********
    **********
    **********
    **********

    解:

    #include <stdio.h>
    int main(){
         int i=1;
        while (i <= 50) {
            printf("*");
            if (i % 10 == 0) {
                printf("\n");
            }
            i++;
        }
        return 0;
    }

  4. 使用while循环编写一个程序,提示用户输入一个整数,然后打印从该数到比该数大10的所有整数(例如:用户输入10,则打印10~20的所有整数)。打印各值之间使用制表符分割。

    解:

    方法二:

    #include <stdio.h>
    int main(){
        printf("请输入一个整数:");
        int a,i;
        scanf("%d",&a);
        while(i>=a&&i<=a+10){
            printf("%d",i);
            i++;
        }
        return 0;
    }

    方法一:

    #include <stdio.h>
    int main() {
        int a,i;
        printf("请输入一个整数:");
        scanf("%d", &a);
        i = a;
        while (i<=a+10) {
            printf("%d\t", i);
            i++;
        }
        return 0;
    }

  5. 使用while循环编写一个程序,提示用户输入天数,然后将其转换成周数和天数。例如:用户输入18,则转换成2周4天,以下面格式显示结果

    ”18天是2周4天“

    用户可以重复输入天数,当用户输入0时,循环结束。

    解:

    #include <stdio.h>
    int main(){
        printf("请输入天数:");
        int x,week,day;
        scanf("%d",&x);
        week=x/7;
        day=x%7;
        printf("%d是%d周%d天",x,week,day);
        return 0;
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值