大一c语言课后题答案
作为大一学生,很多同学在学习C语言的时候会遇到不少难题。为了帮助大家提高C语言的学习效果,老师常常会布置一些课后作业,下面是一些常见的C语言课后题及其解答。
题目一:编写一个程序,出1000以内的质数。
解答:
#include <stdio.h>
#include <math.h>
int main()
{
    int i, j, flag;
    for (i = 2; i <= 1000; i++)
    {
        flag = 1;  //假设i为素数
        for (j = 2; j <= sqrt(i); j++)
        {
            if (i % j == 0) //如果存在因数则不是素数
            {
                flag = 0;
                break;
            }
        }
        if (flag == 1)  //输出素数
        {
            printf("%d ", i);
        }
    }
    return 0;
}
题目二:编写一个程序,输入n,求1到n的阶乘之和。
解答:
#include <stdio.h>
int main()
{
    int i, j, n, sum = 0, fac = 1;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= i; j++) //求i的阶乘
        {
            fac *= j;
        }
        sum += fac; //计算阶乘之和
        fac = 1;    //重置fac为1
    }
    printf("%d", sum);
    return 0;
}
题目三:编写一个程序,输入一个整数,判断它是否为水仙花数。水仙花数是指一个n位数(n≥3),其各个位上数字的n次方之和等于其本身。
解答:
#include <stdio.h>
#include <math.h>
int main()
{
    int num, sum = 0, temp, n = 0;
    scanf("%d", &num);
    temp = num;
    //计算数字的位数
    while (temp != 0)
    {
        n++;
        temp /= 10;
    }
    temp = num;
    //计算n次方之和
    while (temp != 0)
    {
        sum += pow(temp % 10, n);
        temp /= 10;
    }
    //比较结果
    if (sum == num)
    {
        printf("%d是水仙花数", num);
    }
    else
    {
        printf("%d不是水仙花数", num);
    }
    return 0;c++判断素数
}
以上就是三道C语言课后题的解答。希望对C语言学习有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。