程序设计基础I-实验2 选择结构

7-1 sdut-C语言实验-求绝对值

从键盘上输入任意一个整数,然后输出它的绝对值!

输入格式:

从键盘上输入任意一个整数。

输出格式:

输出它的绝对值。

输入样例:

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

-4

输出样例:

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

4

 参考代码:

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

7-2 sdut-C语言实验——整除

判断一个数n能否同时被3和5整除。

输入格式:

输入一个正整数n。

输出格式:

如果能够同时被3和5整除,输出Yes,否则输出No。

输入样例:

15

输出样例:

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

Yes

 参考代码:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n%3==0&&n%5==0)
        printf("Yes");
    else
        printf("No");
    return 0;
}

7-3 sdut-C语言实验-时间间隔

从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。
如:3点5分25秒应表示为--03:05:25.假设两个时间在同一天内,时间先后顺序与输入无关。

输入格式:

输入包括两行。
第一行为时间点1。
第二行为时间点2。

输出格式:

以“小时:分钟:秒”的格式输出时间间隔。
格式参看输入输出。

输入样例:

12:01:12
13:09:43


输出样例:

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

01:08:31

 参考代码:

#include<stdio.h>
int main()
{
    int a,b,c,d,e,f,g,h,i,j,k,l,m;
    scanf("%d:%d:%d\n",&a,&b,&c);
    scanf("%d:%d:%d\n",&d,&e,&f);
    g=a*3600+b*60+c;
    h=d*3600+e*60+f;
    if(h>g){
        i=h;
    h=g;
    g=i;}
    j=g-h;
    k=j/3600;
    l=j%3600/60;
    m=j%3600%60;
    printf("%02d:%02d:%02d",k,l,m);
        return 0;
}

7-4 sdut-C语言实验——求两个整数之中较大者

输入两个整数,请编程求其中的较大者。

输入格式:

在一行中输入用空格隔开的两个整数,例如5 9。

输出格式:

输出两个整数之中较大者,输出形式举例:max=9。

输入样例:

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

5 9

输出样例:

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

max=9

参考代码: 

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

 7-5 sdut-C语言实验——找中间数

输入三个整数,找出其中的中间数。(这里的中间数指的是大小,不是位置。)

输入格式:

输入3个整数。

输出格式:

输出中间数。

输入样例:

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

1 2 3

输出样例:

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

2

 参考代码:

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

7-6 sdut-C语言实验——三个数排序

输入三个整数x,y,z,请把这三个数由小到大输出。

输入格式:

输入数据包含3个整数x,y,z,分别用逗号隔开。

输出格式:

输出由小到大排序后的结果,用空格隔开。

输入样例:

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

2,1,3

输出样例:

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

1 2 3

参考代码: 

#include<stdio.h>
int main()
{
    int x,y,z;
    scanf("%d,%d,%d",&x,&y,&z);
    if(x>=y&&y>=z)
        printf("%d %d %d",z,y,x);
    else if(x>=z&&z>=y)
        printf("%d %d %d",y,z,x);
    else if(y>=x&&x>=z)
        printf("%d %d %d",z,x,y);
    else if(y>=z&&z>=x)
        printf("%d %d %d",x,z,y);
    else if(z>=x&&x>=y)
        printf("%d %d %d",y,x,z);
    else if(z>=y&&y>=x)
        printf("%d %d %d",x,y,z);
    return 0;
}

 7-7 sdut-C语言实验-求三个整数的最大值

请编写程序,输入三个整数,求出其中的最大值输出。

输入格式:

在一行上输入三个整数,整数间用逗号分隔。

输出格式:

输出三个数中的最大值。

输入样例:

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

5,7,9

输出样例:

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

max=9

参考代码: 

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

 7-8 sdut-C语言实验- 相加和最大值

输入三个整数a,b,c。并进行两两相加,最后比较相加和的最大值。

输入格式:

输入数据包含三个整数,用空格分开。

输出格式:

输出两两相加后的最大值。

输入样例:

1 2 3

输出样例:

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

5

参考代码: 

#include<stdio.h>
int main()
{
    int a,b,c,d,e,f,m;
    scanf("%d %d %d",&a,&b,&c);
    d=a+b;
    e=a+c;
    f=b+c;
    if(d>=e)
        m=d;
    else
        m=e;
    if(f>=m)
        m=f;
    printf("%d",m);
        return 0;
}

 7-9 sdut-C语言实验-三位数整数的各位数字

本题要求编写程序,输入一个三位数的正整数,并输出它的个位数字、十位数字和百位数字的值。

输入格式:

请输入三位正整数,例如152。

输出格式:

按照以下格式输出:
152 = 个位数字 + 十位数字10 + 百位数字100
如不是三位数,输出“Please input a three digits number.”。

输入样例1:

125

输出样例1:

125 = 5 + 2*10 + 1*100

 参考代码:

