实例1:基础变量声明与赋值
在C语言中,正确声明和赋值变量是编程的基础。以下是一个简单的例子:
#include <stdio.h>
int main() {
int a = 10;
float b = 3.14;
char c = 'A';
printf("a = %d, b = %f, c = %c\n", a, b, c);
return 0;
}
在这个例子中,我们声明了三个变量:一个整型变量a,一个浮点型变量b,和一个字符型变量c,并分别赋值。
实例2:使用指针操作变量
指针是C语言中一个非常强大的特性。以下是一个使用指针操作变量的例子:
#include <stdio.h>
int main() {
int a = 10;
int *ptr = &a;
printf("a = %d\n", a);
printf("*ptr = %d\n", *ptr);
printf("ptr = %p\n", (void *)ptr);
return 0;
}
在这个例子中,我们声明了一个整型变量a,然后声明了一个指向整型的指针ptr,并将ptr指向a的地址。通过解引用指针*ptr,我们可以访问a的值。
实例3:函数的递归调用
递归是C语言中的一种高级编程技巧。以下是一个使用递归计算阶乘的例子:
#include <stdio.h>
int factorial(int n) {
if (n == 0)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int num = 5;
printf("Factorial of %d = %d\n", num, factorial(num));
return 0;
}
在这个例子中,我们定义了一个名为factorial的函数,它使用递归来计算一个整数的阶乘。
实例4:结构体与联合体的使用
结构体和联合体是C语言中用于组织相关数据的容器。以下是一个使用结构体的例子:
#include <stdio.h>
typedef struct {
char name[50];
int age;
float salary;
} Employee;
int main() {
Employee emp;
strcpy(emp.name, "John Doe");
emp.age = 30;
emp.salary = 5000.0;
printf("Name: %s, Age: %d, Salary: %.2f\n", emp.name, emp.age, emp.salary);
return 0;
}
在这个例子中,我们定义了一个名为Employee的结构体,它包含三个成员:姓名、年龄和薪水。然后我们创建了一个Employee类型的变量emp,并初始化了它的成员。
实例5:文件操作
文件操作是C语言中常用的功能之一。以下是一个使用文件操作的例子:
#include <stdio.h>
int main() {
FILE *file;
char filename[] = "example.txt";
char ch;
file = fopen(filename, "r");
if (file == NULL) {
printf("Error opening file\n");
return 1;
}
while ((ch = fgetc(file)) != EOF) {
putchar(ch);
}
fclose(file);
return 0;
}
在这个例子中,我们使用fopen函数打开一个名为example.txt的文件,然后使用fgetc函数逐个读取文件中的字符,并使用putchar函数将它们打印到屏幕上。
实例6:动态内存分配
动态内存分配是C语言中管理内存的一种方式。以下是一个使用动态内存分配的例子:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n = 5;
ptr = (int *)malloc(n * sizeof(int));
if (ptr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < n; i++) {
ptr[i] = i;
}
for (int i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
printf("\n");
free(ptr);
return 0;
}
在这个例子中,我们使用malloc函数动态分配了一个整型数组,并初始化了它的元素。然后我们使用free函数释放了分配的内存。
实例7:使用标准库函数
C语言的标准库提供了许多实用的函数,可以帮助我们完成各种任务。以下是一个使用标准库函数的例子:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
char result[100];
strcpy(result, str1);
strcat(result, " ");
strcat(result, str2);
printf("Result: %s\n", result);
return 0;
}
在这个例子中,我们使用strcpy和strcat函数将两个字符串连接起来。
实例8:使用宏定义
宏定义是C语言中的一种预处理器指令,可以用于定义常量、函数等。以下是一个使用宏定义的例子:
#include <stdio.h>
#define PI 3.14159
int main() {
float radius = 5.0;
float area = PI * radius * radius;
printf("Area of circle: %.2f\n", area);
return 0;
}
在这个例子中,我们使用宏定义PI来表示圆周率。
实例9:使用条件语句
条件语句是C语言中用于根据条件执行不同代码块的语句。以下是一个使用条件语句的例子:
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
if (a > b) {
printf("a is greater than b\n");
} else if (a < b) {
printf("a is less than b\n");
} else {
printf("a is equal to b\n");
}
return 0;
}
在这个例子中,我们使用if语句根据a和b的值比较结果来执行不同的代码块。
实例10:使用循环语句
循环语句是C语言中用于重复执行代码块的语句。以下是一个使用循环语句的例子:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
printf("%d\n", i);
}
return 0;
}
在这个例子中,我们使用for循环语句打印从1到10的数字。
实例11:使用数组
数组是C语言中用于存储相同类型数据的一种容器。以下是一个使用数组的例子:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += arr[i];
}
printf("Sum of array elements: %d\n", sum);
return 0;
}
在这个例子中,我们声明了一个整型数组arr,并初始化了它的元素。然后我们使用for循环语句计算数组元素的总和。
实例12:使用字符串
字符串是C语言中用于存储字符序列的一种容器。以下是一个使用字符串的例子:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
char result[100];
strcpy(result, str1);
strcat(result, " ");
strcat(result, str2);
printf("Result: %s\n", result);
return 0;
}
在这个例子中,我们使用strcpy和strcat函数将两个字符串连接起来。
实例13:使用结构体
结构体是C语言中用于组织相关数据的一种容器。以下是一个使用结构体的例子:
#include <stdio.h>
typedef struct {
char name[50];
int age;
float salary;
} Employee;
int main() {
Employee emp;
strcpy(emp.name, "John Doe");
emp.age = 30;
emp.salary = 5000.0;
printf("Name: %s, Age: %d, Salary: %.2f\n", emp.name, emp.age, emp.salary);
return 0;
}
在这个例子中,我们定义了一个名为Employee的结构体,它包含三个成员:姓名、年龄和薪水。然后我们创建了一个Employee类型的变量emp,并初始化了它的成员。
实例14:使用枚举
枚举是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;
}
在这个例子中,我们定义了一个名为Weekday的枚举类型,它包含一周七天的值。然后我们声明了一个Weekday类型的变量today,并将其赋值为FRIDAY。
实例15:使用位操作
位操作是C语言中用于操作二进制位的一种方式。以下是一个使用位操作的例子:
#include <stdio.h>
int main() {
int a = 5; // 二进制:101
int b = 3; // 二进制:011
printf("a & b = %d\n", a & b); // AND 操作:001
printf("a | b = %d\n", a | b); // OR 操作:111
printf("a ^ b = %d\n", a ^ b); // XOR 操作:110
printf("a << 1 = %d\n", a << 1); // 左移操作:1010
printf("a >> 1 = %d\n", a >> 1); // 右移操作:10
return 0;
}
在这个例子中,我们使用位操作符&(AND)、|(OR)、^(XOR)、<<(左移)和>>(右移)来操作整型变量a和b。
实例16:使用文件操作
文件操作是C语言中用于读写文件的一种方式。以下是一个使用文件操作的例子:
#include <stdio.h>
int main() {
FILE *file;
char filename[] = "example.txt";
char ch;
file = fopen(filename, "r");
if (file == NULL) {
printf("Error opening file\n");
return 1;
}
while ((ch = fgetc(file)) != EOF) {
putchar(ch);
}
fclose(file);
return 0;
}
在这个例子中,我们使用fopen函数打开一个名为example.txt的文件,然后使用fgetc函数逐个读取文件中的字符,并使用putchar函数将它们打印到屏幕上。
实例17:使用动态内存分配
动态内存分配是C语言中用于在运行时分配内存的一种方式。以下是一个使用动态内存分配的例子:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n = 5;
ptr = (int *)malloc(n * sizeof(int));
if (ptr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < n; i++) {
ptr[i] = i;
}
for (int i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
printf("\n");
free(ptr);
return 0;
}
在这个例子中,我们使用malloc函数动态分配了一个整型数组,并初始化了它的元素。然后我们使用free函数释放了分配的内存。
实例18:使用标准库函数
C语言的标准库提供了许多实用的函数,可以帮助我们完成各种任务。以下是一个使用标准库函数的例子:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
char result[100];
strcpy(result, str1);
strcat(result, " ");
strcat(result, str2);
printf("Result: %s\n", result);
return 0;
}
在这个例子中,我们使用strcpy和strcat函数将两个字符串连接起来。
实例19:使用宏定义
宏定义是C语言中的一种预处理器指令,可以用于定义常量、函数等。以下是一个使用宏定义的例子:
#include <stdio.h>
#define PI 3.14159
int main() {
float radius = 5.0;
float area = PI * radius * radius;
printf("Area of circle: %.2f\n", area);
return 0;
}
在这个例子中,我们使用宏定义PI来表示圆周率。
实例20:使用条件语句
条件语句是C语言中用于根据条件执行不同代码块的语句。以下是一个使用条件语句的例子:
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
if (a > b) {
printf("a is greater than b\n");
} else if (a < b) {
printf("a is less than b\n");
} else {
printf("a is equal to b\n");
}
return 0;
}
在这个例子中,我们使用if语句根据a和b的值比较结果来执行不同的代码块。
实例21:使用循环语句
循环语句是C语言中用于重复执行代码块的语句。以下是一个使用循环语句的例子:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
printf("%d\n", i);
}
return 0;
}
在这个例子中,我们使用for循环语句打印从1到10的数字。
实例22:使用数组
数组是C语言中用于存储相同类型数据的一种容器。以下是一个使用数组的例子:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += arr[i];
}
printf("Sum of array elements: %d\n", sum);
return 0;
}
在这个例子中,我们声明了一个整型数组arr,并初始化了它的元素。然后我们使用for循环语句计算数组元素的总和。
实例23:使用字符串
字符串是C语言中用于存储字符序列的一种容器。以下是一个使用字符串的例子:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
char result[100];
strcpy(result, str1);
strcat(result, " ");
strcat(result, str2);
printf("Result: %s\n", result);
return 0;
}
在这个例子中,我们使用strcpy和strcat函数将两个字符串连接起来。
实例24:使用结构体
结构体是C语言中用于组织相关数据的一种容器。以下是一个使用结构体的例子:
#include <stdio.h>
typedef struct {
char name[50];
int age;
float salary;
} Employee;
int main() {
Employee emp;
strcpy(emp.name, "John Doe");
emp.age = 30;
emp.salary = 5000.0;
printf("Name: %s, Age: %d, Salary: %.2f\n", emp.name, emp.age, emp.salary);
return 0;
}
在这个例子中,我们定义了一个名为Employee的结构体,它包含三个成员:姓名、年龄和薪水。然后我们创建了一个Employee类型的变量emp,并初始化了它的成员。
实例25:使用枚举
枚举是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;
}
在这个例子中,我们定义了一个名为Weekday的枚举类型,它包含一周七天的值。然后我们声明了一个Weekday类型的变量today,并将其赋值为FRIDAY。
实例26:使用位操作
位操作是C语言中用于操作二进制位的一种方式。以下是一个使用位操作的例子:
#include <stdio.h>
int main() {
int a = 5; // 二进制:101
int b = 3; // 二进制:011
printf("a & b = %d\n", a & b); // AND 操作:001
printf("a | b = %d\n", a | b); // OR 操作:111
printf("a ^ b = %d\n", a ^ b); // XOR 操作:110
printf("a << 1 = %d\n", a << 1); // 左移操作:1010
printf("a >> 1 = %d\n", a >> 1); // 右移操作:10
return 0;
}
在这个例子中,我们使用位操作符&(AND)、|(OR)、^(XOR)、<<(左移)和`>>
