0.展示PTA总分
1.本章学习总结
1.1学习内容总结
1.函数的定义
函数定义的一般形式为:
函数类型 函数名(形式参数表)/*函数首部*/
{
函数实现过程 /*函数体*/
}
2.函数的调用
函数调用的一般形式为:
函数名(实际参数表)
函数的形参必须是变量,用于接收实参传递过来的值;而实参可以是常量、变量或表达式,
其作用是把常量、变量、或表达式的值传递给形参。
---参数的传递时单向的,只允许实参把值复制给形参,形参的值即使在函数中改变了,也不会反过来影响实参。---
3.函数结果的返回
函数结果返回的形式如下:
return 表达式;
return语句的作用有2个:一是结束函数的运行;
二是带着运算结果(表达式的值)返回主调函数。
---return语句只能返回一个值。---
4.函数原型声明
函数声明的一般格式为:
函数类型 函数名(参数表)
函数声明是一条C语句,而函数定义是的函数首部不是语句,后面不能跟分号
5.局部变量,全局变量和静态局部变量的使用选择
---若一个变量需要传递到多个函数时用全局变量---
---若一个变量只在单个函数中起作用则使用全局变量---
---静态局部变量一般用于累加累乘之类的运算---
使用函数的好处:(摘自课堂派测试)
1.相同功能的代码可以放在同一个函数内,供其他函数调用。解决代码重复问题,更简洁,可读性更好。
2.代码拓展性更好。增加新的功能,不需要更改其他函数。
3.代码维护性更好。查错针对某个功能函数检查。
1.2本章学习体会及代码量累计
1.2.1学习体会
我觉得使用了函数确实使题目变得好做了些,写小学生口算表达式自动生成系统这题,若是不适用函数,那么主函数就会堆积很多switch,if语句,会让人看得眼花缭乱,而使用函数,就可以将每一小步骤拆分开,不仅可以循环使用,而且大大减少了复杂代码的代码量。
1.2.2代码累计
本次综合作业代码量:384行。
综合作业
2.本次作业的函数关系图
3.函数功能及全局变量介绍
3.1全局变量
3.2ListMenu()函数--输出初始界面,并读取用户输入的年级和题数。
3.3grade1()函数--进入一年级题目
3.4grade2()函数--进入二年级题目
3.5grade3()函数--进入三年级题目
3.6WrongMessage()函数--答案错误时输出
3.7RightMessage()函数--答案正确时输出
3.8random(int p, int q)函数--生成一定范围内的随机数
3.9random2(int p, int q)函数--生成随机运算符
3.10random3()--生成随机的整十数
3.11random4()--生成随机的整百数
4.运行结果截图,测试用例。
一年级 5道题
二年级 4道题
三年级 3道题
5. 调试碰到问题及解决办法
1.
一开始我在写的时候没有写i=i-1,而直接continue,但是这样进入下一个循环时i又++了,这样就出错了。
后来发现及时改正了。
2.最初不知道怎么生成随机运算符,后经百度知道可以用随机数加switch,也可以定义字符型数组。
6.大作业总结
还有很多测试点我都没有覆盖到,之后我会努力补上来的。我觉得写这个大作业确实暴露了自己的不足,比如随机数的使用,void型函数的使用。