C语言作为一种广泛应用的编程语言,在计算机科学领域有着不可替代的地位。它简洁而强大的特性,使得无论是初学者还是资深开发者都对其青睐有加。本文将通过一系列C语言经典例题,从基础到进阶,全方位地展示C语言的魅力与应用。

一、基础数据类型与运算例题

1. 计算两个整数的和

  • 在C语言中,定义两个整数变量并计算它们的和是非常基础的操作。例如:
  • include

    int main {

    int num1 = 5;

    int num2 = 3;

    int sum = num1 + num2;

    printf("两个整数 %d和%d的和是%d

    num1, num2, sum);

    return 0;

  • 这里我们首先包含了标准输入输出头文件 ``,这就像是一个工具包,里面包含了我们要使用的 `printf` 函数等工具。然后在 `main` 函数中,我们定义了两个整数变量 `num1` 和 `num2`,并将它们相加的结果存储在变量 `sum` 中。最后使用 `printf` 函数输出结果。这就好比在一个简单的数学计算中,我们先拿出两个数字,计算它们的和,然后把结果写出来。
  • 2. 交换两个变量的值

  • 不借助第三个变量来交换两个变量的值是一个很有趣的例题。
  • include

    int main {

    int a = 10;

    int b = 20;

    a = a + b;

    b = a

  • b;
  • a = a

  • b;
  • printf("交换后a的值为%d,b的值为%d

    a, b);

    return 0;

  • 这个过程就像是在一个天平上有两个砝码,我们要交换它们的位置。首先把两个砝码的重量加起来放在一边(`a = a + b`),然后从这个和中减去原来的 `b` 的重量,就得到了原来 `a` 的重量放在 `b` 的位置(`b = a
  • b`),最后再从这个和中减去现在 `b` 的重量(也就是原来 `a` 的重量),就得到了原来 `b` 的重量放在 `a` 的位置(`a = a - b`)。
  • 二、控制结构例题

    1. 求1到100的和(使用循环结构)

  • 我们可以使用 `for` 循环来解决这个问题。
  • include

    int main {

    int sum = 0;

    for (int i = 1; i <= 100; i++) {

    sum += i;

    printf("1到100的和为%d

    sum);

    return 0;

  • `for` 循环就像是一个自动计数的机器。它从1开始(`int i = 1`),每次增加1(`i++`),直到达到100(`i <= 100`)。在每次循环中,把当前的数字加到总和 `sum` 中。这就好比我们从1开始,一个一个地把数字加起来,直到加到100。
  • 2. 判断一个数是否为质数(使用条件结构)

  • 质数是除了1和它本身以外不能被其他正整数整除的数。
  • include

    int main {

    int num = 17;

    int isPrime = 1;

    for (int i = 2; i < num; i++) {

    if (num % i == 0) {

    isPrime = 0;

    break;

    if (isPrime) {

    printf("%d是质数

    num);

    } else {

    printf("%d不是质数

    num);

    return 0;

  • 这里我们先假设这个数是质数(`isPrime = 1`),然后用一个 `for` 循环从2开始到这个数减1,去检查是否能整除这个数。如果能整除(`num % i == 0`),就说明不是质数,把 `isPrime` 设为0并跳出循环。最后根据 `isPrime` 的值来判断这个数是否为质数。这就像在一群人中找一个特殊的人,我们从第二个人开始检查,看是否能把这个人分成相等的小组,如果能,那这个人就不是我们要找的特殊的人(质数)。
  • 三、数组与函数例题

    1. 求数组中的最大值

  • 假设我们有一个整数数组,我们可以写一个函数来找到数组中的最大值。
  • include

    int findMax(int arr[], int n) {

    int max = arr[0];

    for (int i = 1; i < n; i++) {

    if (arr[i] > max) {

    max = arr[i];

    return max;

    int main {

    int arr[] = {5, 9, 3, 7, 2};

    int n = sizeof(arr)/sizeof(arr[0]);

    int max = findMax(arr, n);

    printf("数组中的最大值为%d

    max);

    return 0;

  • 这个函数就像是一个专门寻找最大东西的小机器人。它先把数组的第一个元素当作最大的(`max = arr[0]`),然后逐个比较后面的元素,如果有比它大的,就把这个更大的元素当作最大的(`if (arr[i] > max)`)。在 `main` 函数中,我们先计算数组的长度,然后调用这个函数找到最大值并输出。
  • 2. 函数递归计算阶乘

  • 阶乘是一个数乘以它前面所有正整数的积。例如,5的阶乘(5!)等于5×4×3×2×1。
  • include

    int factorial(int n) {

    if (n == 0 || n == 1) {

    return 1;

    } else {

    return n factorial(n

  • 1);
  • int main {

    int num = 5;

    int result = factorial(num);

    printf("%d的阶乘为%d

    num, result);

    return 0;

  • 递归就像是一个镜子迷宫,函数不断地调用自己。在这个例子中,当 `n` 为0或者1时,阶乘为1,这是一个终止条件。当 `n` 大于1时,`n` 的阶乘等于 `n` 乘以 `n
  • 1` 的阶乘。就好像我们要计算5的阶乘,先把它变成5乘以4的阶乘,然后再把4的阶乘变成4乘以3的阶乘,一直这样下去,直到变成1的阶乘。
  • 四、指针例题

    1. 通过指针交换两个变量的值

  • 指针是C语言中一个很强大的概念。
  • include

    void swap(int a, int b) {

    int temp;

    temp = a;

    a = b;

    b = temp;

    int main {

    int num1 = 10;

    int num2 = 20;

    printf("交换前,num1 = %d,num2 = %d

    num1, num2);

    swap(&num1, &num2);

    printf("交换后,num1 = %d,num2 = %d

    num1, num2);

    return 0;

  • 这里我们定义了一个函数 `swap`,它接受两个指向整数的指针。指针就像是一个地址标签,它指向变量在内存中的位置。在函数中,我们通过指针来访问和修改变量的值,从而实现交换两个变量的值。这就好比我们不是直接拿两个东西交换,而是通过它们的地址标签,到它们的存放位置去交换它们。
  • 2. 动态内存分配与指针

  • 在C语言中,我们可以使用 `malloc` 函数来动态分配内存。
  • include

    include

    int main {

    int ptr;

    ptr = (int ) malloc(sizeof(int));

    if (ptr == NULL) {

    printf("内存分配失败

    );

    return 1;

    ptr = 10;

    printf("动态分配内存中存储的值为%d

    ptr);

    free(ptr);

    return 0;

  • `malloc` 函数就像是一个向内存管理员请求空间的操作。它根据我们需要的内存大小(这里是一个整数的大小 `sizeof(int)`)分配一块内存,并返回这块内存的地址。我们把这个地址存储在指针 `ptr` 中。如果分配失败,`ptr` 会是 `NULL`。我们可以向这块内存中存储数据(`ptr = 10`),最后使用 `free` 函数释放这块内存,就像把租来的房子还回去一样。
  • 五、结论

    通过这些C语言经典例题,我们从基础的数据类型和运算,到复杂的指针和动态内存分配,全面地展示了C语言的功能和特性。C语言以其简洁高效的语法,在系统编程、嵌入式开发等众多领域发挥着巨大的作用。无论是想要入门编程的初学者,还是希望深入研究系统底层的开发者,掌握C语言都是一个非常重要的基础。这些例题可以作为学习C语言的一个良好开端,帮助读者逐步理解C语言的精髓,并且在实际的编程项目中灵活运用C语言的知识。

    C语言经典例题:从基础到进阶的代码实践