白名网络科技公司
当前位置: 首页 > 新闻动态 > 行业资讯

c语言编程题经典100例

发布时间:2026-01-22 06:36:10 丨 浏览次数:635

网站建设品牌

 

C语言作为一门经典的编程语言,广泛应用于系统编程、嵌入式开发、算法实现等领域。掌握C语言编程技能对于程序员来说至关重要。以下是100个经典的C语言编程题,涵盖了基础语法、数组、指针、结构体、文件操作等多个方面。每个题目都附有详细的解答和代码示例,帮助读者深入理解C语言的编程技巧。


1. 打印“Hello, World!”

#include 
int main() {
    printf("Hello, World!\n");
    return 0;
}

这是C语言中最简单的程序,用于验证开发环境是否配置正确。


2. 计算两个整数的和

#include 
int main() {
    int a, b, sum;
    printf("Enter two integers: ");
    scanf("%d %d", &a, &b);
    sum = a + b;
    printf("Sum: %d\n", sum);
    return 0;
}

通过scanf函数获取用户输入,并计算两个整数的和。


3. 判断一个数是奇数还是偶数

#include 
int main() {
    int num;
    printf("Enter an integer: ");
    scanf("%d", &num);
    if (num % 2 == 0)
        printf("%d is even.\n", num);
    else
        printf("%d is odd.\n", num);
    return 0;
}

使用取模运算符%判断奇偶性。


4. 计算阶乘

#include 
int main() {
    int n, i;
    unsigned long long factorial = 1;
    printf("Enter an integer: ");
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
        factorial *= i;
    printf("Factorial of %d = %llu\n", n, factorial);
    return 0;
}

使用循环计算阶乘,注意使用unsigned long long类型以避免溢出。


5. 判断一个数是否为素数

#include 
int main() {
    int n, i, flag = 0;
    printf("Enter a positive integer: ");
    scanf("%d", &n);
    for (i = 2; i <= n / 2; i++) {
        if (n % i == 0) {
            flag = 1;
            break;
        }
    }
    if (n == 1)
        printf("1 is neither prime nor composite.\n");
    else if (flag == 0)
        printf("%d is a prime number.\n", n);
    else
        printf("%d is not a prime number.\n", n);
    return 0;
}

通过循环判断一个数是否能被2到n/2之间的数整除。


6. 斐波那契数列

#include 
int main() {
    int n, i, t1 = 0, t2 = 1, nextTerm;
    printf("Enter the number of terms: ");
    scanf("%d", &n);
    printf("Fibonacci Series: ");
    for (i = 1; i <= n; i++) {
        printf("%d ", t1);
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
    return 0;
}

使用循环生成斐波那契数列。


7. 反转一个整数

#include 
int main() {
    int n, reversed = 0;
    printf("Enter an integer: ");
    scanf("%d", &n);
    while (n != 0) {
        reversed = reversed * 10 + n % 10;
        n /= 10;
    }
    printf("Reversed number: %d\n", reversed);
    return 0;
}

通过取模和除法操作反转整数。


8. 计算数组的平均值

#include 
int main() {
    int n, i;
    float sum = 0, average;
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    int arr[n];
    for (i = 0; i < n; i++) {
        printf("Enter element %d: ", i + 1);
        scanf("%d", &arr[i]);
        sum += arr[i];
    }
    average = sum / n;
    printf("Average = %.2f\n", average);
    return 0;
}

通过循环计算数组元素的平均值。


9. 查找数组中的*值

#include 
int main() {
    int n, i;
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    int arr[n];
    for (i = 0; i < n; i++) {
        printf("Enter element %d: ", i + 1);
        scanf("%d", &arr[i]);
    }
    int max = arr[0];
    for (i = 1; i < n; i++) {
        if (arr[i] > max)
            max = arr[i];
    }
    printf("Maximum value = %d\n", max);
    return 0;
}

通过循环查找数组中的*值。


10. 冒泡排序

#include 
int main() {
    int n, i, j, temp;
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    int arr[n];
    for (i = 0; i < n; i++) {
        printf("Enter element %d: ", i + 1);
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    printf("Sorted array: ");
    for (i = 0; i < n; i++)
        printf("%d ", arr[i]);
    return 0;
}

通过冒泡排序算法对数组进行排序。


11. 指针的基本使用

#include 
int main() {
    int num = 10;
    int *p;
    p = #
    printf("Value of num: %d\n", num);
    printf("Address of num: %p\n", &num);
    printf("Value of p: %p\n", p);
    printf("Value pointed by p: %d\n", *p);
    return 0;
}

演示指针的基本用法。


12. 结构体的使用

#include 
struct Student {
    char name[50];
    int age;
    float marks;
};
int main() {
    struct Student s;
    printf("Enter name: ");
    scanf("%s", s.name);
    printf("Enter age: ");
    scanf("%d", &s.age);
    printf("Enter marks: ");
    scanf("%f", &s.marks);
    printf("Name: %s\nAge: %d\nMarks: %.2f\n", s.name, s.age, s.marks);
    return 0;
}

定义和使用结构体。


13. 文件读写操作

#include 
int main() {
    FILE *fptr;
    fptr = fopen("test.txt", "w");
    if (fptr == NULL) {
        printf("Error opening file!\n");
        return 1;
    }
    fprintf(fptr, "Hello, File!\n");
    fclose(fptr);
    return 0;
}

演示如何将数据写入文件。


14. 递归计算阶乘

#include 
unsigned long long factorial(int n) {
    if (n == 0)
        return 1;
    else
        return n * factorial(n - 1);
}
int main() {
    int n;
    printf("Enter an integer: ");
    scanf("%d", &n);
    printf("Factorial of %d = %llu\n", n, factorial(n));
    return 0;
}

使用递归计算阶乘。


15. 动态内存分配

#include 
#include 
int main() {
    int n, i;
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    int *arr = (int *)malloc(n * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (i = 0; i < n; i++) {
        printf("Enter element %d: ", i + 1);
        scanf("%d", &arr[i]);
    }
    printf("Array elements: ");
    for (i = 0; i < n; i++)
        printf("%d ", arr[i]);
    free(arr);
    return 0;
}

使用malloc动态分配内存。


以上是15个经典的C语言编程题及其解答。通过这些题目,读者可以掌握C语言的基本语法和常用编程技巧。后续的题目将继续深入探讨更复杂的概念和应用。

我的官方站点图标

免费咨询 投诉建议