实例1:Hello World程序

当你第一次接触C语言时,编写一个简单的“Hello World”程序是一个很好的开始。这个程序会输出“Hello, World!”到控制台。

#include <stdio.h>

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

实例2:变量和赋值

在C语言中,变量用于存储数据。这里我们创建一个整数变量并给它赋值。

#include <stdio.h>

int main() {
    int number = 5;
    printf("The value of number is: %d\n", number);
    return 0;
}

实例3:数据类型

C语言支持多种数据类型,如整型、浮点型和字符型。

#include <stdio.h>

int main() {
    int num = 10;
    float fnum = 3.14f;
    char ch = 'A';
    printf("Integer: %d\n", num);
    printf("Float: %f\n", fnum);
    printf("Character: %c\n", ch);
    return 0;
}

实例4:运算符

C语言中的运算符包括算术运算符、关系运算符和逻辑运算符。

#include <stdio.h>

int main() {
    int a = 10, b = 5;
    printf("Addition: %d\n", a + b);
    printf("Subtraction: %d\n", a - b);
    printf("Multiplication: %d\n", a * b);
    printf("Division: %d\n", a / b);
    return 0;
}

实例5:条件语句

条件语句用于根据条件执行不同的代码块。

#include <stdio.h>

int main() {
    int x = 10;
    if (x > 5) {
        printf("x is greater than 5\n");
    } else {
        printf("x is not greater than 5\n");
    }
    return 0;
}

实例6:循环语句

循环语句用于重复执行一段代码。

#include <stdio.h>

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

实例7:数组

数组是一种用于存储多个相同类型数据的容器。

#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        printf("Number at index %d: %d\n", i, numbers[i]);
    }
    return 0;
}

实例8:函数

函数是C语言中组织代码的一种方式,可以重复使用。

#include <stdio.h>

void printMessage() {
    printf("Hello from function!\n");
}

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

实例9:指针

指针是存储变量地址的变量。

#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 *)&num);
    printf("Value of ptr: %p\n", (void *)ptr);
    printf("Value pointed by ptr: %d\n", *ptr);
    return 0;
}

实例10:结构体

结构体允许将不同类型的数据组合在一起。

#include <stdio.h>

typedef struct {
    int id;
    float salary;
    char name[50];
} Employee;

int main() {
    Employee emp;
    emp.id = 1;
    emp.salary = 5000.0f;
    strcpy(emp.name, "John Doe");
    printf("Employee ID: %d\n", emp.id);
    printf("Employee Salary: %.2f\n", emp.salary);
    printf("Employee Name: %s\n", emp.name);
    return 0;
}

实例11:枚举

枚举用于定义一组命名的整型常量。

#include <stdio.h>

typedef enum {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
} Days;

int main() {
    Days day = TUESDAY;
    printf("Day: %d\n", day);
    return 0;
}

实例12:位操作

位操作用于直接操作整数的二进制位。

#include <stdio.h>

int main() {
    int a = 5; // 0101
    int b = 3; // 0011
    printf("Bitwise AND: %d\n", a & b); // 0001
    printf("Bitwise OR: %d\n", a | b); // 0111
    printf("Bitwise XOR: %d\n", a ^ b); // 0110
    printf("Bitwise NOT: %d\n", ~a); // 1110
    return 0;
}

实例13:文件操作

C语言中的文件操作用于读取和写入文件。

#include <stdio.h>

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

实例14:动态内存分配

动态内存分配用于在运行时分配内存。

#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 * 2;
    }
    for (int i = 0; i < 5; i++) {
        printf("Value at index %d: %d\n", i, ptr[i]);
    }
    free(ptr);
    return 0;
}

实例15:字符串操作

C语言中的字符串操作可以使用标准库函数进行。

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

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    char str3[50];
    strcpy(str3, str1);
    strcat(str3, str2);
    printf("Concatenated string: %s\n", str3);
    printf("Length of str1: %lu\n", strlen(str1));
    return 0;
}

实例16:结构体数组

结构体数组可以存储多个结构体实例。

#include <stdio.h>

typedef struct {
    int id;
    float salary;
} Employee;

int main() {
    Employee employees[3] = {
        {1, 5000.0f},
        {2, 6000.0f},
        {3, 7000.0f}
    };
    for (int i = 0; i < 3; i++) {
        printf("Employee ID: %d, Salary: %.2f\n", employees[i].id, employees[i].salary);
    }
    return 0;
}

实例17:链表

链表是一种动态数据结构,用于存储一系列元素。

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

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

int main() {
    Node *head = (Node *)malloc(sizeof(Node));
    head->data = 10;
    head->next = (Node *)malloc(sizeof(Node));
    head->next->data = 20;
    head->next->next = NULL;
    printf("Value: %d\n", head->data);
    printf("Next Value: %d\n", head->next->data);
    free(head);
    free(head->next);
    return 0;
}

实例18:递归函数

递归函数是一种函数,它调用自身以解决更小的问题。

#include <stdio.h>

int factorial(int n) {
    if (n <= 1)
        return 1;
    return n * factorial(n - 1);
}

int main() {
    int number = 5;
    printf("Factorial of %d: %d\n", number, factorial(number));
    return 0;
}

实例19:结构体指针

结构体指针允许你通过指针访问结构体成员。

#include <stdio.h>

typedef struct {
    int id;
    float salary;
} Employee;

int main() {
    Employee emp = {1, 5000.0f};
    Employee *ptr = &emp;
    printf("Employee ID: %d, Salary: %.2f\n", ptr->id, ptr->salary);
    printf("Employee ID: %d, Salary: %.2f\n", (*ptr).id, (*ptr).salary);
    return 0;
}

实例20:函数指针

函数指针是一种指向函数的指针,可以用于存储函数地址。

