引言

C语言是一种广泛使用的编程语言,以其高效性和灵活性著称。对于编程初学者来说,通过实际操作和实践来学习C语言是一种非常有效的方法。本文将为你提供224个经典代码案例,帮助你快速掌握C语言的编程技巧。

第一章:基础语法和结构

1.1 变量和数据类型

#include <stdio.h>

int main() {
    int age = 25;
    float height = 1.75;
    char gender = 'M';

    printf("Age: %d\n", age);
    printf("Height: %.2f\n", height);
    printf("Gender: %c\n", gender);

    return 0;
}

1.2 运算符

#include <stdio.h>

int main() {
    int a = 10, b = 5;
    int sum = a + b;
    int diff = a - b;
    int prod = a * b;
    int div = a / b;

    printf("Sum: %d\n", sum);
    printf("Difference: %d\n", diff);
    printf("Product: %d\n", prod);
    printf("Quotient: %d\n", div);

    return 0;
}

1.3 控制结构

1.3.1 条件语句

#include <stdio.h>

int main() {
    int num = 10;
    if (num > 0) {
        printf("Number is positive\n");
    } else if (num < 0) {
        printf("Number is negative\n");
    } else {
        printf("Number is zero\n");
    }

    return 0;
}

1.3.2 循环结构

#include <stdio.h>

int main() {
    int i;
    for (i = 0; i < 5; i++) {
        printf("Loop iteration: %d\n", i);
    }

    return 0;
}

第二章:函数和模块化编程

2.1 定义和调用函数

#include <stdio.h>

void printMessage() {
    printf("Hello, World!\n");
}

int main() {
    printMessage();
    return 0;
}

2.2 参数传递和返回值

#include <stdio.h>

int add(int x, int y) {
    return x + y;
}

int main() {
    int result = add(5, 3);
    printf("The sum is: %d\n", result);
    return 0;
}

第三章:指针和内存管理

3.1 指针的基本使用

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = &num;

    printf("Value of num: %d\n", num);
    printf("Address of num: %p\n", (void *)ptr);
    printf("Value pointed by ptr: %d\n", *ptr);

    return 0;
}

3.2 动态内存分配

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int *)malloc(sizeof(int) * 5);
    if (ptr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    for (int i = 0; i < 5; i++) {
        ptr[i] = i * 10;
    }

    for (int i = 0; i < 5; i++) {
        printf("Value at index %d: %d\n", i, ptr[i]);
    }

    free(ptr);
    return 0;
}

第四章:数组、字符串和结构体

4.1 二维数组

#include <stdio.h>

int main() {
    int arr[3][3];
    int i, j;

    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            arr[i][j] = i * 3 + j;
        }
    }

    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

4.2 字符串处理

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";

    printf("Concatenated String: %s\n", strcat(str1, str2));
    printf("Length of String: %ld\n", strlen(str1));

    return 0;
}

4.3 结构体

#include <stdio.h>

struct Person {
    char name[50];
    int age;
    float salary;
};

int main() {
    struct Person p;
    strcpy(p.name, "John Doe");
    p.age = 30;
    p.salary = 50000.0;

    printf("Name: %s\n", p.name);
    printf("Age: %d\n", p.age);
    printf("Salary: %.2f\n", p.salary);

    return 0;
}

第五章:文件操作和输入输出

5.1 文件读写

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w");
    if (file == NULL) {
        printf("File opening failed\n");
        return 1;
    }

    fprintf(file, "Hello, World!\n");

    fclose(file);

    file = fopen("example.txt", "r");
    if (file == NULL) {
        printf("File opening failed\n");
        return 1;
    }

    char buffer[100];
    while (fgets(buffer, sizeof(buffer), file)) {
        printf("%s", buffer);
    }

    fclose(file);
    return 0;
}

第六章:高级特性

6.1 预处理器指令

#include <stdio.h>

#define PI 3.14159

int main() {
    printf("The value of PI is: %f\n", PI);
    return 0;
}

6.2 链表

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void insertAtBeginning(struct Node **head, int data) {
    struct Node *newNode = (struct Node *)malloc(sizeof(struct Node));
    newNode->data = data;
    newNode->next = *head;
    *head = newNode;
}

void printList(struct Node *node) {
    while (node != NULL) {
        printf("%d ", node->data);
        node = node->next;
    }
    printf("\n");
}

int main() {
    struct Node *head = NULL;
    insertAtBeginning(&head, 3);
    insertAtBeginning(&head, 2);
    insertAtBeginning(&head, 1);

    printList(head);

    return 0;
}

结语

通过以上224个经典代码案例,你将能够快速掌握C语言的编程技巧。这些案例涵盖了C语言的基础语法、函数、指针、数组、字符串、结构体、文件操作以及一些高级特性。通过实践这些代码,你将能够更好地理解C语言的精髓,并在实际的编程工作中运用所学知识。祝你学习愉快!