#include<stdio.h>
int main()
{
    int a,b,c,d;
    scanf("%d",&a);
    b=a/100;
    c=a%100/10;
    d=a%100%10;
    if(a>=0&&a<=999)
    printf("%d = %d + %d*10 + %d*100",a,d,c,b);
    else
        printf("Please input a three digits number.");
        return 0;
}

7-10 sdut-C语言实验-虎子算电费

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。

虎子决定编写程序计算一算家里电费。你也会编写这个程序吧?

输入格式:

输入在一行中给出虎子家的月用电量(单位:千瓦时)。

输出格式:

在一行中输出虎子家应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

输入样例1:

10

输出样例1:

cost = 5.30

输入样例2:

100

输出样例2:

cost = 55.50

 参考代码:

#include<stdio.h>
int main()
{
    double x,y;
    scanf("%lf",&x);
    if(x>=0&&x<=50){
        y=x*0.53;
    printf("cost = %.2f",y);}
    else if(x>50)
    {y=50*0.53+(x-50)*0.58;
    printf("cost = %.2f",y);}
    else if(x<0)
        printf("Invalid Value!");
}

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

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

公式

输入格式:

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

输出格式:

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

输入样例1:

10

输出样例1:

f(10.0) = 0.1

输入样例2:

0

输出样例2:

f(0.0) = 0.0

 参考代码:

#include<stdio.h>
int main()
{
    double x,result;
    scanf("%lf",&x);
    if(x==0)
        printf("f(0.0) = 0.0");
    else{
        result=1/x;
        printf("f(%.1f) = %.1f",x,result);
    }
    return 0;
}

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

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

f2-11

注:可在头文件中包含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()
{
    double x,y;
    scanf("%lf",&x);
    if(x>=0){
        y=sqrt(x);
        printf("f(%.2f) = %.2f\n",x,y);}
     else{
        y=pow(x+1,2)+2*x+1/x;
        printf("f(%.2f) = %.2f",x,y);}
    return 0;
}

7-13 sdut-C语言实验-时间格式转换

24 小时制的时间格式为 "HH:mm",如 “05:20”,而 12 小时制的时间格式为 "h:mm AM/PM",如 "5:20 AM"。

24 小时制到 12 小时制的对应关系如下:

0 时:12 时 (AM)
1~11 时:1~11 时 (AM)
12 时:12 时 (PM)
13~23 时:1~11 时 (PM)
例如:"00:00" 对应 "12:00 AM","01:20" 对应 "1:20 AM","12:35" 对应 "12:35 PM","13:17" 对应 "1:17 PM","23:59" 对应 "11:59 PM"。

现在给你一个 24 小时制的时间,请你编写程序将其转换为 12 小时制的时间。

输入格式:

输入只有一行,包含一个 24 小时制的时间。

输出格式:

输出一行,表示转换为 12 小时制以后的时间。其中分钟部分若不足两位需要加 0 补足两位。

输入样例:

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

00:05

输出样例:

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

12:05 AM

参考代码: 

#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d:%d",&a,&b);
    if(a==0)
        printf("12:%02d AM",b);
    else if(a>0&&a<=11)
        printf("%02d:%02d AM",a,b);
    else if(a==12)
        printf("12:%02d PM",b);
    else if(a>12)
        printf("%02d:%02d PM",a-12,b);
    return 0;
}

 7-14 sdut-C语言实验——输入数字星期,输出英文(switch语句)

从键盘上输入数字星期,然后输出它的英文。
其对应关系是:

1 Monday

2 Tuesday

3 Wednesday

4 Thursday

5 Friday

6 Saturday

7 Sunday

如果输入1-7之外的数字,则输出:error

输入格式:

从键盘输入数字星期,输入数字在1-7之间。

输出格式:

输出该数字对应的英文星期表示。

输入样例:

3

输出样例:

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

Wednesday

 参考代码:

#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    switch(x)
    {
        case 1:printf("Monday\n");
            break;
        case 2:printf("Tuesday\n");
            break;
        case 3:printf("Wednesday\n");
            break;
        case 4:printf("Thursday\n");
            break;
        case 5:printf("Friday\n");
            break;
        case 6:printf("Saturday\n");
            break;
        case 7:printf("Sunday\n");
            break;
        default:printf("error\n");
            return 0;
    }
}

7-15 sdut-C语言实验——模拟计算器

简单计算器模拟:输入两个整数和一个运算符,输出运算结果。

输入格式:

第一行输入两个整数,用空格分开;
第二行输入一个运算符(+、-、*、/)。
所有运算均为整数运算,保证除数不包含0。

输出格式:

输出对两个数运算后的结果。

输入样例:

30 50
*

输出样例:

1500

参考代码: 

#include<stdio.h>
int main()
{
    int a,b;
    char x;
    scanf("%d %d\n",&a,&b);
    scanf("%c",&x);
    if(x=='+')
        printf("%d",a+b);
    else if(x=='-')
        printf("%d",a-b);
    else if(x=='*')
        printf("%d",a*b);
    else if(x=='/')
        printf("%d",a/b);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值