《C程序设计快速进阶大学教程》第六章编程题

1.输入一个5位整数,将每位的数据进行分离,要求逆序输出对应的数,即分别按照字符型输出个位、十位、百位、千位以及万位上的整数。例如,输入12345,输出5-4-3-2-1。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int R;
    int z[5];
    printf("输入一个5位整数:");
    scanf("%d",&R);
    int i;
    for(i=0;i<5;i++){
        z[i] = R%10;
        R = R/10;
    }
    int j;
    for(j=0;j<5;j++){
        printf("%d   ",z[j]);
    }

    return 0;
}

2.输入三角形的三个边长,计算最大角的正弦值及三角形面积。
注意对输入数据有效性的检测及三角形边长合理性的判断。

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

int main()
{
    float a,b,c;
    printf("请输入三角形三边边长:(请从大到小输入)\n");
    scanf("%f %f %f",&a,&b,&c);
    //判断边长是否合理
    if(a+b>c && a+c>b && b+c>a && a>b-c && b>a-c && c>a-b){
        //计算面积
        float p = (a+b+c)/2;
        float S = sqrt(p*(p-a)*(p-b)*(p-c));
        printf("三角形的面积为:%f \n",S);
        //计算正弦
        float cosA = (b*b+c*c-a*a)/(2*b*c);
        float sinA = sqrt(1-cosA*cosA);
        printf("最大角的正弦为: %f \n",sinA);

    }
    else{
        printf("输入的三边边长无法构成三角形");
    }
    return 0;
}

3.编写程序预测断电后冰箱的温度。断电后经过一段时间,温度保持情况由如下公式决定:

其中,t为断电后经过的时间(小时),T为温度(℃)。经过若干小时候冰箱温度接近室温并保持不变. 假设室温为18℃. 程序提示用户输入时间,它以整数小时和分钟表示,需要将其转换为浮点型的小时数。输出此时的温度值(小数点后2位有效数字)。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    float T;//温度
    float t;//时间
    int h,m;
    printf("请输入时间:(时:分)");
    scanf("%d : %d",&h,&m);

    t = h + (float)m/60;
   // printf("%f",t);
    T = 4*t*t/(t+2) - 20;
    if( T >= 18 ){
        printf("冰箱此时的温度值:18");//室温

    }else{
         printf("冰箱此时的温度值:%.2f \n",T);
    }
    return 0;
}

4.编程计算汽车的平均速度
汽车在高速公路上匀速行驶。沿途都有距离上路地点的里程标志,已知开始和结束的里程,分别输入上路时间和下路时间(时、分、秒),假设汽车上路和下路的时间在同一天。计算汽车在该段形式的平均速度,并以“公里数/每小时”的形式输出平均速度。程序的运行界面如所示。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int startL,endL;//开始里程和结束里程
    int startH,startM,startS;//开始时间
    int endH,endM,endS;//结束时间

    printf("所有输入都为整数\n");
    printf("开始里程?\n");
    scanf("%d",&startL);
    printf("开始时间:(时 分 秒)\n");
    scanf("%d %d %d",&startH,&startM,&startS);
    printf("结束里程?\n");
    scanf("%d",&endL);
    printf("结束时间:(时 分 秒)\n");
    scanf("%d %d %d",&endH,&endM,&endS);

    float startT,endT,T;
    int H,M,S;
    float v;
    startT = startH + (float)startM/60 + (float)startS/60/60;
    endT = endH + (float)endM/60 + (float)endS/60/60;
    T = endT - startT;
    printf("%f %f %f ...\n",startT,endT,T);

    int sT,eT;
    sT = startS + startM*60 + startH*60*60;
    eT = endS + endM*60 + endH*60*60;
    H = (eT-sT)/60/60;
    M = (eT-sT)/60 - H*60;
    S = (eT-sT) - H*3600 -M*60;

    v = (endL - startL)/T;

    printf("一共行驶了 %d 公里。\n",endL-startL);
    printf("一共花了 %d 小时 %d 分 %d 秒 \n",H,M,S);
    printf("速度为:%.4f 公里/小时 \n",v);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/lanzijingshizi/article/details/83113124