实例1:变量与数据类型

在C语言中,正确理解和使用变量和数据类型是基础。以下是一个实例,展示了如何声明和使用不同类型的变量。

#include <stdio.h>

int main() {
    int age = 25;
    float salary = 5000.50;
    char grade = 'A';
    printf("Age: %d\n", age);
    printf("Salary: %.2f\n", salary);
    printf("Grade: %c\n", grade);
    return 0;
}

实例2:运算符

C语言中的运算符包括算术运算符、关系运算符和逻辑运算符。以下是一个使用运算符的实例。

#include <stdio.h>

int main() {
    int a = 10, b = 5;
    printf("Sum: %d\n", a + b);
    printf("Difference: %d\n", a - b);
    printf("Product: %d\n", a * b);
    printf("Quotient: %d\n", a / b);
    printf("Modulus: %d\n", a % b);
    return 0;
}

实例3:控制结构

使用ifswitch语句可以控制程序的流程。以下是一个使用if语句的实例。

#include <stdio.h>

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

实例4:循环结构

forwhiledo-while循环是C语言中处理重复任务的关键。以下是一个使用for循环的实例。

#include <stdio.h>

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

实例5:函数

函数是C语言中代码重用的关键。以下是一个简单的函数实例,用于计算两个数的和。

#include <stdio.h>

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

int main() {
    int result = add(10, 5);
    printf("Result: %d\n", result);
    return 0;
}

实例6:指针

指针是C语言中的高级特性,用于处理内存地址。以下是一个使用指针的实例。

#include <stdio.h>

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

实例7:结构体

结构体用于组合不同类型的数据。以下是一个简单的结构体实例,用于表示一个学生的信息。

#include <stdio.h>

typedef struct {
    char name[50];
    int age;
    float gpa;
} Student;

int main() {
    Student s1;
    strcpy(s1.name, "John Doe");
    s1.age = 20;
    s1.gpa = 3.5;
    printf("Name: %s\n", s1.name);
    printf("Age: %d\n", s1.age);
    printf("GPA: %.2f\n", s1.gpa);
    return 0;
}

实例8:数组和字符串

数组是存储相同类型数据的一系列元素。以下是一个使用数组的实例。

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

int main() {
    char str[] = "Hello, World!";
    printf("String: %s\n", str);
    printf("Length of string: %lu\n", strlen(str));
    return 0;
}

实例9:文件操作

C语言提供了丰富的文件操作函数。以下是一个简单的文件读取实例。

#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;
}

实例10:动态内存分配

动态内存分配允许程序在运行时分配内存。以下是一个使用mallocfree的实例。

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

int main() {
    int *ptr = (int *)malloc(5 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed.\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        ptr[i] = i;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", ptr[i]);
    }
    free(ptr);
    return 0;
}

实例11:结构体指针和数组

结构体指针和数组可以用于处理复杂的数据结构。以下是一个实例,展示了如何使用结构体指针和数组。

#include <stdio.h>

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

int main() {
    Person people[] = {
        {"Alice", 25},
        {"Bob", 30},
        {"Charlie", 35}
    };
    Person *ptr = people;
    for (int i = 0; i < 3; i++) {
        printf("Name: %s, Age: %d\n", ptr[i].name, ptr[i].age);
    }
    return 0;
}

实例12:函数指针

函数指针允许将函数作为参数传递。以下是一个使用函数指针的实例。

#include <stdio.h>

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

int subtract(int x, int y) {
    return x - y;
}

int main() {
    int (*operation)(int, int);
    operation = add;
    printf("Result: %d\n", operation(10, 5));
    operation = subtract;
    printf("Result: %d\n", operation(10, 5));
    return 0;
}

实例13:宏定义

宏定义是C语言中的预处理器指令,用于创建文本替换。以下是一个宏定义的实例。

#include <stdio.h>

#define PI 3.14159

