C Primer Plus 第6版 第三章 编程练习参考答案

编译环境VS Code+WSL GCC 源码在文末下载

/*第1题*************************/
#include<stdio.h>
int main()
{
    int i = 2147483647;
    unsigned int ui = 0;
    double e = 8.8e38;
    double e2 = 3.0;
    printf("64位操作系统\n");
    printf("int整型 i = %d,+1溢出:%d\n",i,i+1);
    printf("无符号int整型 ui = %d,-1溢出:%d\n",ui,ui-1);
    printf("浮点型 e = %e,乘99999溢出:%f\n",e,e*99999);
    printf("浮点型 e2 =%0.1f,除以0溢出:%f\n",e2,e2/0);

    getchar();
    return 0;
}
/*第2题*************************/
#include<stdio.h>
int main()
{
    char c;
    //int number;
    printf("请输入一个ASCII码值:\n");
    scanf("%d",&c);
    printf("你输入的字符串是:'%c'\n",c);
    getchar();
    return 0;
}
/*第3题*************************/
#include<stdio.h>
int main()
{
    printf("\aStartled by sudden sound, Sally shouted,\n");
    printf("\"By the Great Pumpkin, what was that!\"\n");
    getchar();
    return 0;
}

/*第4题*************************/
#include<stdio.h>
int main()
{
    double f;
    printf("请输入一个浮点数:");
    scanf("%lf",&f);
    printf("这个浮点数用小数点表示成:%f\n",f);
    printf("这个浮点数用指数表示成:%e\n",f);
    printf("这个浮点数用十六进制表示成:%a\n",f);

    getchar();
    return 0;
}

/*第5题*************************/
#include<stdio.h>
int main()
{
    double one_year_s = 3.156e7;
    int user_age;
    printf("请输入你的年龄:\n");
    scanf("%d",&user_age);
    printf("你年龄对应的秒数是:%0.0f秒\n",user_age*one_year_s);
    getchar();
    return 0;
}
/*第6题*************************/
#include<stdio.h>
int main()
{
    long double water_fz_num;//水分子数
    int         water_qt_num;//水的夸脱数
    printf("请输入水的夸脱数:\n");
    scanf("%d",&water_qt_num);
    water_fz_num = water_qt_num * 950 / 3.0e-23;//水分子数 = 水的夸脱数 * 1夸脱的质量 ÷ 一个水分子的质量
    printf("对应的水分子数量是:%Le\n",water_fz_num);

    /******************************************************
    **printf()中ld,lld表示long int;long long int           *
    **Lf,Le分别表示用十进制计数法和指数计数法表示long double  *
    **因此要严格区分'L'大小写                               *
    *******************************************************/
    getchar();
    return 0;
}

/*第7题*************************/
#include<stdio.h>
#define inch2cm 2.54
int main()
{
    double user_height;
    printf("请输入你的身高(单位/英寸):");
    scanf("%lf",&user_height);
    printf("你的身高是:%f(单位/厘米)\n",user_height * inch2cm);
    getchar();
    return 0;
}

/*第8题*************************/
#include<stdio.h>
#define cup2pint 0.5
#define cup2ounce 8.0
#define ounce2big_spoon 2.0
#define big_spoon2tea_spoon 3.0
int main()
{
    double cup,pint,ounce,big_spoon,tea_spoon;
    printf("请输入杯数:");
    scanf("%lf",&cup);
    pint      = cup       * cup2pint;
    ounce     = cup       * cup2ounce;
    big_spoon = ounce     * ounce2big_spoon;
    tea_spoon = big_spoon * big_spoon2tea_spoon;
    printf("%f杯等于:%f品脱或%f盎司或%f大汤勺或%f茶勺\n",cup,pint,ounce,big_spoon,tea_spoon);
    getchar();
    return 0;
}
/*为什么该程序使用浮点类型比整数更好?     **
**因为在杯转换到品脱时使用了浮点,为了后续 **
**计算能保留相应的精度,因此使用了浮点。   */

发表评论

您的电子邮箱地址不会被公开。