C语言编程:函数应用示例——交换、方程解、字符串操作

需积分: 3 2 下载量 78 浏览量 更新于2024-09-09 1 收藏 383KB DOC 举报
"本资源提供了一系列C语言函数的实例,包括整数交换、求解一元二次方程的根、小写字母统计与转换、数组的输入、排序和输出,以及字符串连接和查找功能的实现。" 在C编程中,掌握函数的使用是至关重要的,这些实例有助于深化对C函数的理解和应用。以下将详细解释每个函数实例: 1. **整数交换**: 在C语言中,不能直接通过赋值操作来交换两个整数的值,因为这会导致临时的中间结果丢失。通常使用第三个变量或者特定的位运算来实现。例如,可以创建一个函数`void swap(int *a, int *b)`,通过指针操作来交换两个整数的值。 2. **求一元二次方程的根**: 一元二次方程的一般形式是ax² + bx + c = 0。使用公式`x = [-b ± sqrt(b² - 4ac)] / (2a)`可以计算出其根。函数可能如下: ```c void quadraticRoots(double a, double b, double c, double *root1, double *root2) { double discriminant = b*b - 4*a*c; if (discriminant > 0) { *root1 = (-b + sqrt(discriminant)) / (2*a); *root2 = (-b - sqrt(discriminant)) / (2*a); } else if (discriminant == 0) { *root1 = -b / (2*a); *root2 = *root1; // 两个根相同 } else { // 无实数根 } } ``` 3. **小写字母统计与转换**: 可以编写一个函数`void toUpperAndCountLower(char *str, int *lowerCount)`,遍历字符串,统计小写字母并将其转换为大写。同时,通过传递一个整型指针更新小写字母的数量。 4. **数组的输入、排序和输出**: - 输入:可以使用`scanf`函数读取数组元素。 - 排序:可以使用各种排序算法,如冒泡排序、选择排序或快速排序等。 - 输出:使用`printf`函数打印数组元素。 5. **自定义strcat函数**: `char* mystrcat(char* dest, const char* src)`实现字符串连接功能,类似于C库中的`strcat`函数,将`src`字符串连接到`dest`字符串的末尾。 6. **自定义strcpy函数**: `char* mystrcpy(char* dest, const char* src)`实现字符串复制功能,类似于C库中的`strcpy`函数,将`src`字符串的内容复制到`dest`字符串中。 7. **自定义strstr函数**: `char* mystrstr(const char* haystack, const char* needle)`实现字符串查找功能,类似于C库中的`strstr`函数,在`haystack`字符串中查找`needle`字符串首次出现的位置,并返回指针。 这些实例涵盖了C语言中函数的基本使用,包括参数传递、字符串操作、数组处理和数学计算等多个方面,是学习和提升C语言编程技能的好材料。