int main() {
    printf("Value of PI: %.5f\n", PI);
    return 0;
}

实例14:预处理指令

预处理指令是C语言中的特殊指令,用于在编译前处理源代码。以下是一个预处理指令的实例。

#include <stdio.h>

#if defined(__linux__)
    #define OS "Linux"
#elif defined(__windows__)
    #define OS "Windows"
#else
    #define OS "Unknown"
#endif

int main() {
    printf("Operating System: %s\n", OS);
    return 0;
}

实例15:位操作

位操作是C语言中的高级特性,用于直接操作位。以下是一个位操作的实例。

#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;
}

实例16:指针算术

指针算术允许通过指针进行算术运算。以下是一个指针算术的实例。

#include <stdio.h>

int main() {
    int array[] = {1, 2, 3, 4, 5};
    int *ptr = array;
    for (int i = 0; i < 5; i++) {
        printf("Value at %p: %d\n", (void *)(ptr + i), *(ptr + i));
    }
    return 0;
}

实例17:内存对齐

内存对齐是C语言中的高级特性,用于优化内存访问。以下是一个内存对齐的实例。

#include <stdio.h>

typedef struct {
    int a;
    float b;
} AlignStruct;

int main() {
    printf("Size of AlignStruct: %zu\n", sizeof(AlignStruct));
    return 0;
}

实例18:联合体

联合体是C语言中的高级特性,用于存储不同类型的数据在同一内存位置。以下是一个联合体的实例。

#include <stdio.h>

typedef union {
    int i;
    float f;
} UnionType;

int main() {
    UnionType u;
    u.i = 10;
    printf("Value of u.i: %d\n", u.i);
    u.f = 3.14;
    printf("Value of u.f: %.2f\n", u.f);
    return 0;
}

实例19:枚举

枚举是C语言中的高级特性,用于定义一组命名的整型常量。以下是一个枚举的实例。

#include <stdio.h>

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

int main() {
    Weekday today = FRIDAY;
    printf("Today is: %d\n", today);
    return 0;
}

实例20:位域

位域是C语言中的高级特性,用于存储多个位字段。以下是一个位域的实例。

#include <stdio.h>

typedef struct {
    unsigned int a : 5;
    unsigned int b : 3;
    unsigned int c : 5;
    unsigned int d : 5;
} BitField;

int main() {
    BitField bf;
    bf.a = 10;
    bf.b = 2;
    bf.c = 15;
    bf.d = 3;
    printf("BitField a: %u\n", bf.a);
    printf("BitField b: %u\n", bf.b);
    printf("BitField c: %u\n", bf.c);
    printf("BitField d: %u\n", bf.d);
    return 0;
}

实例21:宏函数

宏函数是C语言中的预处理器指令,用于创建文本替换。以下是一个宏函数的实例。

#include <stdio.h>

#define MAX(a, b) ((a) > (b) ? (a) : (b))

int main() {
    int x = 10, y = 20;
    printf("Max: %d\n", MAX(x, y));
    return 0;
}

实例22:递归函数

递归函数是C语言中的高级特性,用于在函数内部调用自身。以下是一个递归函数的实例,用于计算阶乘。

#include <stdio.h>

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

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

实例23:链表

链表是C语言中的高级数据结构,用于动态存储数据。以下是一个单向链表的实例。

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

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

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

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

int main() {
    Node *head = NULL;
    insert(&head, 1);
    insert(&head, 2);
    insert(&head, 3);
    printList(head);
    return 0;
}

实例24:栈

栈是C语言中的高级数据结构,用于后进先出(LIFO)的数据访问。以下是一个栈的实例。

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

typedef struct Stack {
    int top;
    int capacity;
    int *array;
} Stack;

void initStack(Stack *stack, int capacity) {
    stack->capacity = capacity;
    stack->top = -1;
    stack->array = (int *)malloc(stack->capacity * sizeof(int));
}

