2

C语言博客作业03--函数

0.展示PTA总分

1.本章学习总结

1.1 学习内容总结
1.函数是C语言程序的基本组成单元;充分发挥函数功能,可以使程序容易编写、阅读、调试和修改。
2.函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。例:scanf()、printf()等为库函数,由C语言系统提供定义,编程时只要直接调用即可;而一些由用户自己定义,属于自定义函数。
3.函数最常见的用途:实现一个计算,并可以得到一个明确的计算结果。
4.函数定义的一般形式:
函数类型 函数名(形式参数表)/函数首部/
{
函数实现过程 /函数体/
}
(1)函数首部:由函数类型、函数名和形式参数表组成,位于函数定义的第一行;在函数首部中,函数名是函数整体的称谓。函数类型指函数结果返回的类型,一般与return语句中表达式的类型。形参表的格式:类型1 形参1,类型2 形参2,...,类型n 形参n。函数的形参的数量可一个,可多个,也可无。函数首部后面不能加分号,它和函数体一起构成完整的函数定义。
(2)函数体:由一对大括号内的若干条语句组成,用以计算,或完成特定的工作,并用return语句返回运算的结果,体现函数的实现过程。
5.函数的调用:
(1)函数调用过程:任何C语言执行,首先从主函数main()开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后将返回主函数继续执行,例课本5-1:main()函数运行到:volume=cylinder(radius,height);时,调用cylinder()函数,暂停main()函数。通常把调用其他函数的函数称为主调函数,如main(),被调用函数称为被调函数如cylinder()。
(2)函数的一般调用形式:函数名(实际参数表)。实际参数可以是常量、变量和表达式。
(3)参数传递:程序运行遇到函数调用时,实参的值依次传给形参。
(4)函数结果返回:形式:return 表达式; return语句作用有两个:一是结束函数的运行;二是带着运算结果(表达式的值)返回主调函数,但return语句只能返回一个值。
(5)函数原型声明:函数要先定义后调用。如果自定义函数被放在主调函数的后面,就需要在函数调用前,加上函数原型声明。函数声明的目的主要是说明函数的类型和参数的结果,以保证程序编译时能判断对该函数的调用是否正确。函数声明的格式:函数类型 函数名(函数表);
5.函数的写法顺序:函数声明->函数调用->函数定义。
6.void类型的函数不直接返回一个值,它的作用通常以屏幕输出等方式体现。在不返回结果的函数定义中,void不能省略,否则,函数类型会被默认定义为int。
7.局部变量:定义在函数内部的变量,一般定义在函数或复合语句的开始处。有效作用范围局限于所在的函数内部;使用局部变量可以避免各个函数之间的变量相互干扰。
8.全局变量:定义在函数外而不属于任何函数的变量,只要在函数外部即可,一般把全局变量定义在程序的最前面。作用范围是从定义开始到程序所在文件的结束,它对作用范围内所有函数都起作用。当函数局部变量与复合语句的局部变量同名时,以复合语句为准。
9.自动变量定义形式:auto 类型名 变量表: 例:auto int x,y; 自动变量如果没有赋初值,其存储单元中将是随机值。
10.静态变量定义形式:static 类型名 变量表 。如果定义时没有赋初值,系统将自动赋0;静态变量赋初值只在函数第一次调用时起作用。
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
理论基础勉强还可以看,实际操作水平太差,仍需刷pta巩固基础。
1.2.2 代码累计
本次综合作业代码量:
455

2.综合作业

2.本次作业的函数关系图

3.函数功能及全局变量介绍
+函数功能:
1.一至三年级的算法的菜单声明:

2.一至三年级的算法:

+全局变量:yournumber(用户输入的答案)、answer(标准答案)。

4.运行结果截图,测试用例。
一年级:
1.整十数加一位数的加法:

2.整十数减整十数的减法:

3.两位数减整十数的减法:

4.10以内三个数连加:

5.100以内连加连减混合运算:

二年级:
1.1-9以内的表内乘除法:

2.整十数加整十数的加法(进位的):

3.尾数是0三位数加法(和在一千以内的):

4.整百数加减法(和超过一千的,退位的):

5.10以内除法加法混合运算:

6.有余数的除法:

三年级:
1.三位数加三位数的加法(含连续进位的):

2.一位数乘一位、二位、三位数:

3.整十数乘整十数:

4.一位数的四则运算:

5.两位数除以一位数(有余数):

6.万以内的加减法:

5. 调试碰到问题及解决办法
1.碰到的问题:在定义随机的运算符时出现对某个字母重复定义的情况,如:在四则运算时需要各种不同的运算符同时出现,然后,这个在四则运算中定义的字母,在同一年级的其他地方也定义了该字母;
解决办法:在每一个switch-case语句中定义的随机运算符的表示字母改成不同;
2.碰到的问题:某一些值的运算结果错误,特别是在四则运算部分会出现这种情况;
解决办法:认真人肉查找发现,有些的运算顺序发生调换,将其换回来即可;
3.碰到的问题:对于除法有余数的问题,无法表示出余数;
解决办法:目前没有,只能在程序中添加一条提示,声明除法有余数的情况只保留整数位,余数不考虑,有个想法就是在输出整数部分后,再输出余数部分;

6.大作业总结
1。对于所有较多代码的程序,需要先有一个清晰的构思,然后再试着把图画出来,然后程序的框架就照着所画的图开始构建,当然,在这过程中会发现,图的内容不够详细,就需要用把自己的思路再次捋一遍,写下来,然后再继续写代码;
2.写完代码,感觉总是不够人性化,想要改得完美一些,还是能力不够,对C的理解不够,对于有些东西的返回主函数的理解不够,出现无法返回主函数或者返回了主函数,无法运行的情况;
3.仍需加强基础知识,这个大作业的代码可以再优化,但是能力不够,哎,本来想着,将所有的运算符都弄成随机的,然后带入运算,尝试了一下,感觉还不如调用函数进行加减乘除来得简便,然后再在一些需要随机运算符的地方使用随机数来表示随机运算符;
4.总体难度不是很高,其实只要把一年级的算法框架弄清楚了,后面的基本就在这个框架上进行一点改动即可。

posted @ 2019-11-03 20:22  1911-林威  阅读(332)  评论(0编辑  收藏  举报
复制代码