C语言课后练习

答案在最后面:

实验一、编写一个程序,计算N升纯净水所包含的分子个数,结果用科学计数法表示。

实验二、编写一个程序,将用户输入的天数转化为等价的星期数和剩余的天数。

例如:

实验三、编写一个程序,用户输入华氏温度F,程序输出摄氏温度C,结果保留2位小数。

提示:

华氏温度F转化为摄氏温度C的公式为: C = 5×(F - 32)÷ 9

实验四、不使用编译器算出printf的结果。

实验五、编写一个程序,计算 1+2+3+4+…+n 的值。

六、答案:

一、代码示例:

#include <stdio.h>

int main() {
    // 定义常量
    const double AVOGADRO_NUMBER = 6.022e23; // 阿伏伽德罗常数
    const double MOLECULAR_WEIGHT_WATER = 18.0; // 水的摩尔质量(g/mol)
    const double WATER_DENSITY = 1000.0; // 水的密度(g/L)

    // 用户输入:水的体积(L)
    int i;
    double volume_liters;
    printf("请输入水的体积 (升): ");
    while (i!=1)
    {
        i=scanf("%lf", &volume_liters);
        if(i!=1)
        {
            printf("输入错误,请重新输入:\n");
        }
        while (getchar() != '\n');
        
    }
    // 计算水的质量(g)
    double mass_grams = volume_liters * WATER_DENSITY;

    // 计算摩尔数
    double moles = mass_grams / MOLECULAR_WEIGHT_WATER;

    // 计算分子数
    double molecules = moles * AVOGADRO_NUMBER;

    // 输出结果
    printf("在 %.0f 升水中,含有 %.2e 个水分子。\n", volume_liters, molecules);

    return 0;
}

二、代码示例

#include <stdio.h>

int main() {
    int days, weeks, remaining_days,i;
    printf("请输入天数: ");
    // 提示用户输入天数
    while (i!=1)
    {
        i=scanf("%d", &days);
        if(i!=1)
        {
            printf("请输入一个整数!\n");
        }
        while (getchar()!='\n');   
    }
    // 计算星期数和剩余天数
    weeks = days / 7; // 完整的星期数
    remaining_days = days % 7; // 剩余的天数

    // 输出结果
    printf("%d 天相当于 %d 星期和 %d 天。\n", days, weeks, remaining_days);

    return 0;
}

三、代码示例

#include <stdio.h>

int main() {
    float f, c;
    int i=0;
    // 提示用户输入华氏温度
    printf("请输入华氏温度: ");
    while (i!=1)
    {
        i=scanf("%f", &f);
        if(i!=1)
        {
            printf("请输入正确的华氏温度:\n ");
        }
        while (getchar()!='\n');

    }
    // 华氏转摄氏公式
    c= 5 * (f - 32) / 9;

    // 输出转换后的摄氏温度,保留两位小数
    printf("摄氏温度为: %.1f\n", c);

    return 0;
}

四、解决步骤:

五、代码示例

#include <stdio.h>

int main(int argc, char const *argv[])
{   
    int num=0;
    unsigned long long int sum=0;
    int n=0;
    int i=0;
    printf("请输入一个正整数:\n");
    while (num!=1)
    {          
        num=scanf("%d", &n);
        if(num!=1)
        {
            printf("请输入一个正整数:\n");
        }
        while (getchar()!='\n');
       
    }
    
    while (i<=n)
    {   
        sum=sum+i;
        i++;
        
    }
    printf("1+2+...+%d的值等于%llu\n", n,sum);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值