0.展示PTA总分
1.本章学习总结
1.1 学习内容总结
- 函数的定义:
1. 函数首部:
函数类型+函数名+形式参数表;形参之间用逗号分隔,并写明类型;函数首部后面不能加分号;
例如:
int is(int x,int y)
2. 函数体:
有无返回函数void()和返回函数包含return;返回结果的数据类型和函数类型一致
void()函数中函数定义不能省略void,不然会被默认定义为int;没有return语句。
例如:
double result;若函数类型为int,返回result的数据类型也是整型;
3. 函数调用:
- 调用过程:
首先从主函数开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数后返回主函数继续执行。 - 调用形式:
函数名(实际参数表);
通常出现在:赋值语句和输出函数的实参的情况下
4. 参数传递:
函数定义时函数首部中的参数是形参;
主调函数中的参数是实参;
形参和实参必须一一对应且数量相同,类型尽量一致;
函数调用时,实参的输依次传给形参。
5. 函数结果返回:
return 表达式;return结束函数运行并返回运算结果
先解表达式的值,再返回其值
- return语句只能返回一个值。
6. 函数原型声明:
与函数首部相同,放在主体函数开头,并以分号结束。
7. 局部变量和全局变量:
局部变量定义在函数内部,一般定义在函数或者复合语句的开始处;有效作用范围在函数内部,比如形参就是局部变量;
全局变量定义在函数外不属于任何函数,一般定义在程序的最前面,即第一个函数的前面,作用范围是整个程序,对作用范围内的所有函数都起作用;
两者允许同名;在同名时,局部变量会再定义一次, 典型例题见课本110页例5-7;
8. 静态局部变量:
定义格式:static 类型名 变量表
为数据的持续储存做贡献;而且在为静态变量赋初值时只有在函数第一次调用时起作用,若没有赋初值系统自动赋0;
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
本周主体c的代码编写是大作业的编写,小学生计算器,我在编写的时候出了很多问题,比如输出的题目类型和年级不对应,或者输出的题目数字超纲,在小学生是否做对题目和做错题目的提示也出现了漏洞,或许是代码杂乱所致,在vs调试时没有错误列表但是scanf语句的未返回问题警告却有很多;在综合运用函数这我的学习已经出现了重大缺陷,也在慢慢改进自己调试能力差的问题,或许只有代码量达到一定数量才能游刃有余的编写出复杂的代码,对于数组的问题也有疑问,该记住的知识点总是忘记,实属不该,希望能够慢慢熟悉这样的学习节奏;
1.2.2 代码累计
本次综合作业代码量:
2.综合作业
2.本次作业的函数关系图
3.函数功能及全局变量介绍
3.1.全局变量
3.2.ListMenu()函数
- 先输出提示引导用户进行年纪和题量的选择;再根据ta的选择对出题进行控制;最后的switch语句会和其他计算函数一起使用;
3.3 函数2等
-
相加函数:
-
相减函数:
-
相乘函数:
-
相除函数:
-
混合运算函数:
-
正误提示语句:
-
判断函数:
-
结束函数:
4.运行结果截图,测试用例
-
目录:
-
一年级:
-
二年级:
-
三年级:
5. 调试碰到问题及解决办法
- 1.输出的题目类型和年级不对应-----通过修改menu的下部分函数并且在第一个grade1处修正model改正
- 2.输出的题目数字超纲----改正了rand()%n的函数;
- 3.在小学生是否做对题目和做错题目的提示也出现了漏洞-----将number统一管理,可读性更高;
- 4.在vs调试时没有错误列表但是scanf语句的未返回问题警告却有很多----这个还没想出来要怎么改正;
6.大作业总结
- 感觉此次大作业代码复杂度比较高,各个函数的应用堆积,给程序的结构安排下定了清晰且复杂的格局
- 我的代码可读性比较低,各个函数的顺序安排也不够严谨,造成输出混乱
- 应该是有哪里的特定结构出了问题还在慢慢调试;