0. 展示PTA总分
1. 本章学习总结
1.1学习内容总结
- 学习了自定义函数的声明,引用和定义,懂得函数定义中的函数类型,函数名等以及函数调用时的参数传递等内容。
- 学习了函数中的变量知识,包括全局变量,局部变量,变量生存周期,静态局部变量等。
- 函数若有结果返回,用return语句解决;若无结果返回,return可以省略,函数定义为void 函数名(形参表)。
- C语言中把定义在函数内部的变量称为局部变量,局部变量的有效作用范围局限于所在的函数内部。
- 定义在函数外而不属于任何函数的变量称为全局变量,它对作用范围内所有的函数都起作用。
- 变量从定义开始分配存储单元,到运行结束存储单元被回收,整个过程称为变量生存周期。
- 静态变量若没有赋初值,系统将自动赋0。静态变量只能用于所定义函数。
1.2 本章学习体会及代码量
1.2.1 本章学习体会
- 关键要懂得用函数去实现什么功能,然后对函数进行正确的声明,引用和定义。
- 在原代码的基础上取出关键部分,用函数进行运算或者表示,这样会使得程序更简洁明了。
- 自定义函数的函数名还是要多注意一下,不要随便取。
1.2.2 本次综合作业代码量:
加上修改的,总共350行左右。
2.综合作业
题目:小学生口算表达式自动生成系统
函数关系图:
3. 函数功能及全局变量介绍
3.1 全局变量
- 如图:
3.2 menu()函数
- 功能:提示用户接下来的操作以及此程序的名称。
3.3 grade1()函数
- 思路:运用产生随机数的方法,对题目类型进行控制,然后在不同情况下引用不同的函数。
3.4 grade2()函数
- 思路:同上。
3.5 grade3()函数
- 功能:同上。
3.6 plus()函数; minus()函数; multiply()函数; calculation()函数
3.7 words1()函数
3.8 words2()函数
4. 运行结果截图,测试用例
-
一年级
-
二年级
-
三年级
5. 调试遇到问题及解决办法
- 问题:开始输入年级数和题目数后,没法引用相关函数,直接退出主函数了。
解决方法:grade()函数为void类型的函数,即没有返回值。所以在主函数中引用grade()函数时去掉了前面的void。 - 问题:开始引用multiply()函数时输入答案后程序出错,没法显示结果。
解决方法:发现输入答案语句中忘了加字符&,从而程序无法识别其地址。
6.大作业总结
- 这次函数作业开头没认真看要求,使得自己开始的程序不符合要求,又耗了大把时间,下次写博客还是要先看题目要求。
- 程序显得很繁琐,运用了循环结构和选择结构。
- 先要理清框架,懂得自己要用哪几个函数来解决问题,这样对于程序的书写会更容易一些。