c语言入门编程题及答案,C语言入门编程题

发布时间:2022-11-30

本文目录一览:

  1. 求几道简单C语言编程题答案
  2. 10道经典的C语言例题(含参考程序)
  3. C语言入门编程填空题,求详细注释和答案解释。

求几道简单C语言编程题答案

#include <stdio.h>
int main()
{
    int y0, m0, d0, y1, m1, d1, age;
    while (scanf("%d%d%d%d%d%d", &y0, &m0, &d0, &y1, &m1, &d1)) {
        age = y1 - y0 - 1;
        if (m1 > m0 || m1 == m0 && d1 >= d0)
            ++age;
        printf("年龄为:%d周岁!\n", age);
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
    char p[500];
    int i, count;
    while (scanf("%s", p)) {
        count = 0;
        for (i = 0; i != strlen(p); ++i)
            if (p[i] >= 'a' && p[i] <= 'z')
                ++count;
        printf("%d\n", count);
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int n;
    while (scanf("%d", &n)) {
        if ((n & 1) == 0)
            printf("%d是偶数!\n", n);
        else
            printf("%d,是奇数!\n", n);
    }
    return 0;
}

第三题(用EFO结束)?EOF吧?EOF已经是文件尾,怎样输出结果?

10道经典的C语言例题(含参考程序)

  1. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为153=1^3+5^3+3^3。
#include <stdio.h>
#include <math.h>
int main()
{
    int bai_wei, shi_wei, ge_wei, i, sum = 0;
    for (i = 100; i < 1000; i++) {
        bai_wei = i / 100;
        shi_wei = (i % 100) / 10;
        ge_wei = i % 10;
        if (i == pow(bai_wei, 3) + pow(shi_wei, 3) + pow(ge_wei, 3)) {
            printf("%d ", i);
            sum++;
            if (sum % 5 == 0)
                printf("\n");
        }
    }
    printf("\n");
    return 0;
}
  1. 请输入任意两个整数x和y,求其最大公约数和最小公倍数。
#include <stdio.h>
int main()
{
    int x, y, min, max, i;
    printf("请输入任意两个整数:");
    scanf("%d%d", &x, &y);
    min = x < y ? y : x;
    max = x > y ? x : y;
    for (i = min; i > 0; i--)
        if (x % i == 0 && y % i == 0) {
            printf("这两个整数的最大公约数为:%d\n", i);
            break;
        }
    for (i = max; i <= x * y; i++)
        if (i % x == 0 && i % y == 0) {
            printf("这两个整数的最小公倍数为:%d\n", i);
            break;
        }
    return 0;
}
  1. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include <stdio.h>
#include <string.h>
#define N 50
int main()
{
    int sum1 = 0, sum2 = 0, sum3 = 0, sum4, i = 0;
    char str[N];
    printf("请输入一串字符串:");
    scanf("%s", str);
    for (i = 0; i < strlen(str); i++) {
        if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
            sum1++;
        if (str[i] == ' ')
            sum2++;
        if (str[i] >= '0' && str[i] <= '9')
            sum3++;
    }
    sum4 = strlen(str) - sum1 - sum2 - sum3;
    printf("英文字母的个数:%d\n", sum1);
    printf("空格的个数:%d\n", sum2);
    printf("数字的个数:%d\n", sum3);
    printf("其他符号的个数:%d\n", sum4);
    return 0;
}
  1. 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
#include <stdio.h>
#include <math.h>
int main()
{
    int a, n, s = 0, i, x = 0, y = 0;
    printf("请输入整数a的值:");
    scanf("%d", &a);
    printf("请输入相加的个数n:");
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        x = y + 2 * pow(10, i);
        y = x;
        s = s + x;
    }
    printf("s=%d\n", s);
    return 0;
}
  1. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。
#include <stdio.h>
int main()
{
    int sum = 0, i, j;
    printf("在1000以内的完数有:");
    for (i = 2; i <= 1000; i++) {
        for (j = 1; j < i; j++)
            if (i % j == 0)
                sum = sum + j;
        if (sum == i)
            printf("%d ", i);
        sum = 0;
    }
    printf("\n");
    return 0;
}
  1. 输入一个不多于5位的正整数,要求:1、求它是几位数;2、逆序打印出个位数字。
#include <stdio.h>
int pows(int a, int n)
{
    int sum = 1, i;
    for (i = 0; i < n; i++)
        sum = sum * a;
    return sum;
}
int main()
{
    int n, i, k, x;
    printf("n=");
    scanf("%d", &n);
    for (i = 1; i < 6; i++)
        if (n / pows(10, i) == 0) {
            printf("%d\n", i);
            k = i;
            break;
        }
    for (i = 0; i < k; i++) {
        x = n / pows(10, i) % 10;
        printf("%d", x);
    }
    printf("\n");
    return 0;
}
  1. 输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
#include <stdio.h>
int main()
{
    int n, a[5], i = 0;
    printf("请输入一个5位数:");
    scanf("%d", &n);
    while (n != 0) {
        a[i] = n % 10;
        n = n / 10;
        i++;
    }
    if (a[0] == a[4] && a[1] == a[3])
        printf("这个数是回文数\n");
    else
        printf("这个数不是回文数\n");
    return 0;
}
  1. 利用递归算法,将所输入的5个字符,以相反顺序打印出来。
#include <stdio.h>
void digui(char a[], int n)
{
    if (n == 1)
        printf("%c", a[0]);
    else {
        printf("%c", a[n - 1]);
        digui(a, n - 1);
    }
}
int main()
{
    char str[5];
    printf("请输入5个字符:");
    scanf("%s", str);
    digui(str, 5);
    printf("\n");
    return 0;
}
  1. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个序列的前20项之和。
#include <stdio.h>
int main()
{
    int i, a = 1, b = 1;
    float sum = 0.0;
    for (i = 1; i <= 20; i++) {
        sum = sum + (float)(a + i) / b;
        b = a + i;
        a = i;
    }
    printf("sum=%f\n", sum);
    return 0;
}
  1. 利用递归算法求5!。
#include <stdio.h>
int digui(int n)
{
    if (n == 1)
        return 1;
    else
        return n * digui(n - 1);
}
int main()
{
    int n, sum;
    printf("n:");
    scanf("%d", &n);
    sum = digui(n);
    printf("sum=%d\n", sum);
    return 0;
}

C语言入门编程填空题,求详细注释和答案解释。

#include "stdio.h"
int main()
{
    int x, y, z, zhongjian;
    printf("Please input x,y,z:");
    scanf("%d%d%d", &x, &y, &z);
    zhongjian = z;
    z = x;
    x = y;
    y = zhongjian;
    printf("x=%d\ny=%d\nz=%d\n", x, y, z);
    return 0;
}