void push(Stack *stack, int data) {
    if (stack->top == stack->capacity - 1) {
        printf("Stack is full.\n");
        return;
    }
    stack->array[++stack->top] = data;
}

int pop(Stack *stack) {
    if (stack->top == -1) {
        printf("Stack is empty.\n");
        return -1;
    }
    return stack->array[stack->top--];
}

int main() {
    Stack stack;
    initStack(&stack, 5);
    push(&stack, 1);
    push(&stack, 2);
    push(&stack, 3);
    printf("Popped: %d\n", pop(&stack));
    printf("Popped: %d\n", pop(&stack));
    printf("Popped: %d\n", pop(&stack));
    return 0;
}

实例25:队列

队列是C语言中的高级数据结构,用于先进先出(FIFO)的数据访问。以下是一个队列的实例。

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

typedef struct Queue {
    int front;
    int rear;
    int capacity;
    int *array;
} Queue;

void initQueue(Queue *queue, int capacity) {
    queue->capacity = capacity;
    queue->front = queue->rear = -1;
    queue->array = (int *)malloc(queue->capacity * sizeof(int));
}

int isEmpty(Queue *queue) {
    return queue->front == -1;
}

int isFull(Queue *queue) {
    return (queue->rear + 1) % queue->capacity == queue->front;
}

void enqueue(Queue *queue, int data) {
    if (isFull(queue)) {
        printf("Queue is full.\n");
        return;
    }
    if (isEmpty(queue)) {
        queue->front = queue->rear = 0;
    } else {
        queue->rear = (queue->rear + 1) % queue->capacity;
    }
    queue->array[queue->rear] = data;
}

int dequeue(Queue *queue) {
    if (isEmpty(queue)) {
        printf("Queue is empty.\n");
        return -1;
    }
    int data = queue->array[queue->front];
    if (queue->front == queue->rear) {
        queue->front = queue->rear = -1;
    } else {
        queue->front = (queue->front + 1) % queue->capacity;
    }
    return data;
}

int main() {
    Queue queue;
    initQueue(&queue, 5);
    enqueue(&queue, 1);
    enqueue(&queue, 2);
    enqueue(&queue, 3);
    printf("Dequeued: %d\n", dequeue(&queue));
    printf("Dequeued: %d\n", dequeue(&queue));
    printf("Dequeued: %d\n", dequeue(&queue));
    return 0;
}

实例26:散列表

散列表是C语言中的高级数据结构,用于快速查找数据。以下是一个散列表的实例。

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

#define TABLE_SIZE 10

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

unsigned int hashFunction(int data) {
    return data % TABLE_SIZE;
}

void insert(HashNode **table, int data) {
    unsigned int index = hashFunction(data);
    HashNode *newNode = (HashNode *)malloc(sizeof(HashNode));
    newNode->data = data;
    newNode->next = table[index];
    table[index] = newNode;
}

void printTable(HashNode **table) {
    for (int i = 0; i < TABLE_SIZE; i++) {
        HashNode *node = table[i];
        while (node != NULL) {
            printf("%d ", node->data);
            node = node->next;
        }
        printf("\n");
    }
}

int main() {
    HashNode *table[TABLE_SIZE] = {NULL};
    insert(table, 10);
    insert(table, 20);
    insert(table, 30);
    printTable(table);
    return 0;
}

实例27:排序算法

排序算法是C语言中的高级特性,用于对数据进行排序。以下是一个冒泡排序的实例。

#include <stdio.h>

void bubbleSort(int *array, int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}

int main() {
    int array[] = {64, 34, 25, 12, 22, 11, 90};
    int size = sizeof(array) / sizeof(array[0]);
    bubbleSort(array, size);
    printf("Sorted array: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");
    return 0;
}

实例28:查找算法

查找算法是C语言中的高级特性,用于在数据中查找特定元素。以下是一个二分查找的实例。

”`c #include

int binary