函数基础
在C语言中,函数是执行特定任务的一组代码。掌握函数是编写高效C程序的关键。以下是一些基础的函数概念和实战例题。
实战例题1:编写一个函数,计算两个整数的和
#include <stdio.h>
// 函数声明
int sum(int a, int b);
int main() {
int num1, num2, result;
// 用户输入两个整数
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
// 调用函数计算和
result = sum(num1, num2);
// 输出结果
printf("The sum is: %d\n", result);
return 0;
}
// 函数定义
int sum(int a, int b) {
return a + b;
}
实战例题2:编写一个函数,计算两个浮点数的平均值
#include <stdio.h>
// 函数声明
float average(float a, float b);
int main() {
float num1, num2, result;
// 用户输入两个浮点数
printf("Enter two floating-point numbers: ");
scanf("%f %f", &num1, &num2);
// 调用函数计算平均值
result = average(num1, num2);
// 输出结果
printf("The average is: %f\n", result);
return 0;
}
// 函数定义
float average(float a, float b) {
return (a + b) / 2.0;
}
递归函数
递归函数是函数调用自身的一种特殊形式。以下是一些递归函数的实战例题。
实战例题3:编写一个递归函数,计算斐波那契数列的第n项
#include <stdio.h>
// 函数声明
int fibonacci(int n);
int main() {
int n;
// 用户输入一个整数
printf("Enter a positive integer: ");
scanf("%d", &n);
// 输出斐波那契数列的第n项
printf("The %dth Fibonacci number is: %d\n", n, fibonacci(n));
return 0;
}
// 函数定义
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
实战例题4:编写一个递归函数,计算阶乘
#include <stdio.h>
// 函数声明
int factorial(int n);
int main() {
int n;
// 用户输入一个整数
printf("Enter a positive integer: ");
scanf("%d", &n);
// 输出阶乘
printf("Factorial of %d is: %d\n", n, factorial(n));
return 0;
}
// 函数定义
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
高级函数
在C语言中,还有一些高级函数,如指针、数组、结构体等。以下是一些高级函数的实战例题。
实战例题5:编写一个函数,使用指针交换两个整数的值
#include <stdio.h>
// 函数声明
void swap(int *a, int *b);
int main() {
int num1, num2;
// 用户输入两个整数
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
// 输出交换前的值
printf("Before swap: num1 = %d, num2 = %d\n", num1, num2);
// 调用函数交换值
swap(&num1, &num2);
// 输出交换后的值
printf("After swap: num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
// 函数定义
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
实战例题6:编写一个函数,使用结构体数组处理学生信息
#include <stdio.h>
// 定义学生结构体
typedef struct {
char name[50];
int age;
float score;
} Student;
// 函数声明
void print_students(Student students[], int size);
int main() {
// 创建学生数组
Student students[] = {
{"Alice", 20, 85.5},
{"Bob", 22, 90.0},
{"Charlie", 19, 78.0}
};
// 调用函数打印学生信息
print_students(students, 3);
return 0;
}
// 函数定义
void print_students(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("Name: %s, Age: %d, Score: %.2f\n", students[i].name, students[i].age, students[i].score);
}
}
通过以上实战例题,相信你已经对C语言函数有了更深入的了解。不断练习和尝试,你会越来越熟练地掌握C语言编程。
