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.大作业总结

  • 这次函数作业开头没认真看要求,使得自己开始的程序不符合要求,又耗了大把时间,下次写博客还是要先看题目要求。
  • 程序显得很繁琐,运用了循环结构和选择结构。
  • 先要理清框架,懂得自己要用哪几个函数来解决问题,这样对于程序的书写会更容易一些。