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

  • 感觉此次大作业代码复杂度比较高,各个函数的应用堆积,给程序的结构安排下定了清晰且复杂的格局
  • 我的代码可读性比较低,各个函数的顺序安排也不够严谨,造成输出混乱
  • 应该是有哪里的特定结构出了问题还在慢慢调试;