2022秋 - C实验A类 –实验2 选择结构

7-1 计算分段函数[2]

本题目要求计算下列分段函数f(x)的值:

注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

输入格式:

输入在一行中给出实数x。

输出格式:

在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。

输入样例1:

10

输出样例1:

f(10.00) = 3.16

输入样例2:

-0.5

输出样例2:

f(-0.50) = -2.75

 代码段:

#include <stdio.h>
#include <math.h>

int main()
{
    float y,x;
    scanf("%f",&x);
    if(x>=0)
    {
        y=pow(x,0.5);
        printf("f(%.2f) = %.2f",x,y);
    }
    if(x<0)
    {
        y=pow(x+1,2)+x*2+(1/x);
        printf("f(%.2f) = %.2f",x,y);
    }
}

7-2 三天打鱼两天晒网

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

输入格式:

输入在一行中给出一个不超过1000的正整数N。

输出格式:

在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。

输入样例1:

103

输出样例1:

Fishing in day 103

输入样例2:

34

输出样例2:

Drying in day 34

代码段:

#include <stdio.h>

int main()
{
    int n,count;
    scanf("%d",&n);
    count=n%5;
    if(1<=count&&count<=3)
        printf("Fishing in day %d",n);
    if(count==0||count==4)
        printf("Drying in day %d",n);
}

7-3 计算火车运行时间

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

输入格式:

输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。

输出格式:

在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。

输入样例:

1201 1530

输出样例:

03:29

代码段:

#include <stdio.h>

int main()
{
    int t1,t2,m1,m2,h,m;
    scanf("%d %d",&t1,&t2);
    m1=(t1/100)*60+t1%100;
    m2=(t2/100)*60+t2%100;
    m=m2-m1;
    h=m/60;
    m=m%60;
    printf("%02d:%02d",h,m);
}

7-4 两个数的简单计算器

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为+-*/%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR

输入样例1:

-7 / 2

输出样例1:

-3

输入样例2:

3 & 6

输出样例2:

ERROR

 代码段:

#include <stdio.h>

int main()
{
    int a,b,c;
    char d;
    scanf("%d %c %d",&a,&d,&b);
    if(d=='+')
    {
        c=a+b;
        printf("%d",c);
    }
    else if(d=='-')
    {
        c=a-b;
        printf("%d",c);
    }
    else if(d=='*')
    {
        c=a*b;
        printf("%d",c);
    }
    else if(d=='/')
    {
        c=a/b;
        printf("%d",c);
    }
    else if(d=='%')
    {
        c=a%b;
        printf("%d",c);
    }
    else printf("ERROR");
}

7-5 判断输入的字符是哪种类型

通过键盘输入一个字符,编程判断并输出用户输入的是什么类型的字符。

输入格式:

输入一个字符。

输出格式:

在一行中输出该字符是哪种类型的字符。

  • 若用户输入字符为'0'~'9'之一,输出This is a digit.
  • 若用户输入字符在'A'~'Z'之一,输出This is a capital letter.
  • 若用户输入字符在'a'~'z'之一,输出This is a small letter.
  • 其他情况,输出Other character.

输入样例:

6

输出样例:

This is a digit.

代码段;

#include <stdio.h>

int main()
{
    char c;
    scanf("%c",&c);
    if('0'<=c&&c<='9')
        printf("This is a digit.");
    else if('A'<=c&&c<='Z')
        printf("This is a capital letter.");
    else if('a'<=c&&c<='z')
        printf("This is a small letter.");
    else printf("Other character.");
}

7-6 成绩判断

输入同学的C语言成绩,如果及格输出“C语言成绩合格。”,如果不及格输出“C语言成绩不合格。”

输入格式:

输入一个浮点数。

输出格式:

如果输入数据大于或等于60,输出“C语言成绩合格。”,否则输出“C语言成绩不合格。”

输入样例:

89.5

输出样例:

C语言成绩合格。

代码段:

#include <stdio.h>

int main()
{
    float a;
    scanf("%f",&a);
    if(a>=60)
        printf("C语言成绩合格。");
    else printf("C语言成绩不合格。");
}

7-7 新年倒计时

学院计划在新年举行联欢晚会,要求每个班级都要准备节目。为了让班上同学有紧迫感,班长希望编写一个倒计时程序,输入日期,显示距离下一个新年的天数days。例:输入“2021-11-11”,显示“还有51天到新年”。

输入格式:

输入以"-"分隔的当前日期。

输出格式:

以格式“还有days天到新年”输出还有多少天到新年。无多余空格及其他字符。

输入样例:

2021-11-11

输出样例:

还有51天到新年

 代码段:

#include<stdio.h>

int main() {
    int y,m,d,s=0,i;
    scanf("%d-%d-%d",&y,&m,&d);
    for(i=m;i<=12;i++){
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
            s=s+31;
        }else if(i==4||i==6||i==9||i==11){
            s=s+30;
        }else if(i==2){
            if(y%4==0&&y%100!=0 || y%400==0){
                s=s+29;
            }else{
                s=s+28;
            }
        }
    }
    s=s-d+1;
    printf("还有%d天到新年",s);
    return 0;
}

7-8 计算运费

运输公司对用户计算运费。路程(s)越远,每千米运费就越低。标准如下:

  • s<250km ,没有折扣;
  • 250km≤s<500km, 2%的折扣;
  • 500km≤s<1000km, 5%的折扣;
  • 1000km≤s<2000km,8%的折扣;
  • 2000km≤s<3000km,10%的折扣;
  • 3000km≤s,15%的折扣。

设每千米每吨货物的基本运费为p,货物重为 w,距离为s,折扣为d,则总运费f的计算公式为:
f=p×w×s×(1-d)

输入格式:

在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。

输出格式:

在一行输出计算出来的运费,精确到小数点后2位的值。

输入样例:

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

100 20 300

输出样例:

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

freight=588000.00

代码段:


#include <stdio.h>
void main(){
    int p,w,s;
    double d,f;
    scanf("%d%d%d",&p,&w,&s);
    {
        if(s<250)
            d=0;
        else if(s<500)
            d=0.02;
        else if(s<1000)
            d=0.05;
        else if(s<2000)
            d=0.08;
        else if(s<3000)
            d=0.10;
        else
            d=0.15;
    }
    f=p*w*s*(1-d);
    printf("freight=%.2f",f);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值