1. 定义
- 概念:具有特定功能的小工具
- 分类:
- 自定义函数:由程序员根据需求自己写的函数
- 库函数:官方提供的常用函数,可以直接调用,但需要包含该函数所在头文件
2. 格式
-
书写格式
返回值类型 函数名(形参列表) { // 函数体 }
-
调用格式
函数名(实参列表);
5. 名词解释
- 返回值:函数执行结束后要 return 的结果,不需要返回值时则返回值类型为 void
- 实参:函数在执行操作时所需原料
- 形参:用于接收实参的临时变量
- 函数声明:也称函数原型、函数接口定义
- 书写:将定义函数的第一行复制,粘贴至主调函数之前的位置,末尾加上分号
- 作用:
1. 便于函数的调用,即不需要将函数定义在主调函数之前
2. 规定函数的书写的返回值类型以及参数信息
4. 案例:计算两个整数的商
-
分析:函数作为一个工具,现在这个工具的功能是计算两个整数的商,因此形参应该为两个整型变量,考虑到两个数的商应该为浮点型,故返回值为浮点型
-
代码实现
#include <stdio.h> float division(int a, int b); // 函数声明 // 主函数 int main() { float result = division(10,5); // 调用函数 printf("结果为:%f", result); // 输出结果 return 0; } // 求商函数 float division(int a, int b) { float result = (float)a/b; // 计算结果 return result; // 返回结果 }
5. 相关练习
-
有参有返型:编写函数用于判断是否为素数
#include <stdio.h> _Bool isPrimeNumber(int num); // 函数声明 // 主函数 int main() { int num; printf("请输入一个数:"); scanf("%d", &num); if(isPrimeNumber(num)) { // 调用函数 printf("%d是素数", num); } else { printf("%d不是素数", num); } return 0; } // 判断是否是素数函数 _Bool isPrimeNumber(int num) { int i; for(i=2; i<num; i++) { if(num % i == 0) { break; } } if(i == num) { // 如果是素数,返回真 return 1; } else { return 0; // 不是素数,返回假 } }
-
有参无返型:编写函数遍历输出数组
#include <stdio.h> void showArray(int array[], int len); // 函数声明 // 主函数 int main() { int a[] = {1, 2, 3, 4, 5}; showArray(a, 5); // 调用函数 return 0; } // 遍历输出数组函数 void showArray(int a[], int len) { for(int i=0; i<len; i++) { printf("%d ", a[i]); } }
-
无参有返型:目前未找到合适案例(学了结构体后会有)
-
无参无反型:使用函数输出九九乘法表
#include <stdio.h> void multiplyTable(); // 函数声明 // 主函数 int main() { multiplyTable(); // 调用函数 return 0; } // 九九乘法表函数 void multiplyTable() { for(int i=1; i<=9; i++) { for(int j=1; j<= i; j++) { printf("%d ×%d = %d\t", j, i,i*j); } printf("\n"); } }
6. 常用库函数汇总
stdio.h
:标准输入输出头文件- 格式化输入输出函数
scanf
:按照指定格式从键盘上输入数据,返回成功输入的字符数printf
:将数据以指定格式输出至控制台,返回成功输出的字符数
- 字符输入输出函数
getchar
:从键盘上获取一个字符,返回该字符putchar(ch)
:将括号里的字符ch输出至控制台
- 字符串输入输出函数
gets(str)
:从键盘上输入一个字符串,赋值给strputs(str)
:将str对应的字符串输出至控制台
- 格式化输入输出函数
math.h
:数学头文件- 三角函数(弧度):
sin
、cos
、tan
、asin
、acos
、atan
… - 指数函数:
exp(n)
:e的n次方pow(x,y)
:x的y次方
- 对数函数:
log(n)
:n的自然对数(以e为底)log10(n)
:n的常用对数(以10为底)
- 算数平方根:
sqrt(n)
- 绝对值:
fabs(n)
- 向上取整:
ceil(x)
- 向下取整:
floor(x)
- 三角函数(弧度):
- stdlib.h:标准库头文件
- 执行Dos命令:
system("命令”)
- 动态内存分配:
malloc(字节数)
,学到指针的时候讲
- 执行Dos命令:
string.h
:字符串头文件- 字符串求长度(不包含\0):
strlen()
- 字符串复制:
strcpy(str1,str2)
:把str2复制到str1 - 字符串比较:
strcmp(str1,str2)
:比较 str1 和 str2 是否相等- 返回0:两个字符串相等
- 返回1:str2 小于 str1
- 返回-1:str1 小于 str2
- 字符串求长度(不包含\0):
7. 库函数查询
地址:https://www.runoob.com/cprogramming/c-tutorial.html