这个作业属于哪个课程 | <班级的链接>(如2024-2025-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2024-2025-1计算机基础与程序设计第六周作业) |
这个作业的目标 | Polya如何解决问题 简单类型与组合类型 复合数据结构 查找与排序算法 算法复杂度 递归 代码安全 |
作业正文 | https://www.cnblogs.com/songjialinsjl/p/18523486 |
教材学习内容总结
函数声明与定义
- 在 C 语言中,函数在使用前一般需要声明,声明告知编译器函数的名称、返回类型和参数类型。定义则是函数的具体实现。例如 int add(int a, int b); 是声明, int add(int a, int b) {return a + b;} 是定义。
函数调用
- 可以在主函数或其他函数中调用函数。如 main() 函数中可以通过 result = add(3, 5); 调用 add 函数,并获取返回值。
函数参数传递
- 值传递:将实际参数的值复制给形式参数,函数内对形参的修改不影响实参,如基本数据类型作为参数时。
- 指针传递:传递变量的地址,可在函数内修改原变量的值,常用于数组、字符串等操作。
函数的返回值
- 函数可以返回一个值(除 void 类型函数外),返回值类型要与函数声明的类型一致。 return 语句用于结束函数执行并返回值。
函数的作用
- 代码复用:避免重复编写相似的代码,提高编程效率。
- 模块化编程:将程序分割成多个功能独立的模块,便于理解、调试和维护。
问题一:在引入fact这个函数中,fact函数的运算法则是自己定义还是本来就携带的?
回答:在C语言中, fact 函数(通常用于计算阶乘)不是自带的,它的运算法则需要你自己定义。
比如你想写一个计算阶乘的 fact 函数,代码可能像这样:
int fact(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
在这个函数里,你自己定义了计算阶乘的规则,也就是如果 n 为0或者1,返回1,否则返回 n 乘以 n - 1 的阶乘(这是通过递归实现的)。
问题二:我是不是也可以不用fact,也可以用其他的英文单词?
回答:当然可以。函数名是由程序员自己定义的,你可以使用任何合法的标识符来命名函数。比如你可以用 calculate_factorial 或者 my_fact 之类的名字,只要符合C语言的命名规则就行。
目标 500行 30篇 400小时
第一周 0/0 1/1 4/4
第二周 0/0 2/2 6/10
第三周 5/5 3/3 6/16
第四周 10/10 4/4 6/22
第五周 0/10 1/5 4/26
第六周 5/15 2/7 6/32