#include <stdio.h>

void printMessage() {
    printf("Hello from function!\n");
}

int main() {
    void (*funcPtr)() = printMessage;
    funcPtr();
    return 0;
}

实例21:动态内存分配和释放

动态内存分配和释放用于在程序运行时管理内存。

#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 * 2;
    }
    for (int i = 0; i < 5; i++) {
        printf("Value at index %d: %d\n", i, ptr[i]);
    }
    free(ptr);
    return 0;
}

实例22:字符串比较

字符串比较可以使用标准库函数进行。

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

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    if (strcmp(str1, str2) == 0) {
        printf("Strings are equal\n");
    } else {
        printf("Strings are not equal\n");
    }
    return 0;
}

实例23:数组的长度

数组的长度可以使用标准库函数计算。

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

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    printf("Length of numbers array: %lu\n", sizeof(numbers) / sizeof(numbers[0]));
    return 0;
}

实例24:字符串拷贝

字符串拷贝可以使用标准库函数进行。

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

int main() {
    char src[] = "Hello";
    char dest[50];
    strcpy(dest, src);
    printf("Copied string: %s\n", dest);
    return 0;
}

实例25:字符串连接

字符串连接可以使用标准库函数进行。

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

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    char str3[50];
    strcpy(str3, str1);
    strcat(str3, str2);
    printf("Concatenated string: %s\n", str3);
    return 0;
}

实例26:字符串查找

字符串查找可以使用标准库函数进行。

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

int main() {
    char str[] = "Hello World";
    char search[] = "World";
    int index = strstr(str, search) - str;
    printf("Found at index: %d\n", index);
    return 0;
}

实例27:字符串替换

字符串替换可以使用标准库函数进行。

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

int main() {
    char str[] = "Hello World";
    char search[] = "World";
    char replace[] = "C Programming";
    char *pos = strstr(str, search);
    if (pos) {
        strcpy(pos, replace);
    }
    printf("Replaced string: %s\n", str);
    return 0;
}

实例28:字符串转换

字符串转换可以将字符串转换为其他数据类型。

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

int main() {
    char str[] = "12345";
    int num = atoi(str);
    printf("Converted number: %d\n", num);
    return 0;
}

实例29:日期和时间

C语言中的日期和时间处理可以使用标准库函数进行。

#include <stdio.h>
#include <time.h>

int main() {
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    printf("Date and time: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
    return 0;
}

实例30:随机数生成

随机数生成可以使用标准库函数进行。

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

int main() {
    srand(time(NULL));
    for (int i = 0; i < 10; i++) {
        printf("Random number: %d\n", rand() % 100);
    }
    return 0;
}

实例31:字符串格式化输出

字符串格式化输出可以使用标准库函数进行。

#include <stdio.h>

int main() {
    int num = 10;
    float fnum = 3.14f;
    char ch = 'A';
    printf("Integer: %d\n", num);
    printf("Float: %.2f\n", fnum);
    printf("Character: %c\n", ch);
    return 0;
}

实例32:字符串分割

字符串分割可以将字符串分割成多个部分。

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

int main() {
    char str[] = "Hello, World!";
    char *token = strtok(str, ",");
    while (token != NULL) {
        printf("Token: %s\n", token);
        token = strtok(NULL, ",");
    }
    return 0;
}

实例33:字符串查找和替换

字符串查找和替换可以使用标准库函数进行。

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

int main() {
    char str[] = "Hello World";
    char search[] = "World";
    char replace[] = "C Programming";
    char *pos = strstr(str, search);
    if (pos) {
        int length = strlen(search);
        memmove(pos + strlen(replace), pos + length, strlen(pos) - length + 1);
        memcpy(pos, replace, strlen(replace));
    }
    printf("Replaced string: %s\n", str);
    return 0;
}

实例34:文件读写

文件读写可以使用标准库函数进行。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }
    char buffer[100];
    while (fgets(buffer, sizeof(buffer), file)) {
        printf("%s", buffer);
    }
    fclose(file);
    return 0;
}

实例35:文件复制

文件复制可以使用标准库函数进行。

#include <stdio.h>

int main() {
    FILE *src = fopen("example.txt", "r");
    FILE *dest = fopen("copy.txt", "w");
    if (src == NULL || dest == NULL) {
        printf("Error opening file\n");
        return 1;
    }
    char buffer[100];
    while (fgets(buffer, sizeof(buffer), src)) {
        fputs(buffer, dest);
    }
    fclose(src);
    fclose(dest);
    return 0;
}

实例36:文件删除

文件删除可以使用标准库函数进行。

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

int main() {
    if (remove("example.txt") != 0) {
        printf("Error deleting file\n");
        return 1;
    }
    printf("File deleted successfully\n");
    return 0;
}

实例37:目录创建和删除

目录创建和删除可以使用标准库函数进行。

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

int main() {
    if (mkdir("new_dir", 0777) != 0) {
        printf("Error creating directory\n");
        return 1;
    }
    if (rmdir("new_dir") != 0) {
        printf("Error deleting directory\n");
        return 1;
    }
    printf("Directory created and deleted successfully\n");
    return 0;
}

实例38:进程创建和终止

进程创建和终止可以使用标准库函数进行。

#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

int main() {
    pid_t pid = fork();
    if (pid == -1) {
        printf("Error creating process\n");
        return 1;
    } else if (pid == 0) {
        // 子进程
        printf("This is the child process\n");
        _exit(0);
    } else {
        // 父进程
        wait(NULL);
        printf("This is the parent process\n");
    }
    return 0;
}

实例39:进程信号处理

进程信号处理可以使用标准库函数进行。

”`c #include #include #include

void signalHandler(int signal) {

printf("Received signal: %d\n", signal);
_exit(0);

}

int main