1. 打印“Hello, World!”
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
这是一个最简单的C语言程序,用于输出“Hello, World!”到控制台。
2. 变量声明与赋值
#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;
}
在这个例子中,我们声明了三种不同类型的变量,并给它们赋值。
3. 数据类型转换
#include <stdio.h>
int main() {
int a = 5;
float b = 2.5;
float result = a + b;
printf("Result: %f\n", result);
return 0;
}
在这个例子中,我们将一个整数和一个浮点数相加,结果会自动转换为浮点数。
4. 条件语句
#include <stdio.h>
int main() {
int a = 10;
if (a > 5) {
printf("a is greater than 5\n");
} else {
printf("a is not greater than 5\n");
}
return 0;
}
这是一个简单的条件语句示例,根据条件判断输出不同的信息。
5. 循环语句(for)
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
printf("i = %d\n", i);
}
return 0;
}
这个例子展示了for循环的基本用法,用于打印1到5的数字。
6. 循环语句(while)
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
printf("i = %d\n", i);
i++;
}
return 0;
}
这个例子展示了while循环的基本用法,与for循环类似,用于打印1到5的数字。
7. 循环语句(do-while)
#include <stdio.h>
int main() {
int i = 1;
do {
printf("i = %d\n", i);
i++;
} while (i <= 5);
return 0;
}
这个例子展示了do-while循环的基本用法,与while循环类似,用于打印1到5的数字。
8. 一维数组
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
return 0;
}
这个例子展示了如何声明、初始化和使用一维数组。
9. 二维数组
#include <stdio.h>
int main() {
int arr[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);
}
}
return 0;
}
这个例子展示了如何声明、初始化和使用二维数组。
10. 字符串
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("str1 = %s, str2 = %s\n", str1, str2);
printf("Length of str1: %lu\n", strlen(str1));
return 0;
}
这个例子展示了如何声明、初始化和使用字符串,并使用strlen函数计算字符串的长度。
11. 函数定义与调用
#include <stdio.h>
void printMessage() {
printf("Hello, World!\n");
}
int main() {
printMessage();
return 0;
}
这个例子展示了如何定义和调用一个函数。
12. 函数参数与返回值
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
printf("Result: %d\n", result);
return 0;
}
这个例子展示了如何定义一个有参数和返回值的函数。
13. 结构体
#include <stdio.h>
typedef struct {
int id;
char name[50];
} Student;
int main() {
Student s1;
s1.id = 1;
strcpy(s1.name, "John");
printf("Student ID: %d, Name: %s\n", s1.id, s1.name);
return 0;
}
这个例子展示了如何定义和使用结构体。
14. 指针
#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 of ptr: %p\n", (void*)ptr);
printf("Value pointed by ptr: %d\n", *ptr);
return 0;
}
这个例子展示了指针的基本用法,包括如何声明、赋值和访问变量的地址。
15. 指针与数组
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d, *(ptr + %d) = %d\n", i, arr[i], i, *(ptr + i));
}
return 0;
}
这个例子展示了如何使用指针来访问数组元素。
16. 函数指针
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int (*ptr)(int, int) = add;
int result = ptr(5, 3);
printf("Result: %d\n", result);
return 0;
}
这个例子展示了如何定义和使用函数指针。
17. 指针数组
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int *ptrArr[2] = {&a, &b};
printf("Value of a: %d, Value of b: %d\n", *ptrArr[0], *ptrArr[1]);
return 0;
}
这个例子展示了如何声明和使用指针数组。
18. 函数指针数组
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*ptrArr[2])(int, int) = {add, subtract};
printf("Result of add: %d\n", ptrArr[0](5, 3));
printf("Result of subtract: %d\n", ptrArr[1](5, 3));
return 0;
}
这个例子展示了如何声明和使用函数指针数组。
19. 指针与函数参数
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10;
int y = 20;
swap(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}
这个例子展示了如何使用指针作为函数参数进行变量交换。
20. 动态内存分配
#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 + 1;
}
for (int i = 0; i < 5; i++) {
printf("ptr[%d] = %d\n", i, ptr[i]);
}
free(ptr);
return 0;
}
这个例子展示了如何使用malloc函数动态分配内存,并使用free函数释放内存。
21. 字符串处理函数
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Length of str1: %lu\n", strlen(str1));
strcat(str1, str2);
printf("str1 = %s\n", str1);
return 0;
}
这个例子展示了如何使用一些常用的字符串处理函数,如strlen和strcat。
22. 日期和时间函数
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
printf("Current 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;
}
这个例子展示了如何使用time.h库中的函数获取当前日期和时间。
23. 错误处理
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
char ch;
while ((ch = fgetc(file)) != EOF) {
putchar(ch);
}
fclose(file);
return 0;
}
这个例子展示了如何使用fopen、fgetc和fclose函数打开、读取和关闭文件,并处理错误情况。
24. 指针与函数指针的应用
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*ptr)(int, int);
ptr = add;
printf("Result of add: %d\n", ptr(5, 3));
ptr = subtract;
printf("Result of subtract: %d\n", ptr(5, 3));
return 0;
}
这个例子展示了如何使用指针和函数指针来调用不同的函数。
25. 结构体与指针
#include <stdio.h>
typedef struct {
int id;
char name[50];
} Student;
void printStudent(Student *s) {
printf("Student ID: %d, Name: %s\n", s->id, s->name);
}
int main() {
Student s1 = {1, "John"};
printStudent(&s1);
return 0;
}
这个例子展示了如何使用指针来访问结构体成员。
26. 动态内存分配与释放
#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 + 1;
}
for (int i = 0; i < 5; i++) {
printf("ptr[%d] = %d\n", i, ptr[i]);
}
free(ptr);
return 0;
}
这个例子展示了如何使用malloc和free函数进行动态内存分配和释放。
27. 字符串与指针
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Length of str1: %lu\n", strlen(str1));
strcat(str1, str2);
printf("str1 = %s\n", str1);
return 0;
}
这个例子展示了如何使用指针来操作字符串。
28. 指针与函数参数
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10;
int y = 20;
swap(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}
这个例子展示了如何使用指针作为函数参数进行变量交换。
29. 指针数组
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int *ptrArr[2] = {&a, &b};
printf("Value of a: %d, Value of b: %d\n", *ptrArr[0], *ptrArr[1]);
return 0;
}
这个例子展示了如何声明和使用指针数组。
30. 函数指针数组
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*ptrArr[2])(int, int) = {add, subtract};
printf("Result of add: %d\n", ptrArr[0](5, 3));
printf("Result of subtract: %d\n", ptrArr[1](5, 3));
return 0;
}
这个例子展示了如何声明和使用函数指针数组。
31. 指针与结构体
#include <stdio.h>
typedef struct {
int id;
char name[50];
} Student;
void printStudent(Student *s) {
printf("Student ID: %d, Name: %s\n", s->id, s->name);
}
int main() {
Student s1 = {1, "John"};
printStudent(&s1);
return 0;
}
这个例子展示了如何使用指针来访问结构体成员。
32. 动态内存分配与释放
#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 + 1;
}
for (int i = 0; i < 5; i++) {
printf("ptr[%d] = %d\n", i, ptr[i]);
}
free(ptr);
return 0;
}
这个例子展示了如何使用malloc和free函数进行动态内存分配和释放。
33. 字符串与指针
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Length of str1: %lu\n", strlen(str1));
strcat(str1, str2);
printf("str1 = %s\n", str1);
return 0;
}
这个例子展示了如何使用指针来操作字符串。
34. 指针与函数参数
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10;
int y = 20;
swap(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}
这个例子展示了如何使用指针作为函数参数进行变量交换。
35. 指针数组
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int *ptrArr[2] = {&a, &b};
printf("Value of a: %d, Value of b: %d\n", *ptrArr[0], *ptrArr[1]);
return 0;
}
这个例子展示了如何声明和使用指针数组。
36. 函数指针数组
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*ptrArr[2])(int, int) = {add, subtract};
printf("Result of add: %d\n", ptrArr[0](5, 3));
printf("Result of subtract: %d\n", ptrArr[1](5, 3));
return 0;
}
这个例子展示了如何声明和使用函数指针数组。
37. 指针与结构体
#include <stdio.h>
typedef struct {
int id;
char name[50];
} Student;
void printStudent(Student *s) {
printf("Student ID: %d, Name: %s\n", s->id, s->name);
}
int main() {
Student s1 = {1, "John"};
printStudent(&s1);
return 0;
}
这个例子展示了如何使用指针来访问结构体成员。
38. 动态内存分配与释放
”`c
#include
int main() {
int *ptr = (int*)malloc(5 * sizeof(int));
