案例一:C语言基础语法
1.1 数据类型
C语言中的数据类型包括整型(int)、浮点型(float和double)、字符型(char)等。以下是一个简单的整型变量定义和初始化的例子:
#include <stdio.h>
int main() {
int age = 25;
printf("我的年龄是:%d\n", age);
return 0;
}
1.2 运算符
C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。以下是一个使用算术运算符的例子:
#include <stdio.h>
int main() {
int a = 10;
int b = 5;
int sum = a + b;
int difference = a - b;
int product = a * b;
int quotient = a / b;
int remainder = a % b;
printf("和:%d\n", sum);
printf("差:%d\n", difference);
printf("积:%d\n", product);
printf("商:%d\n", quotient);
printf("余数:%d\n", remainder);
return 0;
}
案例二:控制结构
2.1 条件语句
条件语句用于根据条件判断执行不同的代码块。以下是一个简单的if语句的例子:
#include <stdio.h>
int main() {
int number = 10;
if (number > 0) {
printf("这是一个正数。\n");
} else {
printf("这是一个非正数。\n");
}
return 0;
}
2.2 循环结构
循环结构用于重复执行一段代码。以下是一个使用for循环的例子:
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
printf("循环次数:%d\n", i);
}
return 0;
}
案例三:函数
3.1 函数定义
函数是C语言中组织代码的重要方式。以下是一个简单的函数定义和调用的例子:
#include <stdio.h>
// 函数声明
void printMessage();
int main() {
// 调用函数
printMessage();
return 0;
}
// 函数定义
void printMessage() {
printf("这是一个函数。\n");
}
案例四:数组
4.1 一维数组
一维数组用于存储一系列相同类型的元素。以下是一个使用一维数组的例子:
#include <stdio.h>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}
return 0;
}
案例五:指针
5.1 指针基础
指针是C语言中用于存储变量地址的数据类型。以下是一个使用指针的例子:
#include <stdio.h>
int main() {
int a = 10;
int *ptr = &a;
printf("a的值:%d\n", a);
printf("ptr指向的地址:%p\n", (void *)ptr);
printf("ptr指向的值:%d\n", *ptr);
return 0;
}
案例六:结构体
6.1 结构体定义
结构体用于将不同类型的数据组合在一起。以下是一个使用结构体的例子:
#include <stdio.h>
// 结构体定义
struct Student {
char name[50];
int age;
float score;
};
int main() {
// 结构体变量
struct Student student1;
strcpy(student1.name, "张三");
student1.age = 20;
student1.score = 90.5;
printf("学生姓名:%s\n", student1.name);
printf("学生年龄:%d\n", student1.age);
printf("学生成绩:%f\n", student1.score);
return 0;
}
案例七:文件操作
7.1 文件写入
以下是一个使用文件写入的例子:
#include <stdio.h>
int main() {
FILE *fp;
char filename[] = "example.txt";
char str[] = "这是一个示例文本。\n";
// 打开文件
fp = fopen(filename, "w");
if (fp == NULL) {
printf("无法打开文件:%s\n", filename);
return -1;
}
// 写入文件
fprintf(fp, "%s", str);
// 关闭文件
fclose(fp);
return 0;
}
案例八:动态内存分配
8.1 内存分配
以下是一个使用动态内存分配的例子:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *numbers;
int n = 5;
// 分配内存
numbers = (int *)malloc(n * sizeof(int));
if (numbers == NULL) {
printf("内存分配失败。\n");
return -1;
}
// 使用内存
for (int i = 0; i < n; i++) {
numbers[i] = i + 1;
}
// 释放内存
free(numbers);
return 0;
}
案例九:链表
9.1 链表定义
链表是一种常用的数据结构,用于存储一系列元素。以下是一个简单的单向链表定义:
#include <stdio.h>
#include <stdlib.h>
// 链表节点定义
struct Node {
int data;
struct Node *next;
};
// 链表定义
struct LinkedList {
struct Node *head;
};
案例十:排序算法
10.1 冒泡排序
以下是一个使用冒泡排序算法的例子:
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
总结
本文介绍了C语言编程实战中的10个经典案例,包括基础语法、控制结构、函数、数组、指针、结构体、文件操作、动态内存分配、链表和排序算法。这些案例可以帮助读者从入门到精通C语言编程。在实际编程过程中,读者可以根据自己的需求选择合适的案例进行学习和实践。
