安徽建设厅网站官网抖音视频排名优化
目录
1. 函数的定义与调用
2. 数组与字符串操作
3. 指针基础
4. 动态内存管理
5. 综合项目实战
1. 函数的定义与调用
1.1 函数的基本结构
函数由返回值类型、函数名、参数列表和函数体组成。例如:
int get_max(int x, int y) { return (x > y) ? x : y;
}
1.2 函数的声明与调用
若函数定义在main()
之后,需提前声明:
int get_max(int, int); // 声明
int main() { int a = 10, b = 20; printf("Max: %d\n", get_max(a, b)); // 调用 return 0;
}
1.3 习题与编译结果
题目:编写一个递归函数factorial
,计算阶乘。
示例代码:
#include <stdio.h>
int factorial(int n) { return (n == 0) ? 1 : n * factorial(n - 1);
}
int main() { int num = 5; printf("%d! = %d\n", num, factorial(num)); return 0;
}
编译结果:
5! = 120
2. 数组与字符串操作
2.1 一维数组
数组用于存储同类型数据,例如:
int numbers[5] = {1, 2, 3, 4, 5};
2.2 字符串处理
字符串本质是字符数组,常用strcpy
、strlen
等库函数:
#include <string.h>
int main() { char str1[20] = "Hello"; char str2[20] = "World"; strcpy(str1, str2); // 复制字符串 printf("%s\n", str1); // 输出 "World" return 0;
}
2.3 习题与编译结果
题目:编写函数reverse_string
,反转字符串。
示例代码:
#include <string.h>
void reverse_string(char *str) { int len = strlen(str); for (int i = 0; i < len / 2; i++) { char temp = str[i]; str[i] = str[len - i - 1]; str[len - i - 1] = temp; }
}
int main() { char str[] = "C语言"; reverse_string(str); printf("%s\n", str); // 输出 "言语C" return 0;
}
编译结果:
言语C
3. 指针基础
3.1 指针与内存地址
指针存储变量的地址,例如:
int a = 10;
int *ptr = &a; // ptr指向a的地址
3.2 指针作为参数
通过指针修改实参的值:
void swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp;
}
int main() { int a = 5, b = 10; swap(&a, &b); printf("a=%d, b=%d\n", a, b); // 输出 "a=10, b=5" return 0;
}
3.3 习题与编译结果
题目:编写函数sum_array
,计算整数数组的和。
示例代码:
#include <stdio.h>
int sum_array(int *arr, int size) { int sum = 0; for (int i = 0; i < size; i++) { sum += arr[i]; } return sum;
}
int main() { int arr[] = {1, 2, 3, 4, 5}; printf("Sum: %d\n", sum_array(arr, 5)); // 输出 "Sum: 15" return 0;
}
编译结果:
Sum: 15
4. 动态内存管理
4.1 malloc
与free
动态分配和释放内存:
int *arr = (int *)malloc(5 * sizeof(int)); // 分配5个整数的空间
free(arr); // 释放内存
4.2 习题与编译结果
题目:编写动态数组,输入5个数字后输出。
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() { int n = 5; int *arr = (int *)malloc(n * sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } printf("输入的数字:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } free(arr); return 0;
}
编译结果(输入:1 2 3 4 5):
输入的数字:1 2 3 4 5
5. 综合项目实战
5.1 计算器程序
实现加减乘除功能:
#include <stdio.h>
void add(int a, int b) { printf("%d\n", a + b); }
void subtract(int a, int b) { printf("%d\n", a - b); }
// ... 其他运算函数
int main() { int choice, a, b; while (1) { printf("选择操作:1-加 2-减 3-退出\n"); scanf("%d", &choice); if (choice == 3) break; scanf("%d %d", &a, &b); switch (choice) { case 1: add(a, b); break; case 2: subtract(a, b); break; // ... 其他case } } return 0;
}
5.2 学生成绩管理系统
实现录入、查询、排序功能(需结合结构体与数组)。
学习建议:
- 每日完成1-2个习题,通过调试工具(如GDB)观察变量变化。
- 参考网页中的经典题目强化练习。
- 尝试将函数模块化,提升代码复用性。