第一章:C语言简介

1.1 C语言的历史与发展

C语言是一种广泛使用的高级编程语言,由Dennis Ritchie在1972年发明。它是一种过程式语言,广泛应用于操作系统、嵌入式系统、编译器开发等领域。C语言因其简洁、高效、可移植性强等特点,成为编程学习者的首选语言之一。

1.2 C语言的特点

  • 简洁明了:C语言语法简单,易于学习和理解。
  • 高效:C语言编译后的程序运行效率高。
  • 可移植性强:C语言编写的程序可以在不同的操作系统和硬件平台上运行。
  • 强大的库函数:C语言提供了丰富的库函数,方便开发者进行编程。

第二章:C语言基础语法

2.1 数据类型

C语言中,数据类型分为基本数据类型和复合数据类型。基本数据类型包括整型(int)、浮点型(float、double)、字符型(char)等。复合数据类型包括数组、结构体、共用体等。

2.2 变量和常量

变量是存储数据的容器,常量是固定不变的值。在C语言中,声明变量和常量需要指定数据类型。

2.3 运算符

C语言中,运算符包括算术运算符、关系运算符、逻辑运算符等。运算符用于对变量或常量进行运算。

2.4 控制语句

控制语句用于控制程序的执行流程。C语言中的控制语句包括条件语句(if、switch)、循环语句(for、while、do-while)等。

第三章:C语言高级特性

3.1 函数

函数是C语言中的基本模块,用于实现特定的功能。在C语言中,函数可以接受参数,并返回值。

3.2 指针

指针是C语言中的一个重要概念,用于存储变量的地址。指针可以用来实现数组、结构体、动态内存分配等功能。

3.3 预处理器

预处理器是C语言中的一个工具,用于在编译前处理源代码。预处理器指令包括宏定义、条件编译等。

第四章:C语言实战技巧

4.1 数据结构

数据结构是C语言中用于组织数据的方法。常见的有数组、链表、树、图等。

4.2 文件操作

文件操作是C语言中用于处理文件的方法。在C语言中,可以使用文件I/O函数对文件进行读写操作。

4.3 动态内存分配

动态内存分配是C语言中用于在程序运行时分配内存的方法。在C语言中,可以使用malloc、calloc、realloc等函数进行动态内存分配。

第五章:C语言编程实例

5.1 计算器程序

编写一个简单的计算器程序,实现加、减、乘、除等基本运算。

#include <stdio.h>

int main() {
    float num1, num2, result;
    char operator;

    printf("Enter an operator (+, -, *, /): ");
    scanf("%c", &operator);

    printf("Enter two operands: ");
    scanf("%f %f", &num1, &num2);

    switch (operator) {
        case '+':
            result = num1 + num2;
            break;
        case '-':
            result = num1 - num2;
            break;
        case '*':
            result = num1 * num2;
            break;
        case '/':
            if (num2 != 0.0)
                result = num1 / num2;
            else
                printf("Division by zero is not allowed.");
            break;
        default:
            printf("Invalid operator.");
            return 1;
    }

    printf("Result: %.2f", result);
    return 0;
}

5.2 简单的图书管理系统

编写一个简单的图书管理系统,实现图书的增加、删除、查询等功能。

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

typedef struct {
    char title[100];
    char author[100];
    int year;
} Book;

Book library[100];
int book_count = 0;

void add_book() {
    Book new_book;
    printf("Enter book title: ");
    scanf("%s", new_book.title);
    printf("Enter author name: ");
    scanf("%s", new_book.author);
    printf("Enter year of publication: ");
    scanf("%d", &new_book.year);

    library[book_count++] = new_book;
}

void delete_book() {
    char title[100];
    printf("Enter book title to delete: ");
    scanf("%s", title);

    for (int i = 0; i < book_count; i++) {
        if (strcmp(library[i].title, title) == 0) {
            for (int j = i; j < book_count - 1; j++) {
                library[j] = library[j + 1];
            }
            book_count--;
            printf("Book deleted successfully.\n");
            return;
        }
    }

    printf("Book not found.\n");
}

void search_book() {
    char title[100];
    printf("Enter book title to search: ");
    scanf("%s", title);

    for (int i = 0; i < book_count; i++) {
        if (strcmp(library[i].title, title) == 0) {
            printf("Book found: %s, %s, %d\n", library[i].title, library[i].author, library[i].year);
            return;
        }
    }

    printf("Book not found.\n");
}

int main() {
    int choice;

    while (1) {
        printf("\n1. Add book\n");
        printf("2. Delete book\n");
        printf("3. Search book\n");
        printf("4. Exit\n");
        printf("Enter your choice: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                add_book();
                break;
            case 2:
                delete_book();
                break;
            case 3:
                search_book();
                break;
            case 4:
                exit(0);
            default:
                printf("Invalid choice.\n");
        }
    }

    return 0;
}

通过以上教程,相信你已经对C语言有了初步的了解。接下来,你可以通过编写更多实际项目来提高自己的编程能力。祝你学习愉快!